feat(nav-user): add language toggle functionality to user menu
This commit is contained in:
@@ -9,14 +9,26 @@
|
||||
import CreditCardIcon from "@lucide/svelte/icons/credit-card";
|
||||
import LogOutIcon from "@lucide/svelte/icons/log-out";
|
||||
import SparklesIcon from "@lucide/svelte/icons/sparkles";
|
||||
import LanguagesIcon from "@lucide/svelte/icons/languages";
|
||||
import { logout } from "$lib/auth";
|
||||
import { setLocale, locales } from "$lib/paraglide/runtime";
|
||||
import { page } from "$app/state";
|
||||
|
||||
let { user }: { user: { name: string; email: string; avatar: string } } = $props();
|
||||
const sidebar = useSidebar();
|
||||
|
||||
// Estado reactivo del idioma actual
|
||||
let currentLocale = $derived(page.data.locale || 'en');
|
||||
|
||||
async function handleLogout() {
|
||||
await logout();
|
||||
}
|
||||
|
||||
function toggleLanguage() {
|
||||
// Alternar entre 'en' y 'es'
|
||||
const newLocale = currentLocale === 'en' ? 'es' : 'en';
|
||||
setLocale(newLocale);
|
||||
}
|
||||
</script>
|
||||
|
||||
<Sidebar.Menu>
|
||||
@@ -82,6 +94,11 @@
|
||||
</DropdownMenu.Item>
|
||||
</DropdownMenu.Group>
|
||||
<DropdownMenu.Separator />
|
||||
<DropdownMenu.Item onclick={toggleLanguage}>
|
||||
<LanguagesIcon />
|
||||
Language: {currentLocale.toUpperCase()}
|
||||
</DropdownMenu.Item>
|
||||
<DropdownMenu.Separator />
|
||||
<DropdownMenu.Item onclick={handleLogout}>
|
||||
<LogOutIcon />
|
||||
Log out
|
||||
|
||||
Reference in New Issue
Block a user