web/settings: settings import/export

This commit is contained in:
dumbmoron
2024-07-23 18:17:38 +00:00
parent 6e24a8d172
commit f8d06cf18b
3 changed files with 76 additions and 1 deletions

View File

@@ -41,6 +41,7 @@ const migrate = (settings: AllPartialSettingsWithSchema): PartialSettings => {
}, settings as AllPartialSettingsWithSchema);
}
const loadFromStorage = () => {
const settings = localStorage.getItem('settings');
if (!settings) {
@@ -52,6 +53,10 @@ const loadFromStorage = () => {
return {};
}
return loadFromString(settings);
}
export const loadFromString = (settings: string) => {
const parsed = JSON.parse(settings) as AllPartialSettingsWithSchema;
if (parsed.schemaVersion < defaultSettings.schemaVersion) {
return migrate(parsed);