"use client";
import { useCurrentUser } from "@/src/hooks/useCurrentUser";
export default function ProfilePage() {
const { user, loading, error } = useCurrentUser();
if (loading) {
// حالة تحميل بسيطة تتماشى مع سبينر الصور اللي عملتها قبل كده في الصفحات التانية
return (
);
}
if (error || !user) {
return (
{error ?? "تعذر عرض بيانات الحساب."}
);
}
const fields: { label: string; value: string }[] = [
{ label: "الاسم", value: user.name },
{ label: "اسم المستخدم", value: user.userName ?? "—" },
{ label: "البريد الإلكتروني", value: user.email ?? "—" },
{ label: "رقم الهاتف", value: user.phone },
{ label: "الحالة", value: user.isActive ? "نشط" : "غير نشط" },
{ label: "تاريخ الإنشاء", value: new Date(user.createdAt).toLocaleDateString("ar-SA") },
{ label: "آخر تحديث", value: new Date(user.updatedAt).toLocaleDateString("ar-SA") },
];
// تجميع الصلاحيات حسب الموديول عشان تبقى منظمة وسهلة القراءة
const permissionsByModule = (user.role?.permissions ?? []).reduce>(
(acc, entry) => {
const mod = entry.permission.module || "أخرى";
if (!acc[mod]) acc[mod] = [];
acc[mod].push(entry.permission.name);
return acc;
},
{},
);
const modules = Object.keys(permissionsByModule);
return (
{/* بطاقة البيانات الأساسية */}
{user.name?.trim().charAt(0) ?? "?"}
{user.name}
{user.role?.name && (
{user.role.name}
)}
{/* عرض البيانات بشكل read-only بدون أي فورم أو زرار تعديل */}
{fields.map((f) => (
- {f.label}
- {f.value}
))}
{/* بطاقة الدور والصلاحيات */}
{user.role && (
الدور والصلاحيات
{user.role.description && (
{user.role.description}
)}
{modules.length === 0 ? (
لا توجد صلاحيات مسجّلة لهذا الدور.
) : (
{modules.map((mod) => (
{mod}
{permissionsByModule[mod].length}
▾
{permissionsByModule[mod].map((name) => (
{name}
))}
))}
)}
)}
);
}