diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-01-27 11:28:51 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-01-27 11:28:51 +0900 |
| commit | 7d9d1ae7c26d97ba3aa4077f515d308e84a35a64 (patch) | |
| tree | baa9044a8e6dfae26cd965dff5f5cf12eedb5e01 /packages/frontend | |
| parent | tweak blur setting (diff) | |
| download | misskey-7d9d1ae7c26d97ba3aa4077f515d308e84a35a64.tar.gz misskey-7d9d1ae7c26d97ba3aa4077f515d308e84a35a64.tar.bz2 misskey-7d9d1ae7c26d97ba3aa4077f515d308e84a35a64.zip | |
enhance(client): tweak custom emoji cache
Diffstat (limited to 'packages/frontend')
| -rw-r--r-- | packages/frontend/src/custom-emojis.ts | 15 | ||||
| -rw-r--r-- | packages/frontend/src/pages/settings/index.vue | 5 |
2 files changed, 14 insertions, 6 deletions
diff --git a/packages/frontend/src/custom-emojis.ts b/packages/frontend/src/custom-emojis.ts index 0ba7cab5e2..9ce370e7e8 100644 --- a/packages/frontend/src/custom-emojis.ts +++ b/packages/frontend/src/custom-emojis.ts @@ -1,6 +1,6 @@ import { shallowRef, computed, markRaw } from 'vue'; import * as Misskey from 'misskey-js'; -import { apiGet } from './os'; +import { api, apiGet } from './os'; import { miLocalStorage } from './local-storage'; import { stream } from '@/stream'; @@ -28,12 +28,17 @@ stream.on('emojiDeleted', emojiData => { customEmojis.value = customEmojis.value.filter(item => !emojiData.emojis.some(search => search.name === item.name)); }); -export async function fetchCustomEmojis() { +export async function fetchCustomEmojis(force = false) { const now = Date.now(); - const lastFetchedAt = miLocalStorage.getItem('lastEmojisFetchedAt'); - if (lastFetchedAt && (now - parseInt(lastFetchedAt)) < 1000 * 60 * 60) return; - const res = await apiGet('emojis', {}); + let res; + if (force) { + res = await api('emojis', {}); + } else { + const lastFetchedAt = miLocalStorage.getItem('lastEmojisFetchedAt'); + if (lastFetchedAt && (now - parseInt(lastFetchedAt)) < 1000 * 60 * 60) return; + res = await apiGet('emojis', {}); + } customEmojis.value = res.emojis; miLocalStorage.setItem('emojis', JSON.stringify(res.emojis)); diff --git a/packages/frontend/src/pages/settings/index.vue b/packages/frontend/src/pages/settings/index.vue index e1e050ee70..4dbc6ec74c 100644 --- a/packages/frontend/src/pages/settings/index.vue +++ b/packages/frontend/src/pages/settings/index.vue @@ -34,6 +34,7 @@ import { useRouter } from '@/router'; import { definePageMetadata, provideMetadataReceiver, setPageMetadata } from '@/scripts/page-metadata'; import * as os from '@/os'; import { miLocalStorage } from '@/local-storage'; +import { fetchCustomEmojis } from '@/custom-emojis'; const indexInfo = { title: i18n.ts.settings, @@ -180,11 +181,13 @@ const menuDef = computed(() => [{ type: 'button', icon: 'ti ti-trash', text: i18n.ts.clearCache, - action: () => { + action: async () => { + os.waiting(); miLocalStorage.removeItem('locale'); miLocalStorage.removeItem('theme'); miLocalStorage.removeItem('emojis'); miLocalStorage.removeItem('lastEmojisFetchedAt'); + await fetchCustomEmojis(); unisonReload(); }, }, { |