diff --git a/src/app/(main)/MobileNav.tsx b/src/app/(main)/MobileNav.tsx index a1944960..934c43fa 100644 --- a/src/app/(main)/MobileNav.tsx +++ b/src/app/(main)/MobileNav.tsx @@ -8,6 +8,7 @@ import { Grid, IconLabel, NavMenu, NavMenuItem, Row, Text } from '@umami/react-z import Link from 'next/link'; import { AdminNav } from './admin/AdminNav'; import { SettingsNav } from './settings/SettingsNav'; +import { MobileLanguageButton } from '@/components/input/MobileLanguageButton'; export function MobileNav() { const { formatMessage, labels } = useMessages(); @@ -54,6 +55,7 @@ export function MobileNav() { ); })} + {websiteId && } {isAdmin && } {isSettings && } diff --git a/src/components/input/MobileLanguageButton.tsx b/src/components/input/MobileLanguageButton.tsx new file mode 100644 index 00000000..e53be70e --- /dev/null +++ b/src/components/input/MobileLanguageButton.tsx @@ -0,0 +1,74 @@ +import { Icon, Button, MenuTrigger, Popover, Grid, Text, Dialog, Row } from '@umami/react-zen'; +import { languages } from '@/lib/lang'; +import { useLocale } from '@/components/hooks'; +import { Globe } from 'lucide-react'; +import { ThemeButton } from '@umami/react-zen'; + +export function MobileLanguageButton() { + const { locale, saveLocale } = useLocale(); + const items = Object.keys(languages).map(key => ({ ...languages[key], value: key })); + + function handleSelect(value: string) { + saveLocale(value); + } + + return ( + + + + + + + {items.map(({ value, label }) => ( + + ))} + + + + + + + ); +}