import { useState } from 'react'; import { msg } from '@lingui/macro'; import { useLingui } from '@lingui/react'; import { CheckIcon } from 'lucide-react'; import { LuLanguages } from 'react-icons/lu'; import { SUPPORTED_LANGUAGES } from '@documenso/lib/constants/i18n'; import { switchI18NLanguage } from '@documenso/lib/server-only/i18n/switch-i18n-language'; import { dynamicActivate } from '@documenso/lib/utils/i18n'; import { cn } from '@documenso/ui/lib/utils'; import { Button } from '@documenso/ui/primitives/button'; import { CommandDialog, CommandGroup, CommandInput, CommandItem, CommandList, } from '@documenso/ui/primitives/command'; type I18nSwitcherProps = { className?: string; }; export const I18nSwitcher = ({ className }: I18nSwitcherProps) => { const { i18n, _ } = useLingui(); const [open, setOpen] = useState(false); const [value, setValue] = useState(i18n.locale); const setLanguage = async (lang: string) => { setValue(lang); setOpen(false); await dynamicActivate(i18n, lang); await switchI18NLanguage(lang); }; return ( <> {Object.values(SUPPORTED_LANGUAGES).map((language) => ( setLanguage(language.short)} > {SUPPORTED_LANGUAGES[language.short].full} ))} ); };