diff --git a/app/dashboard/page.tsx b/app/dashboard/page.tsx index 3d9e021..dbdbd94 100644 --- a/app/dashboard/page.tsx +++ b/app/dashboard/page.tsx @@ -5,8 +5,14 @@ import { User, Crown, Home, ShoppingBag, Wallet, MapPin, Headphones, Heart, IdCard, LogOut, TrendingUp, Plus, Hash, Clock, AlertCircle, Eye, Reply, - CreditCard, Gift, Edit, Trash2, CircleCheck, Info, Box, Camera, Check, Shield, ShieldAlert, Mail + CreditCard, Gift, Edit, Trash2, CircleCheck, Info, Box, Camera, Check, Shield, ShieldAlert, Mail, CheckCircle, ShieldX } from 'lucide-react'; +import { useSearchParams } from "next/navigation"; +import { useEffect } from "react"; +import { useRouter } from "next/navigation"; + + + // === رابط‌ها و کامپوننت‌های کمکی === interface PriceDisplayProps { @@ -89,7 +95,22 @@ const sampleAddresses = [ ]; export default function Dashboard() { + const [activeTab, setActiveTab] = useState('dash'); + const searchParams = useSearchParams(); + const success = searchParams.get("success"); + const [authorized, setAuthorized] = useState(null); + React.useEffect(() => { + const token = localStorage.getItem("accessToken"); + const role = localStorage.getItem("role"); + + if (token && (role === "user" || role === "admin")) { + setAuthorized(true); + } else { + setAuthorized(false); + } + }, []); + const menuItems = [ { id: 'dash', label: 'پیشخوان', icon: Home }, @@ -100,9 +121,73 @@ export default function Dashboard() { { id: 'profile', label: 'مشخصات حساب', icon: IdCard }, ]; + + // ✅ حالت در حال بررسی + if (authorized === null) { + return ( +
+

در حال بررسی دسترسی...

+
+ ); + } + + // ❌ دسترسی ندارد + if (!authorized) { + const router = useRouter(); + return ( +
+
+ +
+
+ +
+
+ +

+ دسترسی غیرمجاز +

+ +

+ شما اجازه دسترسی به این صفحه را ندارید. + برای مشاهده داشبورد باید ابتدا وارد حساب کاربری خود شوید. +

+ +
+ +
+ +
+
+ ); + } + + + return (
+ + {success === "login" && ( +
+ + ورود با موفقیت انجام شد +
+ )} + + {success === "register" && ( +
+ + ثبت نام با موفقیت انجام شد +
+ )} +