diff --git a/CHANGELOG.md b/CHANGELOG.md index 380f214bd..6dfe43ff0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -44,6 +44,7 @@ - Fix: 一部の言語でMisskey Webがクラッシュする問題を修正 - Fix: チャンネルの作成・更新時に失敗した場合何も表示されない問題を修正 #11983 - Fix: 個人カードのemojiがバッテリーになっている問題を修正 +- Fix: 標準テーマと同じIDを使用してインストールできてしまう問題を修正 ### Server - Enhance: RedisへのTLのキャッシュをオフにできるように diff --git a/packages/frontend/src/theme-store.ts b/packages/frontend/src/theme-store.ts index 9cae68d5d..f37c01cca 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 { export async function addTheme(theme: Theme): Promise { 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 });