diff --git a/src/pages/backup/ImportBackupModal.tsx b/src/pages/backup/ImportBackupModal.tsx index aa531fd..374f6c7 100644 --- a/src/pages/backup/ImportBackupModal.tsx +++ b/src/pages/backup/ImportBackupModal.tsx @@ -9,6 +9,8 @@ import { getMasterPasswordInput } from "@comp/auth/MasterPasswordInput"; +import { useBooleanSetting, setBooleanSetting } from "@utils/settings"; + import { ImportDetectFormat } from "./ImportDetectFormat"; import { decodeBackup } from "./backupParser"; import { backupVerifyPassword, backupImport } from "./backupImport"; @@ -64,6 +66,12 @@ function onValuesChange(changed: Partial) { if (changed.code) setCode(changed.code); + + // Remember the value of the 'overwrite' checkbox + if (changed.overwrite !== undefined) { + debug("updating importOverwrite to %b", changed.overwrite); + setBooleanSetting("importOverwrite", changed.overwrite, false); + } } /** Updates the contents of the 'code' field with the given file. */ @@ -246,6 +254,8 @@ function ImportBackupForm({ form, code, decodeError, setDecodeError, masterPasswordError, onValuesChange, onFinish }: FormProps): JSX.Element { const { t } = useTranslation(); + const importOverwrite = useBooleanSetting("importOverwrite"); + return
, value: boolean): void { +export function setBooleanSetting( + settingName: SettingName, + value: boolean, + notify = true +): void { debug("changing setting [boolean] %s value to %o", settingName, value); localStorage.setItem(getSettingKey(settingName), value ? "true" : "false"); store.dispatch(actions.setBooleanSetting(settingName, value)); - notifySettingChange(); + if (notify) notifySettingChange(); } -export function setIntegerSetting(settingName: SettingName, value: number): void { +export function setIntegerSetting( + settingName: SettingName, + value: number, + notify = true +): void { debug("changing setting [integer] %s value to %o", settingName, value); localStorage.setItem(getSettingKey(settingName), Math.floor(value).toString()); store.dispatch(actions.setIntegerSetting(settingName, value)); - notifySettingChange(); + if (notify) notifySettingChange(); } export function validateIntegerSetting(settingName: SettingName, value: number): boolean {