import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { useAuth } from "@/hooks/useAuth"; import { Search, Settings, User, LogOut } from "lucide-react"; import { useState } from "react"; import MainContent from "@/components/MainContent"; import LoginModal from "@/components/LoginModal"; import SearchModal from "@/components/SearchModal"; import SettingsModal from "@/components/SettingsModal"; import { useToast } from "@/hooks/use-toast"; import { queryClient } from "@/lib/queryClient"; import { useLocation } from "wouter"; export default function Home() { const { user, isAuthenticated } = useAuth(); const [isLoginModalOpen, setIsLoginModalOpen] = useState(false); const [isSearchModalOpen, setIsSearchModalOpen] = useState(false); const [isSettingsModalOpen, setIsSettingsModalOpen] = useState(false); const { toast } = useToast(); const [, setLocation] = useLocation(); const handleLogout = async () => { try { const response = await fetch("/api/logout", { method: "POST", credentials: "include", }); if (response.ok) { toast({ title: "Logged Out", description: "You have been successfully logged out.", }); // Invalidate auth queries to refresh user state queryClient.invalidateQueries({ queryKey: ["/api/auth/user"] }); } } catch (error) { toast({ title: "Logout Error", description: "An error occurred while logging out.", variant: "destructive", }); } }; const handleAdminPage = () => { setLocation("/admin"); }; return (
{/* Header */}
SAPIENS setLocation("/")} />
setIsSearchModalOpen(true)} data-testid="search-container" > setIsSearchModalOpen(true)} />
{isAuthenticated && user ? ( <>
{user.firstName} {user.lastName}
) : ( <> )}
{/* Main Content */} {/* Login Modal */} setIsLoginModalOpen(false)} /> {/* Search Modal */} setIsSearchModalOpen(false)} /> {/* Settings Modal */} setIsSettingsModalOpen(false)} />
); }