"use client"; import React, { useState, useEffect } from "react"; import Link from "next/link"; import { useTheme } from "next-themes"; import { motion, AnimatePresence } from "framer-motion"; import { Sun, Moon, Menu, X } from "lucide-react"; import { Button } from "@/components/ui/button"; import Image from "next/image" // 1. Definição de Dados Centralizada (SSOT - Single Source of Truth) const NAV_LINKS = [ { href: "/", label: "Como funciona" }, { href: "/#recursos", label: "Recursos" }, { href: "/sobre", label: "Sobre" }, ]; export function Header() { const [isMenuOpen, setIsMenuOpen] = useState(false); const [mounted, setMounted] = useState(false); const { theme, setTheme } = useTheme(); // Prevenção de Hydration Mismatch useEffect(() => setMounted(true), []); const toggleTheme = () => setTheme(theme === "dark" ? "light" : "dark"); return (
{/* Logo Section - Unificada */} {/* Container do Logo com Referencial Relativo */}
NutriScan Logo
NUTRISCAN Data Engineering
{/* Desktop Nav - Com micro-interações */} {/* Ações e Mobile Toggle */}
{mounted && ( )}
{/* Mobile Menu - Animado com AnimatePresence */} {isMenuOpen && ( )}
); }