import { useLang, useTranslationContext } from "@gnu-taler/web-util/browser"; import { VNode, h } from "preact"; import { FormErrors, FormProvider } from "../../components/form/FormProvider.js"; import { InputSelector } from "../../components/form/InputSelector.js"; import { InputToggle } from "../../components/form/InputToggle.js"; import { LangSelector } from "../../components/menu/LangSelector.js"; import { Settings, useSettings } from "../../hooks/useSettings.js"; function getBrowserLang(): string | undefined { if (typeof window === "undefined") return undefined; if (window.navigator.languages) return window.navigator.languages[0]; if (window.navigator.language) return window.navigator.language; return undefined; } export function Settings({ onClose }: { onClose?: () => void }): VNode { const { i18n } = useTranslationContext() const borwserLang = getBrowserLang() const { update } = useLang() const [value, updateValue] = useSettings() const errors: FormErrors = { } function valueHandler(s: (d: Partial) => Partial): void { const next = s(value) const v: Settings = { advanceOrderMode: next.advanceOrderMode ?? false, dateFormat: next.dateFormat ?? "ymd" } updateValue(v) } return
name="settings" errors={errors} object={value} valueHandler={valueHandler} >
  {borwserLang !== undefined && }
label={i18n.str`Advance order creation`} tooltip={i18n.str`Shows more options in the order creation form`} name="advanceOrderMode" /> name="dateFormat" label={i18n.str`Date format`} expand={true} help={ value.dateFormat === "dmy" ? "31/12/2001" : value.dateFormat === "mdy" ? "12/31/2001" : value.dateFormat === "ymd" ? "2001/12/31" : "" } toStr={(e) => { if (e === "ymd") return "year month day" if (e === "mdy") return "month day year" if (e === "dmy") return "day month year" return "choose one" }} values={[ "ymd", "mdy", "dmy", ]} tooltip={i18n.str`how the date is going to be displayed`} />
{onClose &&
}
}