Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions web/package/agama-web-ui.changes
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
-------------------------------------------------------------------
Thu Sep 18 08:57:11 UTC 2025 - David Diaz <dgonzalez@suse.com>

- Preserve installer options values after successful submission
(bsc#1249636).

-------------------------------------------------------------------
Fri Sep 12 08:14:28 UTC 2025 - Ladislav Slezák <lslezak@suse.com>

Expand Down
32 changes: 17 additions & 15 deletions web/src/components/core/InstallerOptions.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,8 @@ type Actions = {
handleLanguageChange: (_, v: string) => void;
handleKeymapChange: (_, v: string) => void;
handleCopyToSystemToggle: (_, v: boolean) => void;
handleSubmitForm: (e: React.FormEvent<HTMLFormElement>) => void;
handleCloseDialog: () => void;
handleSubmission: (e: React.FormEvent<HTMLFormElement>) => void;
handleCancellation: () => void;
};

/**
Expand Down Expand Up @@ -313,7 +313,7 @@ const AllSettingsDialog = ({ state, formState, actions }: DialogProps) => {

return (
<Popup isOpen={state.isOpen} variant="small" title={_("Language and keyboard")}>
<Form id="installer-l10n" onSubmit={actions.handleSubmitForm}>
<Form id="installer-l10n" onSubmit={actions.handleSubmission}>
<LangaugeFormInput value={formState.language} onChange={actions.handleLanguageChange} />
<KeyboardFormInput value={formState.keymap} onChange={actions.handleKeymapChange} />
<ReusableSettings isReuseAllowed={formState.allowReusingSettings}>
Expand All @@ -324,7 +324,7 @@ const AllSettingsDialog = ({ state, formState, actions }: DialogProps) => {
description={
<TextWithLinkToL10n
text={checkboxDescription}
onClick={actions.handleCloseDialog}
onClick={actions.handleCancellation}
/>
}
isChecked={formState.reuseSettings}
Expand All @@ -344,7 +344,7 @@ const AllSettingsDialog = ({ state, formState, actions }: DialogProps) => {
>
{_("Accept")}
</Popup.Confirm>
<Popup.Cancel onClick={actions.handleCloseDialog} isDisabled={state.isBusy} />
<Popup.Cancel onClick={actions.handleCancellation} isDisabled={state.isBusy} />
</Popup.Actions>
</Popup>
);
Expand All @@ -360,7 +360,7 @@ const LanguageOnlyDialog = ({ state, formState, actions }: DialogProps) => {

return (
<Popup isOpen={state.isOpen} variant="small" title={_("Change Language")}>
<Form id="installer-l10n" onSubmit={actions.handleSubmitForm}>
<Form id="installer-l10n" onSubmit={actions.handleSubmission}>
<LangaugeFormInput value={formState.language} onChange={actions.handleLanguageChange} />
<ReusableSettings isReuseAllowed={formState.allowReusingSettings}>
<FormGroup fieldId="reuse-settings">
Expand All @@ -370,7 +370,7 @@ const LanguageOnlyDialog = ({ state, formState, actions }: DialogProps) => {
description={
<TextWithLinkToL10n
text={checkboxDescription}
onClick={actions.handleCloseDialog}
onClick={actions.handleCancellation}
/>
}
isChecked={formState.reuseSettings}
Expand All @@ -390,7 +390,7 @@ const LanguageOnlyDialog = ({ state, formState, actions }: DialogProps) => {
>
{_("Accept")}
</Popup.Confirm>
<Popup.Cancel onClick={actions.handleCloseDialog} isDisabled={state.isBusy} />
<Popup.Cancel onClick={actions.handleCancellation} isDisabled={state.isBusy} />
</Popup.Actions>
</Popup>
);
Expand All @@ -402,7 +402,7 @@ const KeyboardOnlyDialog = ({ state, formState, actions }: DialogProps) => {
<Popup isOpen={state.isOpen} variant="small" title={_("Change keyboard")}>
{_("Cannot be changed in remote installation")}
<Popup.Actions>
<Popup.Confirm onClick={actions.handleCloseDialog}>{_("Accept")}</Popup.Confirm>
<Popup.Confirm onClick={actions.handleCancellation}>{_("Accept")}</Popup.Confirm>
</Popup.Actions>
</Popup>
);
Expand All @@ -417,7 +417,7 @@ const KeyboardOnlyDialog = ({ state, formState, actions }: DialogProps) => {

return (
<Popup isOpen={state.isOpen} variant="small" title={_("Change keyboard")}>
<Form id="installer-l10n" onSubmit={actions.handleSubmitForm}>
<Form id="installer-l10n" onSubmit={actions.handleSubmission}>
<KeyboardFormInput value={formState.keymap} onChange={actions.handleKeymapChange} />
<ReusableSettings isReuseAllowed={formState.allowReusingSettings}>
<FormGroup fieldId="reuse-settings">
Expand All @@ -427,7 +427,7 @@ const KeyboardOnlyDialog = ({ state, formState, actions }: DialogProps) => {
description={
<TextWithLinkToL10n
text={checkboxDescription}
onClick={actions.handleCloseDialog}
onClick={actions.handleCancellation}
/>
}
isChecked={formState.reuseSettings}
Expand All @@ -447,7 +447,7 @@ const KeyboardOnlyDialog = ({ state, formState, actions }: DialogProps) => {
>
{_("Accept")}
</Popup.Confirm>
<Popup.Cancel onClick={actions.handleCloseDialog} isDisabled={state.isBusy} />
<Popup.Cancel onClick={actions.handleCancellation} isDisabled={state.isBusy} />
</Popup.Actions>
</Popup>
);
Expand Down Expand Up @@ -595,7 +595,6 @@ export default function InstallerOptions({
};

const close = () => {
dispatch({ type: "RESET", state: initialFormState });
dispatchDialogAction({ type: "CLOSE" });
typeof onClose === "function" && onClose();
};
Expand Down Expand Up @@ -626,8 +625,11 @@ export default function InstallerOptions({
handleLanguageChange: (_, v) => dispatch({ type: "SET_SELECTED_LANGUAGE", language: v }),
handleKeymapChange: (_, v) => dispatch({ type: "SET_SELECTED_KEYMAP", keymap: v }),
handleCopyToSystemToggle: () => dispatch({ type: "TOGGLE_REUSE_SETTINGS" }),
handleSubmitForm: onSubmit,
handleCloseDialog: close,
handleSubmission: onSubmit,
handleCancellation: () => {
dispatch({ type: "RESET", state: initialFormState });
close();
},
};

const Toggle = toggle ?? toggles[variant];
Expand Down