mirror of
https://github.com/glitch-soc/mastodon.git
synced 2025-12-14 00:08:46 +00:00
39 lines
1.0 KiB
TypeScript
39 lines
1.0 KiB
TypeScript
import initialState from '@/flavours/glitch/initial_state';
|
|
|
|
import { toSupportedLocale } from './locale';
|
|
|
|
const serverLocale = toSupportedLocale(initialState?.meta.locale ?? 'en');
|
|
|
|
const worker =
|
|
'Worker' in window
|
|
? new Worker(new URL('./worker', import.meta.url), {
|
|
type: 'module',
|
|
})
|
|
: null;
|
|
|
|
export async function initializeEmoji() {
|
|
if (worker) {
|
|
worker.addEventListener('message', (event: MessageEvent<string>) => {
|
|
const { data: message } = event;
|
|
if (message === 'ready') {
|
|
worker.postMessage(serverLocale);
|
|
worker.postMessage('custom');
|
|
}
|
|
});
|
|
} else {
|
|
const { importCustomEmojiData, importEmojiData } = await import('./loader');
|
|
await Promise.all([importCustomEmojiData(), importEmojiData(serverLocale)]);
|
|
}
|
|
}
|
|
|
|
export async function loadEmojiLocale(localeString: string) {
|
|
const locale = toSupportedLocale(localeString);
|
|
|
|
if (worker) {
|
|
worker.postMessage(locale);
|
|
} else {
|
|
const { importEmojiData } = await import('./loader');
|
|
await importEmojiData(locale);
|
|
}
|
|
}
|