diff --git a/web/src/components/storage/ProposalPage.jsx b/web/src/components/storage/ProposalPage.jsx index fad35cf99d..5269e7fcd2 100644 --- a/web/src/components/storage/ProposalPage.jsx +++ b/web/src/components/storage/ProposalPage.jsx @@ -221,11 +221,12 @@ export default function ProposalPage() { encryptionMethods={state.encryptionMethods} settings={state.settings} onChange={changeSettings} - isLoading={state.loading} + isLoading={!state.settings} /> { }; return ( - +
@@ -380,36 +380,9 @@ Only the space that is not assigned to any partition will be used.") } ]; -/** - * Section for configuring the space policy. - * @component - */ -export default function ProposalSpacePolicySection({ - settings, - onChange = noop -}) { - const changeSpacePolicy = (policy) => { - onChange({ spacePolicy: policy }); - }; - - const changeSpaceActions = (spaceAction) => { - const spaceActions = settings.spaceActions.filter(a => a.device !== spaceAction.device); - - if (spaceAction.action !== "keep") spaceActions.push(spaceAction); - - onChange({ spaceActions }); - }; - - const currentPolicy = SPACE_POLICIES.find(p => p.name === settings.spacePolicy) || SPACE_POLICIES[0]; - +const SpacePolicy = ({ currentPolicy, onChange = noop }) => { return ( -
- - + <>

{_("Select how to make free space in the selected disks for allocating the file systems.")}

@@ -428,17 +401,60 @@ export default function ProposalSpacePolicySection({ name="space-policies" className={isChecked && "selected"} isChecked={isChecked} - onChange={() => changeSpacePolicy(policy.name)} + onChange={() => onChange(policy.name)} /> ); })}

{currentPolicy.description}

+ + ); +}; +/** + * Section for configuring the space policy. + * @component + */ +export default function ProposalSpacePolicySection({ + settings, + isLoading = false, + onChange = noop +}) { + const changeSpacePolicy = (policy) => { + onChange({ spacePolicy: policy }); + }; + + const changeSpaceActions = (spaceAction) => { + const spaceActions = settings.spaceActions.filter(a => a.device !== spaceAction.device); + if (spaceAction.action !== "keep") spaceActions.push(spaceAction); + + onChange({ spaceActions }); + }; + + const currentPolicy = SPACE_POLICIES.find(p => p.name === settings.spacePolicy) || SPACE_POLICIES[0]; + + return ( +
0} - then={} + condition={isLoading} + then={} + else={ + <> + + + + + 0} + then={} + /> + + } />
);
{columnNames.device}