"use client" import { useState, useEffect } from "react" import Link from "next/link" import Image from "next/image" import { Button } from "@/components/ui/button" import { Sheet, SheetContent, SheetTrigger } from "@/components/ui/sheet" import { Menu, User, LogIn } from "lucide-react" import { getCurrentUser } from "@/lib/auth" import { useTranslation } from "@/lib/i18n" import { LanguageSwitcher } from "@/components/language-switcher" export function Navbar() { const [isOpen, setIsOpen] = useState(false) const [mounted, setMounted] = useState(false) const user = getCurrentUser() const { t } = useTranslation() // Prevent hydration mismatch by only rendering translated content after mount useEffect(() => { setMounted(true) }, []) if (!mounted) { return null; // Or a loading skeleton to avoid mismatch } // Static labels for SSR, translated labels for client const navigationItems = [ { href: "/jobs", label: mounted ? t('nav.jobs') : "Vagas" }, { href: "/companies", label: mounted ? t('footer.empresas') : "Empresas" }, { href: "/blog", label: mounted ? t('footer.blog') : "Blog" }, ] const loginLabel = mounted ? t('footer.login') : "Entrar" const registerLabel = mounted ? t('nav.register') : "Cadastrar" const mobileLoginLabel = mounted ? t('nav.login') : "Login" return ( ) }