"use client"; import { Menu } from "lucide-react"; import Link from "next/link"; import { useTranslations } from "next-intl"; import { useEffect, useState } from "react"; import { Button } from "@/components/ui/button"; import { Separator } from "@/components/ui/separator"; import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet"; import { LanguageSwitcher } from "./language-switcher"; import { ThemeToggle } from "./theme-toggle"; interface MobileMenuProps { links: Array<{ href: string; label: string }>; } export function MobileMenu({ links }: MobileMenuProps) { const [open, setOpen] = useState(false); const [mounted, setMounted] = useState(false); const t = useTranslations("header"); // Evitar hydration mismatch com Radix UI useEffect(() => { setMounted(true); }, []); // Renderizar placeholder durante SSR para evitar mismatch if (!mounted) { return ( ); } return (
{/* Navigation Links */}
{links.map(({ href, label }) => ( setOpen(false)} > {label} ))}
{/* Theme and Language Controls */}
{t("theme.light")}
{t("language")}
); }