import { createMemo, For, type Component, type JSX } from "solid-js"; import Scaffold from "../material/Scaffold"; import { AppBar, IconButton, List, ListItemButton, ListItemSecondaryAction, ListItemText, ListSubheader, Radio, Switch, Toolbar, } from "@suid/material"; import { ArrowBack } from "@suid/icons-material"; import { autoMatchRegion, createTranslator, SUPPORTED_REGIONS, } from "../platform/i18n"; import { Title } from "../material/typography"; import type { Template } from "@solid-primitives/i18n"; import { $settings } from "./stores"; import { useStore } from "@nanostores/solid"; import { useNavigator } from "../platform/StackedRouter"; const ChooseRegion: Component = () => { const {pop} = useNavigator(); const [t] = createTranslator( () => import("./i18n/lang-names.json"), (code) => import(`./i18n/${code}.json`) as Promise<{ default: Record & { ["lang.auto"]: Template<{ detected: string }>; }; }>, ); const settings = useStore($settings); const region = () => settings().region; const matchedRegionCode = createMemo(() => autoMatchRegion()); const onCodeChange = (code?: string) => { $settings.setKey("region", code); }; return ( {t("Choose Region")} } > { onCodeChange(region() ? undefined : matchedRegionCode()); }} > {t("region.auto", { detected: t(`region.${matchedRegionCode()}`) ?? matchedRegionCode(), })} {t("Supported")}}> {(code) => ( {t(`region.${code}`)} )} ); }; export default ChooseRegion;