import { Center, ElementType, Menu, MenuContent, MenuItem, MenuTrigger, MenuTriggerProps, Spinner, useColorModeValue, } from "@hope-ui/solid" import { useI18n } from "@solid-primitives/i18n" import { createSignal, For, Show } from "solid-js" import { langMap, languages, loadedLangs, setLang } from "~/app/i18n" // import { TbLanguageHiragana } from "solid-icons/tb"; import { IoLanguageOutline } from "solid-icons/io" import { Portal } from "solid-js/web" const [fetchingLang, setFetchingLang] = createSignal(false) export const SwitchLanguage = ( props: MenuTriggerProps, ) => { const [, { locale, add }] = useI18n() const switchLang = async (lang: string) => { if (!loadedLangs.has(lang)) { setFetchingLang(true) add(lang, (await langMap[lang]()).default) setFetchingLang(false) loadedLangs.add(lang) } locale(lang) setLang(lang) localStorage.setItem("lang", lang) } return ( <> {(lang, i) => ( { switchLang(lang.code) }} > {lang.lang} )}
) } export const SwitchLanguageWhite = () => ( )