mirror of
https://github.com/Qortal/qapp-core.git
synced 2026-04-30 20:09:22 +00:00
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { useEffect } from 'react';
|
|
import { supportedLanguages } from '../i18n/i18n';
|
|
import i18n from '../i18n/i18n';
|
|
type Language = 'de' | 'en' | 'es' | 'fr' | 'it' | 'ja' | 'ru' | 'zh';
|
|
type Theme = 'dark' | 'light';
|
|
|
|
interface CustomWindow extends Window {
|
|
_qdnTheme: Theme;
|
|
_qdnLang: Language;
|
|
}
|
|
const customWindow = window as unknown as CustomWindow;
|
|
|
|
export const useIframe = () => {
|
|
useEffect(() => {
|
|
const languageDefault = customWindow?._qdnLang;
|
|
|
|
if (supportedLanguages?.includes(languageDefault)) {
|
|
i18n.changeLanguage(languageDefault);
|
|
}
|
|
|
|
function handleNavigation(event: {
|
|
data: {
|
|
action: string;
|
|
language: Language;
|
|
};
|
|
}) {
|
|
if (event.data?.action === 'LANGUAGE_CHANGED' && event.data.language) {
|
|
if (!supportedLanguages?.includes(event.data.language)) return;
|
|
|
|
i18n.changeLanguage(event.data.language);
|
|
}
|
|
}
|
|
|
|
window.addEventListener('message', handleNavigation);
|
|
|
|
return () => {
|
|
window.removeEventListener('message', handleNavigation);
|
|
};
|
|
}, []);
|
|
return;
|
|
};
|