123456789101112131415161718192021222324252627 |
- import React, { useEffect, useState } from "react";
- import { LoadingMessage } from "./LoadingMessage";
- import { defaultLang, Language, languages, setLanguage } from "../i18n";
- import { Theme } from "../element/types";
- interface Props {
- langCode: Language["code"];
- children: React.ReactElement;
- theme?: Theme;
- }
- export const InitializeApp = (props: Props) => {
- const [loading, setLoading] = useState(true);
- useEffect(() => {
- const updateLang = async () => {
- await setLanguage(currentLang);
- setLoading(false);
- };
- const currentLang =
- languages.find((lang) => lang.code === props.langCode) || defaultLang;
- updateLang();
- }, [props.langCode]);
- return loading ? <LoadingMessage theme={props.theme} /> : props.children;
- };
|