Cleanup settings

This commit is contained in:
ZXY101
2023-09-22 16:51:50 +02:00
parent 318105e945
commit a0650f0548
8 changed files with 249 additions and 116 deletions

View File

@@ -37,13 +37,26 @@ export type Settings = {
backgroundColor: string;
fontSize: FontSize;
zoomDefault: ZoomModes;
ankiConnectSettings: AnkiConnectSettings;
};
export type SettingsKey = keyof Settings;
export type AnkiConnectSettings = {
enabled: boolean;
pictureField: string;
sentenceField: string;
cropImage: boolean;
overwriteImage: boolean;
grabSentence: boolean;
}
export type AnkiSettingsKey = keyof AnkiConnectSettings;
const defaultSettings: Settings = {
rightToLeft: true,
singlePageView: true,
singlePageView: false,
hasCover: false,
displayOCR: true,
textEditable: false,
@@ -52,7 +65,15 @@ const defaultSettings: Settings = {
pageNum: true,
backgroundColor: '#0d0d0f',
fontSize: 'auto',
zoomDefault: 'zoomFitToScreen'
zoomDefault: 'zoomFitToScreen',
ankiConnectSettings: {
enabled: false,
cropImage: false,
grabSentence: false,
overwriteImage: true,
pictureField: 'Picture',
sentenceField: 'Sentence'
}
};
const stored = browser ? window.localStorage.getItem('settings') : undefined;
@@ -72,6 +93,18 @@ export function updateSetting(key: SettingsKey, value: any) {
zoomDefault();
}
export function updateAnkiSetting(key: AnkiSettingsKey, value: any) {
settings.update((settings) => {
return {
...settings,
ankiConnectSettings: {
...settings.ankiConnectSettings,
[key]: value
}
};
});
}
export function resetSettings() {
settings.set(defaultSettings);
}