/
Alex_Ural
/
opencode
Обзор
Документация
Войти
/
Alex_Ural
/
opencode
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
packages/console/app/src/component/language-picker.tsx
40 строк
1 KB
Adam
feat(www): locale specific urls (#12508)
06 фев 2026, 20:30
Не верифицирован
06 фев 2026, 20:30
24cd84c
Код
Авторство
О чём код?
import { For, createSignal } from "solid-js" import { useLocation, useNavigate } from "@solidjs/router" import { Dropdown, DropdownItem } from "~/component/dropdown" import { useLanguage } from "~/context/language" import { route, strip } from "~/lib/language" import "./language-picker.css" export function LanguagePicker(props: { align?: "left" | "right" } = {}) { const language = useLanguage() const navigate = useNavigate() const location = useLocation() 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) const href = `${route(locale, strip(location.pathname))}${location.search}${location.hash}` if (href !== `${location.pathname}${location.search}${location.hash}`) navigate(href) setOpen(false) }} > {language.label(locale)} </DropdownItem> )} </For> </Dropdown> </div> ) }