"use client";

import React, { useEffect, useState } from 'react';
import Link from 'next/link';
import { ShoppingBag, User, LogOut } from 'lucide-react'; 
import { useCartStore } from '@/store/cartStore';
import { supabase } from '@/lib/supabase';

export default function Navbar() {
  const { openCart, items } = useCartStore();
  const cartItemCount = items.reduce((total, item) => total + item.quantity, 0);

  // --- NEW: Auth State Management ---
  const [user, setUser] = useState<any>(null);

  useEffect(() => {
    // 1. Check if a user is logged in right when the page loads
    supabase.auth.getSession().then(({ data: { session } }) => {
      setUser(session?.user ?? null);
    });

    // 2. Listen for any login/logout events across the app
    const { data: { subscription } } = supabase.auth.onAuthStateChange((_event, session) => {
      setUser(session?.user ?? null);
    });

    // Cleanup the listener when the component unmounts
    return () => subscription.unsubscribe();
  }, []);

  const handleSignOut = async () => {
    await supabase.auth.signOut();
  };

  return (
    <nav className="bg-white border-b border-neutral-200 sticky top-0 z-[60]">
      <div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
        <div className="flex justify-between items-center h-16">
          
          {/* Brand Logo */}
          <Link href="/" className="text-2xl font-black text-neutral-900 tracking-tighter">
            WOW<span className="text-yellow-500">WEAR</span>
          </Link>

          {/* Right Side Actions */}
          <div className="flex items-center gap-2 sm:gap-6">
            
            {/* Conditional Auth UI */}
            {user ? (
              <div className="flex items-center gap-4">
                <Link 
                  href="/account" 
                  className="flex items-center gap-2 text-sm font-bold text-neutral-700 hover:text-yellow-500 transition-colors"
                >
                  <User className="w-5 h-5" />
                  <span className="hidden sm:inline">My Account</span>
                </Link>
                <button 
                  onClick={handleSignOut}
                  className="flex items-center gap-2 text-sm font-bold text-neutral-400 hover:text-red-500 transition-colors"
                  title="Sign Out"
                >
                  <LogOut className="w-5 h-5" />
                </button>
              </div>
            ) : (
              <Link 
                href="/login" 
                className="flex items-center gap-2 text-sm font-bold text-neutral-700 hover:text-yellow-500 transition-colors"
              >
                <User className="w-5 h-5" />
                <span className="hidden sm:inline">Log In / Sign Up</span>
              </Link>
            )}

            {/* Vertical Divider */}
            <div className="hidden sm:block w-px h-6 bg-neutral-200"></div>

            {/* Cart Button */}
            <button 
              onClick={openCart}
              className="relative p-2 text-neutral-700 hover:text-yellow-500 transition-colors"
              aria-label="Open Cart"
            >
              <ShoppingBag className="w-6 h-6" />
              
              {cartItemCount > 0 && (
                <span className="absolute top-0 right-0 inline-flex items-center justify-center px-2 py-1 text-xs font-bold leading-none text-neutral-900 bg-yellow-500 rounded-full transform translate-x-1/4 -translate-y-1/4">
                  {cartItemCount}
                </span>
              )}
            </button>
            
          </div>
        </div>
      </div>
    </nav>
  );
}