From 22d6fa1fdf1dd4b61673d10cac6ca866dd5f26d8 Mon Sep 17 00:00:00 2001 From: yukineko <27853966+hideki0403@users.noreply.github.com> Date: Thu, 30 Nov 2023 14:48:02 +0900 Subject: enhance(dev): 開発モード時にlocaleと型定義が自動的に再生成されるように (#12481) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enhance: localeを任意のタイミングでリビルドできるように * enhance: localeも監視し、必要であればlocaleをリビルドするように * feat: devモードの時のみナビゲーションバーからキャッシュクリアができるように * refactor: キャッシュクリア部分を共通化 * fix: localesのファイル変更イベントが取れないのを修正 * fix: replaceAllでコケるのを修正 * change: 開発モードに関係なくナビゲーションバーからキャッシュクリアできるように * refactor: 必要のないリビルドをしないように * update: CHANGELOG.md --------- Co-authored-by: syuilo --- packages/frontend/src/navbar.ts | 8 ++++++++ packages/frontend/src/pages/settings/index.vue | 12 ++---------- packages/frontend/src/scripts/clear-cache.ts | 14 ++++++++++++++ 3 files changed, 24 insertions(+), 10 deletions(-) create mode 100644 packages/frontend/src/scripts/clear-cache.ts (limited to 'packages/frontend/src') diff --git a/packages/frontend/src/navbar.ts b/packages/frontend/src/navbar.ts index f0ed773f82..78a0945ddb 100644 --- a/packages/frontend/src/navbar.ts +++ b/packages/frontend/src/navbar.ts @@ -12,6 +12,7 @@ import * as os from '@/os.js'; import { i18n } from '@/i18n.js'; import { ui } from '@/config.js'; import { unisonReload } from '@/scripts/unison-reload.js'; +import { clearCache } from './scripts/clear-cache.js'; export const navbarItemDef = reactive({ notifications: { @@ -171,4 +172,11 @@ export const navbarItemDef = reactive({ show: computed(() => $i != null), to: `/@${$i?.username}`, }, + cacheClear: { + title: i18n.ts.cacheClear, + icon: 'ti ti-trash', + action: (ev) => { + clearCache(); + }, + }, }); diff --git a/packages/frontend/src/pages/settings/index.vue b/packages/frontend/src/pages/settings/index.vue index 361a6c8c78..5a1a9aedb3 100644 --- a/packages/frontend/src/pages/settings/index.vue +++ b/packages/frontend/src/pages/settings/index.vue @@ -33,13 +33,11 @@ import { i18n } from '@/i18n.js'; import MkInfo from '@/components/MkInfo.vue'; import MkSuperMenu from '@/components/MkSuperMenu.vue'; import { signout, $i } from '@/account.js'; -import { unisonReload } from '@/scripts/unison-reload.js'; +import { clearCache } from '@/scripts/clear-cache.js'; import { instance } from '@/instance.js'; import { useRouter } from '@/router.js'; import { definePageMetadata, provideMetadataReceiver } from '@/scripts/page-metadata.js'; import * as os from '@/os.js'; -import { miLocalStorage } from '@/local-storage.js'; -import { fetchCustomEmojis } from '@/custom-emojis.js'; const indexInfo = { title: i18n.ts.settings, @@ -182,13 +180,7 @@ const menuDef = computed(() => [{ icon: 'ti ti-trash', text: i18n.ts.clearCache, action: async () => { - os.waiting(); - miLocalStorage.removeItem('locale'); - miLocalStorage.removeItem('theme'); - miLocalStorage.removeItem('emojis'); - miLocalStorage.removeItem('lastEmojisFetchedAt'); - await fetchCustomEmojis(true); - unisonReload(); + await clearCache(); }, }, { type: 'button', diff --git a/packages/frontend/src/scripts/clear-cache.ts b/packages/frontend/src/scripts/clear-cache.ts new file mode 100644 index 0000000000..5f27254b8a --- /dev/null +++ b/packages/frontend/src/scripts/clear-cache.ts @@ -0,0 +1,14 @@ +import { unisonReload } from '@/scripts/unison-reload.js'; +import * as os from '@/os.js'; +import { miLocalStorage } from '@/local-storage.js'; +import { fetchCustomEmojis } from '@/custom-emojis.js'; + +export async function clearCache() { + os.waiting(); + miLocalStorage.removeItem('locale'); + miLocalStorage.removeItem('theme'); + miLocalStorage.removeItem('emojis'); + miLocalStorage.removeItem('lastEmojisFetchedAt'); + await fetchCustomEmojis(true); + unisonReload(); +} -- cgit v1.2.3-freya