diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-10-30 13:38:03 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-10-30 13:38:03 +0900 |
| commit | e512f8c56dbf8c32810a6b25652f57a0ae9b4baf (patch) | |
| tree | aea0b4ba2100e8fedf6a9ae3ac2ca7c0a0e762b9 /packages/frontend/src/theme-store.ts | |
| parent | Update CHANGELOG.md (diff) | |
| download | misskey-e512f8c56dbf8c32810a6b25652f57a0ae9b4baf.tar.gz misskey-e512f8c56dbf8c32810a6b25652f57a0ae9b4baf.tar.bz2 misskey-e512f8c56dbf8c32810a6b25652f57a0ae9b4baf.zip | |
fix(frontend): 標準テーマと同じIDを使用してインストールできてしまう問題を修正
Fix #12188
Diffstat (limited to 'packages/frontend/src/theme-store.ts')
| -rw-r--r-- | packages/frontend/src/theme-store.ts | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/frontend/src/theme-store.ts b/packages/frontend/src/theme-store.ts index 9cae68d5d3..f37c01cca1 100644 --- a/packages/frontend/src/theme-store.ts +++ b/packages/frontend/src/theme-store.ts @@ -3,7 +3,7 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { Theme } from '@/scripts/theme.js'; +import { Theme, getBuiltinThemes } from '@/scripts/theme.js'; import { miLocalStorage } from '@/local-storage.js'; import { api } from '@/os.js'; import { $i } from '@/account.js'; @@ -29,6 +29,10 @@ export async function fetchThemes(): Promise<void> { export async function addTheme(theme: Theme): Promise<void> { if ($i == null) return; + const builtinThemes = await getBuiltinThemes(); + if (builtinThemes.some(t => t.id === theme.id)) { + throw new Error('builtin theme'); + } await fetchThemes(); const themes = getThemes().concat(theme); await api('i/registry/set', { scope: ['client'], key: 'themes', value: themes }); |