"use client"; import { usePathname } from "next/navigation"; import { useTranslation } from "react-i18next"; import Link from "next/link"; import Image from "next/image"; import { NavLink, MobileNavLink } from "./components/NavLinks"; import { Globe, LogIn, UserPlus, UserCircle, LogOut, Calendar, Building, PlusCircle, Heart, MessageCircle, Settings, Edit, Phone, Mail, MapPin, Camera, Shield, Bell, Home, ChevronDown, Menu, X, TrendingUp, CalendarDays, Clock, Users, DollarSign, } from "lucide-react"; import { useState, useEffect, useRef } from "react"; import { motion, AnimatePresence } from "framer-motion"; import "./i18n/config"; export default function ClientLayout({ children }) { const { t, i18n } = useTranslation(); const pathname = usePathname(); const [currentLanguage, setCurrentLanguage] = useState("en"); const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false); const [showUserMenu, setShowUserMenu] = useState(false); const [user, setUser] = useState(null); const [isMounted, setIsMounted] = useState(false); const currentYear = new Date().getFullYear(); const menuRef = useRef(null); useEffect(() => { setIsMounted(true); const savedLanguage = localStorage.getItem("language") || "en"; setCurrentLanguage(savedLanguage); i18n.changeLanguage(savedLanguage); const storedUser = localStorage.getItem("user"); if (storedUser) { const userData = JSON.parse(storedUser); console.log("User data loaded:", userData); setUser(userData); } if (savedLanguage === "ar") { document.documentElement.dir = "rtl"; document.documentElement.lang = "ar"; } else { document.documentElement.dir = "ltr"; document.documentElement.lang = "en"; } }, [i18n]); useEffect(() => { const handleClickOutside = (event) => { if (menuRef.current && !menuRef.current.contains(event.target)) { setShowUserMenu(false); } }; document.addEventListener("mousedown", handleClickOutside); return () => document.removeEventListener("mousedown", handleClickOutside); }, []); const changeLanguage = (lng) => { i18n.changeLanguage(lng); setCurrentLanguage(lng); localStorage.setItem("language", lng); if (lng === "ar") { document.documentElement.dir = "rtl"; document.documentElement.lang = "ar"; } else { document.documentElement.dir = "ltr"; document.documentElement.lang = "en"; } }; const toggleMobileMenu = () => { setIsMobileMenuOpen(!isMobileMenuOpen); }; const closeMobileMenu = () => { setIsMobileMenuOpen(false); }; const logout = () => { localStorage.removeItem("user"); setUser(null); setShowUserMenu(false); window.location.href = "/"; }; const isAuthPage = [ "/login", "/register", "/forgot-password", "/auth/choose-role", ].includes(pathname); const isProfilePage = pathname === "/profile"; const isOwner = user?.role === "owner"; const isAdmin = user?.role === "admin"; console.log("User role:", user?.role); console.log("Is Admin:", isAdmin); const getUserInitial = () => { if (user?.name) { return user.name.charAt(0).toUpperCase(); } return ; }; if (!isMounted) { return (

جاري التحميل...

); } return ( <> {!isAuthPage && ( )}
{children}
{!isAuthPage && !isProfilePage && ( )} ); }