summaryrefslogtreecommitdiffhomepage
path: root/packages/console/app/src/component/language-picker.tsx
blob: b30471d015ef3476e97324a51b2fab08a354f6f6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { For, createSignal } from "solid-js"
import { Dropdown, DropdownItem } from "~/component/dropdown"
import { useLanguage } from "~/context/language"
import "./language-picker.css"

export function LanguagePicker(props: { align?: "left" | "right" } = {}) {
  const language = useLanguage()
  const [open, setOpen] = createSignal(false)

  return (
    <div data-component="language-picker">
      <Dropdown
        trigger={language.label(language.locale())}
        align={props.align ?? "left"}
        open={open()}
        onOpenChange={setOpen}
      >
        <For each={language.locales}>
          {(locale) => (
            <DropdownItem
              selected={locale === language.locale()}
              onClick={() => {
                language.setLocale(locale)
                setOpen(false)
              }}
            >
              {language.label(locale)}
            </DropdownItem>
          )}
        </For>
      </Dropdown>
    </div>
  )
}