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

@@ -26,6 +26,7 @@ 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 props = withDefaults(defineProps<{
error?: Error;
@@ -42,7 +43,7 @@ os.api('meta', {
loaded = true;
serverIsDead = false;
meta = res;
localStorage.setItem('v', res.version);
miLocalStorage.setItem('v', res.version);
}, () => {
loaded = true;
serverIsDead = true;

View File

@@ -40,6 +40,7 @@ import { defaultStore } from '@/store';
import { i18n } from '@/i18n';
//import { Autocomplete } from '@/scripts/autocomplete';
import { uploadFile } from '@/scripts/upload';
import { miLocalStorage } from '@/local-storage';
const props = defineProps<{
user?: Misskey.entities.UserDetailed | null;
@@ -188,7 +189,7 @@ function clear() {
}
function saveDraft() {
const drafts = JSON.parse(localStorage.getItem('message_drafts') || '{}');
const drafts = JSON.parse(miLocalStorage.getItem('message_drafts') || '{}');
drafts[draftKey] = {
updatedAt: new Date(),
@@ -199,15 +200,15 @@ function saveDraft() {
},
};
localStorage.setItem('message_drafts', JSON.stringify(drafts));
miLocalStorage.setItem('message_drafts', JSON.stringify(drafts));
}
function deleteDraft() {
const drafts = JSON.parse(localStorage.getItem('message_drafts') || '{}');
const drafts = JSON.parse(miLocalStorage.getItem('message_drafts') || '{}');
delete drafts[draftKey];
localStorage.setItem('message_drafts', JSON.stringify(drafts));
miLocalStorage.setItem('message_drafts', JSON.stringify(drafts));
}
async function insertEmoji(ev: MouseEvent) {
@@ -222,7 +223,7 @@ onMounted(() => {
//new Autocomplete(textEl, this, { model: 'text' });
// 書きかけの投稿を復元
const draft = JSON.parse(localStorage.getItem('message_drafts') || '{}')[draftKey];
const draft = JSON.parse(miLocalStorage.getItem('message_drafts') || '{}')[draftKey];
if (draft) {
text = draft.data.text;
file = draft.data.file;

View File

@@ -46,6 +46,7 @@ import { i18n } from '@/i18n';
import { definePageMetadata } from '@/scripts/page-metadata';
import { AsUiComponent, AsUiRoot, patch, registerAsUiLib, render } from '@/scripts/aiscript/ui';
import MkAsUi from '@/components/MkAsUi.vue';
import { miLocalStorage } from '@/local-storage';
const parser = new Parser();
let aiscript: Interpreter;
@@ -55,13 +56,13 @@ const root = ref<AsUiRoot>();
let components: Ref<AsUiComponent>[] = [];
let uiKey = $ref(0);
const saved = localStorage.getItem('scratchpad');
const saved = miLocalStorage.getItem('scratchpad');
if (saved) {
code.value = saved;
}
watch(code, () => {
localStorage.setItem('scratchpad', code.value);
miLocalStorage.setItem('scratchpad', code.value);
});
async function run() {

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();
});