summaryrefslogtreecommitdiff
path: root/packages/frontend/src/theme-store.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-01-07 10:13:02 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-01-07 10:13:02 +0900
commit91503405b4e58cb9d39c0441d86ff540a27931e6 (patch)
tree4c64371d1a88668e762733db1afaa3be7e284442 /packages/frontend/src/theme-store.ts
parent13.0.0-beta.26 (diff)
downloadmisskey-91503405b4e58cb9d39c0441d86ff540a27931e6.tar.gz
misskey-91503405b4e58cb9d39c0441d86ff540a27931e6.tar.bz2
misskey-91503405b4e58cb9d39c0441d86ff540a27931e6.zip
refactor(client): typed localStorage
Diffstat (limited to 'packages/frontend/src/theme-store.ts')
-rw-r--r--packages/frontend/src/theme-store.ts14
1 files changed, 9 insertions, 5 deletions
diff --git a/packages/frontend/src/theme-store.ts b/packages/frontend/src/theme-store.ts
index fdc92ed793..aa1244665b 100644
--- a/packages/frontend/src/theme-store.ts
+++ b/packages/frontend/src/theme-store.ts
@@ -1,11 +1,13 @@
import { api } from '@/os';
import { $i } from '@/account';
import { Theme } from './scripts/theme';
+import { miLocalStorage } from './local-storage';
-const lsCacheKey = $i ? `themes:${$i.id}` : '';
+const lsCacheKey = $i ? `themes:${$i.id}` as const : null;
export function getThemes(): Theme[] {
- return JSON.parse(localStorage.getItem(lsCacheKey) || '[]');
+ if ($i == null) return [];
+ return JSON.parse(miLocalStorage.getItem(lsCacheKey!) || '[]');
}
export async function fetchThemes(): Promise<void> {
@@ -13,7 +15,7 @@ export async function fetchThemes(): Promise<void> {
try {
const themes = await api('i/registry/get', { scope: ['client'], key: 'themes' });
- localStorage.setItem(lsCacheKey, JSON.stringify(themes));
+ miLocalStorage.setItem(lsCacheKey!, JSON.stringify(themes));
} catch (err) {
if (err.code === 'NO_SUCH_KEY') return;
throw err;
@@ -21,14 +23,16 @@ export async function fetchThemes(): Promise<void> {
}
export async function addTheme(theme: Theme): Promise<void> {
+ if ($i == null) return;
await fetchThemes();
const themes = getThemes().concat(theme);
await api('i/registry/set', { scope: ['client'], key: 'themes', value: themes });
- localStorage.setItem(lsCacheKey, JSON.stringify(themes));
+ miLocalStorage.setItem(lsCacheKey!, JSON.stringify(themes));
}
export async function removeTheme(theme: Theme): Promise<void> {
+ if ($i == null) return;
const themes = getThemes().filter(t => t.id !== theme.id);
await api('i/registry/set', { scope: ['client'], key: 'themes', value: themes });
- localStorage.setItem(lsCacheKey, JSON.stringify(themes));
+ miLocalStorage.setItem(lsCacheKey!, JSON.stringify(themes));
}