import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { useAuth } from "@/hooks/useAuth"; import { Search, Settings, User, LogOut, Sun, Moon, Monitor, Globe } from "lucide-react"; import { useState, useEffect } from "react"; import MainContent from "@/components/MainContent"; import LoginModal from "@/components/LoginModal"; import SearchModal from "@/components/SearchModal"; import { useToast } from "@/hooks/use-toast"; import { queryClient } from "@/lib/queryClient"; import { useLocation } from "wouter"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; export default function Home() { const { user, isAuthenticated } = useAuth(); const [isLoginModalOpen, setIsLoginModalOpen] = useState(false); const [isSearchModalOpen, setIsSearchModalOpen] = useState(false); const { toast } = useToast(); const [, setLocation] = useLocation(); const [theme, setTheme] = useState(() => localStorage.getItem('theme') || 'light'); const [language, setLanguage] = useState(() => localStorage.getItem('language') || 'en'); useEffect(() => { if (theme === 'dark') { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } localStorage.setItem('theme', theme); }, [theme]); useEffect(() => { localStorage.setItem('language', language); }, [language]); const handleThemeChange = (newTheme: string) => { setTheme(newTheme); }; const handleLanguageChange = (newLanguage: string) => { setLanguage(newLanguage); }; const languages = [ { code: 'en', name: 'English' }, { code: 'fr', name: 'Français' }, { code: 'de', name: 'Deutsch' }, { code: 'it', name: 'Italiano' }, { code: 'hi', name: 'हिन्दी' }, { code: 'ar', name: 'العربية' }, { code: 'ja', name: '日本語' }, { code: 'ko', name: '한국어' }, { code: 'zh-TW', name: '繁體中文' }, { code: 'zh-CN', name: '简体中文' }, ]; 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 (
setLocation("/")}
/>