// app/(dashboard)/layout.tsx
'use client';

import { useEffect, useState } from 'react';
import { useRouter } from 'next/navigation';
import { useAppSelector } from '@/hooks/useRedux';
import { Sidebar } from '@/components/dashboard/sidebar';
import { Header } from '@/components/dashboard/header';

export default function DashboardLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  const router = useRouter();
  const userState = useAppSelector((state) => state.user);
  const [collapsed, setCollapsed] = useState(false);

  // ✅ FIX: Correct path - accessToken is directly in userState
  const accessToken = userState?.accessToken;  // ← Yahan change karo
  const currentCustomer = userState?.currentCustomer;  // ← currentCustomer directly
  const loading = userState?.loading;
  
  useEffect(() => {
  
    
    if (!loading && !accessToken && !currentCustomer) {
      console.log("No token, redirecting to login");
      router.replace('/login');
    }
  }, [accessToken, currentCustomer, loading, router]);
  
 if (loading && !accessToken && !currentCustomer) {  // ← Sirf initial load ke liye
  return (
    <div className="min-h-screen flex items-center justify-center">
      <div className="animate-spin rounded-full h-12 w-12 border-b-2 border-primary"></div>
    </div>
  );
}
  
  if (!accessToken && !currentCustomer) {
    return null;
  }
  
  return (
    <div className="min-h-screen bg-background">
      <div className="fixed inset-0 overflow-hidden pointer-events-none">
        <div className="absolute -top-40 -right-40 h-[500px] w-[500px] rounded-full bg-primary/5 blur-3xl" />
        <div className="absolute top-1/2 -left-40 h-[400px] w-[400px] rounded-full bg-accent/5 blur-3xl" />
      </div>

      <Sidebar collapsed={collapsed} setCollapsed={setCollapsed} />
      
      <div className={collapsed ? "lg:pl-20 transition-all duration-300" : "lg:pl-72 transition-all duration-300"}>

        <Header />
        <main className="flex gap-6 p-4 pt-20 lg:pt-6 lg:p-6">
          {children}
        </main>
      </div>
    </div>
  );
}