refactor(client): typed localStorage

This commit is contained in:
syuilo
2023-01-07 10:13:02 +09:00
parent a42b03c154
commit 91503405b4
25 changed files with 157 additions and 88 deletions

View File

@@ -16,11 +16,12 @@ import * as os from '@/os';
import { unisonReload } from '@/scripts/unison-reload';
import { i18n } from '@/i18n';
import { definePageMetadata } from '@/scripts/page-metadata';
import { miLocalStorage } from '@/local-storage';
const localCustomCss = ref(localStorage.getItem('customCss') ?? '');
const localCustomCss = ref(miLocalStorage.getItem('customCss') ?? '');
async function apply() {
localStorage.setItem('customCss', localCustomCss.value);
miLocalStorage.setItem('customCss', localCustomCss.value);
const { canceled } = await os.confirm({
type: 'info',

View File

@@ -120,10 +120,11 @@ import * as os from '@/os';
import { unisonReload } from '@/scripts/unison-reload';
import { i18n } from '@/i18n';
import { definePageMetadata } from '@/scripts/page-metadata';
import { miLocalStorage } from '@/local-storage';
const lang = ref(localStorage.getItem('lang'));
const fontSize = ref(localStorage.getItem('fontSize'));
const useSystemFont = ref(localStorage.getItem('useSystemFont') != null);
const lang = ref(miLocalStorage.getItem('lang'));
const fontSize = ref(miLocalStorage.getItem('fontSize'));
const useSystemFont = ref(miLocalStorage.getItem('useSystemFont') != null);
async function reloadAsk() {
const { canceled } = await os.confirm({
@@ -157,23 +158,23 @@ const squareAvatars = computed(defaultStore.makeGetterSetter('squareAvatars'));
const aiChanMode = computed(defaultStore.makeGetterSetter('aiChanMode'));
watch(lang, () => {
localStorage.setItem('lang', lang.value as string);
localStorage.removeItem('locale');
miLocalStorage.setItem('lang', lang.value as string);
miLocalStorage.removeItem('locale');
});
watch(fontSize, () => {
if (fontSize.value == null) {
localStorage.removeItem('fontSize');
miLocalStorage.removeItem('fontSize');
} else {
localStorage.setItem('fontSize', fontSize.value);
miLocalStorage.setItem('fontSize', fontSize.value);
}
});
watch(useSystemFont, () => {
if (useSystemFont.value) {
localStorage.setItem('useSystemFont', 't');
miLocalStorage.setItem('useSystemFont', 't');
} else {
localStorage.removeItem('useSystemFont');
miLocalStorage.removeItem('useSystemFont');
}
});

View File

@@ -33,6 +33,7 @@ import { instance } from '@/instance';
import { useRouter } from '@/router';
import { definePageMetadata, provideMetadataReceiver, setPageMetadata } from '@/scripts/page-metadata';
import * as os from '@/os';
import { miLocalStorage } from '@/local-storage';
const indexInfo = {
title: i18n.ts.settings,
@@ -180,8 +181,8 @@ const menuDef = computed(() => [{
icon: 'ti ti-trash',
text: i18n.ts.clearCache,
action: () => {
localStorage.removeItem('locale');
localStorage.removeItem('theme');
miLocalStorage.removeItem('locale');
miLocalStorage.removeItem('theme');
unisonReload();
},
}, {

View File

@@ -45,6 +45,7 @@ import { $i } from '@/account';
import { i18n } from '@/i18n';
import { version, host } from '@/config';
import { definePageMetadata } from '@/scripts/page-metadata';
import { miLocalStorage } from '@/local-storage';
const { t, ts } = i18n;
useCssModule();
@@ -170,9 +171,9 @@ function getSettings(): Profile['settings'] {
return {
hot,
cold,
fontSize: localStorage.getItem('fontSize'),
useSystemFont: localStorage.getItem('useSystemFont') as 't' | null,
wallpaper: localStorage.getItem('wallpaper'),
fontSize: miLocalStorage.getItem('fontSize'),
useSystemFont: miLocalStorage.getItem('useSystemFont') as 't' | null,
wallpaper: miLocalStorage.getItem('wallpaper'),
};
}
@@ -279,23 +280,23 @@ async function applyProfile(id: string): Promise<void> {
// fontSize
if (settings.fontSize) {
localStorage.setItem('fontSize', settings.fontSize);
miLocalStorage.setItem('fontSize', settings.fontSize);
} else {
localStorage.removeItem('fontSize');
miLocalStorage.removeItem('fontSize');
}
// useSystemFont
if (settings.useSystemFont) {
localStorage.setItem('useSystemFont', settings.useSystemFont);
miLocalStorage.setItem('useSystemFont', settings.useSystemFont);
} else {
localStorage.removeItem('useSystemFont');
miLocalStorage.removeItem('useSystemFont');
}
// wallpaper
if (settings.wallpaper != null) {
localStorage.setItem('wallpaper', settings.wallpaper);
miLocalStorage.setItem('wallpaper', settings.wallpaper);
} else {
localStorage.removeItem('wallpaper');
miLocalStorage.removeItem('wallpaper');
}
const { canceled: cancel2 } = await os.confirm({

View File

@@ -82,6 +82,7 @@ import { instance } from '@/instance';
import { uniqueBy } from '@/scripts/array';
import { fetchThemes, getThemes } from '@/theme-store';
import { definePageMetadata } from '@/scripts/page-metadata';
import { miLocalStorage } from '@/local-storage';
const installedThemes = ref(getThemes());
const builtinThemes = getBuiltinThemesRef();
@@ -120,7 +121,7 @@ const lightThemeId = computed({
});
const darkMode = computed(defaultStore.makeGetterSetter('darkMode'));
const syncDeviceDarkMode = computed(ColdDeviceStorage.makeGetterSetter('syncDeviceDarkMode'));
const wallpaper = ref(localStorage.getItem('wallpaper'));
const wallpaper = ref(miLocalStorage.getItem('wallpaper'));
const themesCount = installedThemes.value.length;
watch(syncDeviceDarkMode, () => {
@@ -131,9 +132,9 @@ watch(syncDeviceDarkMode, () => {
watch(wallpaper, () => {
if (wallpaper.value == null) {
localStorage.removeItem('wallpaper');
miLocalStorage.removeItem('wallpaper');
} else {
localStorage.setItem('wallpaper', wallpaper.value);
miLocalStorage.setItem('wallpaper', wallpaper.value);
}
location.reload();
});