Wizard: Add bytes to min_size partitioning <HMS-4981>

This commit is contained in:
Anna Vítová 2024-11-12 18:35:01 +02:00 committed by Klara Simickova
parent 7b365dcb4d
commit 7c99415822
4 changed files with 25 additions and 1 deletions

View file

@ -34,6 +34,7 @@ export const HookValidatedInput = ({
ouiaId,
ariaLabel,
value,
isDisabled,
placeholder,
onChange,
stepValidation,
@ -67,6 +68,7 @@ export const HookValidatedInput = ({
aria-label={ariaLabel}
onBlur={handleBlur}
placeholder={placeholder}
isDisabled={isDisabled}
/>
{validated === 'error' && (
<HelperText>

View file

@ -69,6 +69,7 @@ const DetailsStep = () => {
ariaLabel="blueprint name"
dataTestId="blueprint"
value={blueprintName}
isDisabled={false}
onChange={handleNameChange}
placeholder="Add blueprint name"
stepValidation={stepValidation}
@ -92,6 +93,7 @@ const DetailsStep = () => {
ariaLabel="blueprint description"
dataTestId="blueprint description"
value={blueprintDescription || ''}
isDisabled={false}
onChange={handleDescriptionChange}
placeholder="Add description"
stepValidation={stepValidation}

View file

@ -233,10 +233,12 @@ type MinimumSizePropTypes = {
partition: Partition;
};
export type Units = 'KiB' | 'MiB' | 'GiB';
export type Units = 'B' | 'KiB' | 'MiB' | 'GiB';
export const getConversionFactor = (units: Units) => {
switch (units) {
case 'B':
return 1;
case 'KiB':
return UNIT_KIB;
case 'MiB':
@ -254,6 +256,7 @@ const MinimumSize = ({ partition }: MinimumSizePropTypes) => {
<HookValidatedInput
ariaLabel="minimum partition size"
value={partition.min_size}
isDisabled={partition.unit === 'B'}
type="text"
ouiaId="size"
stepValidation={stepValidation}
@ -287,7 +290,17 @@ const SizeUnit = ({ partition }: SizeUnitPropTypes) => {
setIsOpen(isOpen);
};
const initialValue = useRef(partition).current;
const onSelect = (event: React.MouseEvent, selection: Units) => {
if (initialValue.unit === 'B' && selection === 'B') {
dispatch(
changePartitionMinSize({
id: partition.id,
min_size: initialValue.min_size,
})
);
}
dispatch(changePartitionUnit({ id: partition.id, unit: selection }));
setIsOpen(false);
};
@ -303,6 +316,7 @@ const SizeUnit = ({ partition }: SizeUnitPropTypes) => {
<SelectOption value={'KiB'} />
<SelectOption value={'MiB'} />
<SelectOption value={'GiB'} />
<>{initialValue.unit === 'B' && <SelectOption value={'B'} />}</>
</Select>
);
};

View file

@ -14,6 +14,12 @@ export const parseSizeUnit = (bytesize: string) => {
} else if (parseInt(bytesize) % UNIT_KIB === 0) {
size = parseInt(bytesize) / UNIT_KIB;
unit = 'KiB';
} else if (parseInt(bytesize)) {
size = parseInt(bytesize);
unit = 'B';
} else {
size = 10;
unit = 'GiB';
}
return [String(size), unit];