summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/custom-emojis.ts15
-rw-r--r--packages/frontend/src/pages/settings/index.vue5
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();
},
}, {