何らかの理由によりクライアントの絵文字キャッシュが削除された場合ただちに再取得するように修正 (MisskeyIO#163)
This commit is contained in:
parent
545ab80363
commit
4165db331e
|
@ -7,7 +7,7 @@ import { shallowRef, computed, markRaw, watch } from 'vue';
|
|||
import * as Misskey from 'misskey-js';
|
||||
import { api, apiGet } from './os';
|
||||
import { useStream } from '@/stream';
|
||||
import { get, set } from '@/scripts/idb-proxy';
|
||||
import { get, set, exist } from '@/scripts/idb-proxy';
|
||||
|
||||
const storageCache = await get('emojis');
|
||||
export const customEmojis = shallowRef<Misskey.entities.CustomEmoji[]>(Array.isArray(storageCache) ? storageCache : []);
|
||||
|
@ -54,8 +54,9 @@ export async function fetchCustomEmojis(force = false) {
|
|||
if (force) {
|
||||
res = await api('emojis', {});
|
||||
} else {
|
||||
const emojiCacheExist = await exist('emojis');
|
||||
const lastFetchedAt = await get('lastEmojisFetchedAt');
|
||||
if (lastFetchedAt && (now - lastFetchedAt) < 1000 * 60 * 60) return;
|
||||
if (lastFetchedAt && (now - lastFetchedAt) < 1000 * 60 * 60 && emojiCacheExist) return;
|
||||
res = await apiGet('emojis', {});
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import {
|
|||
get as iget,
|
||||
set as iset,
|
||||
del as idel,
|
||||
keys as ikeys,
|
||||
} from 'idb-keyval';
|
||||
|
||||
const fallbackName = (key: string) => `idbfallback::${key}`;
|
||||
|
@ -40,3 +41,11 @@ export async function del(key: string) {
|
|||
if (idbAvailable) return idel(key);
|
||||
return window.localStorage.removeItem(fallbackName(key));
|
||||
}
|
||||
|
||||
export async function exist(key: string) {
|
||||
if (idbAvailable) {
|
||||
const keys = await ikeys();
|
||||
return keys.includes(key);
|
||||
}
|
||||
return window.localStorage.getItem(fallbackName(key)) !== null;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue