"use client"; import { FaSearch } from "react-icons/fa"; import { FiLogOut } from "react-icons/fi"; import { useState, useEffect, useRef } from "react"; import { useRouter } from "next/navigation"; import { useTheme } from "../context/ThemeContext"; import { account } from "../lib/appwrite"; import { useAuth } from "../context/AuthContext"; import { Bell } from "lucide-react"; import { motion } from "framer-motion"; import { MdOutlineSettings, MdSupport } from "react-icons/md"; import { AiOutlineUser } from "react-icons/ai"; import NotificationBell from './NotificationBell'; const Navbar = ({ sidebarOpen, setSidebarOpen, isCollapsed, setIsCollapsed }) => { const [dropdownOpen, setDropdownOpen] = useState(false); const { darkMode, toggleDarkMode } = useTheme(); const [currentUser, setCurrentUser] = useState(null); const router = useRouter(); const dropdownRef = useRef(null); const { setIsAuthenticated } = useAuth(); // Fetch the logged-in user useEffect(() => { const fetchUser = async () => { try { const user = await account.get(); setCurrentUser(user); } catch (error) { console.error("User not authenticated:", error); router.push("/signup"); } }; fetchUser(); }, [router]); const toggleDropdown = () => { setDropdownOpen(!dropdownOpen); }; const handleSidebarToggle = () => { if (window.innerWidth >= 1024) { // Desktop view setIsCollapsed(!isCollapsed); } else { // Mobile view setSidebarOpen(!sidebarOpen); } }; useEffect(() => { function handleClickOutside(event) { if (dropdownRef.current && !dropdownRef.current.contains(event.target)) { setDropdownOpen(false); } } document.addEventListener("mousedown", handleClickOutside); return () => { document.removeEventListener("mousedown", handleClickOutside); }; }, []); const handleSignOut = async () => { try { await account.deleteSession("current"); setCurrentUser(null); setIsAuthenticated(false); router.push("/signup"); } catch (error) { console.error("Logout failed:", error); } }; // ----------------notificatio logic------------------ return ( ); }; export default Navbar;