1
0
forked from mirror/misskey

enhance(client): tweak custom emoji cache

This commit is contained in:
syuilo 2023-01-27 11:28:51 +09:00
parent cef448f0f2
commit 7d9d1ae7c2
2 changed files with 14 additions and 6 deletions

View File

@ -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));

View File

@ -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();
},
}, {