From 147841b095800073b8ae9ed48ac12d3c8fa53155 Mon Sep 17 00:00:00 2001 From: regexowl Date: Wed, 1 May 2024 15:22:53 +0200 Subject: [PATCH] V2Wizard: Calculate image size on Review step This calculates and renders the minimum image size on the Review step. --- .../steps/Review/ReviewStepTextLists.tsx | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/Components/CreateImageWizardV2/steps/Review/ReviewStepTextLists.tsx b/src/Components/CreateImageWizardV2/steps/Review/ReviewStepTextLists.tsx index dbb4a6bc..6c83ec6a 100644 --- a/src/Components/CreateImageWizardV2/steps/Review/ReviewStepTextLists.tsx +++ b/src/Components/CreateImageWizardV2/steps/Review/ReviewStepTextLists.tsx @@ -29,6 +29,7 @@ import { RHEL_8_FULL_SUPPORT, RHEL_8_MAINTENANCE_SUPPORT, RHEL_9, + UNIT_GIB, } from '../../../../constants'; import { useListSnapshotsByDateMutation } from '../../../../store/contentSourcesApi'; import { useAppSelector } from '../../../../store/hooks'; @@ -58,12 +59,17 @@ import { selectRecommendedRepositories, selectSnapshotDate, selectUseLatest, + selectPartitions, } from '../../../../store/wizardSlice'; import { convertMMDDYYYYToYYYYMMDD, toMonthAndYear, yyyyMMddFormat, } from '../../../../Utilities/time'; +import { + Partition, + getConversionFactor, +} from '../FileSystem/FileSystemConfiguration'; import { MinimumSizePopover } from '../FileSystem/FileSystemTable'; import { MajorReleasesLifecyclesChart } from '../ImageOutput/ReleaseLifecycle'; import OscapProfileInformation from '../Oscap/OscapProfileInformation'; @@ -118,6 +124,7 @@ export const ImageOutputList = () => { }; export const FSCList = () => { const fileSystemPartitionMode = useAppSelector(selectFileSystemPartitionMode); + const partitions = useAppSelector(selectPartitions); return ( @@ -161,7 +168,7 @@ export const FSCList = () => { Image size (minimum) - + )} @@ -170,8 +177,29 @@ export const FSCList = () => { ); }; -export const MinSize = () => { - return ; +type MinSizeProps = { + partitions: Partition[]; +}; + +export const MinSize = ({ partitions }: MinSizeProps) => { + let minSize = ''; + if (partitions) { + let size = 0; + for (const partition of partitions) { + size += Number(partition.min_size) * getConversionFactor(partition.unit); + } + + size = Number((size / UNIT_GIB).toFixed(1)); + if (size < 1) { + minSize = `Less than 1 GiB`; + } else { + minSize = `${size} GiB`; + } + } + + return ( + {minSize} + ); }; export const TargetEnvAWSList = () => {