"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: 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); const totalPermissions = Object.values(permissionsByModule).reduce((n, arr) => n + arr.length, 0); return (
{/* top bar: user info */}
{user.name?.trim().charAt(0) ?? "?"}

{user.name}

{user.email ?? user.phone}

{user.role?.name && ( {user.role.name} )} {user.isActive ? "نشط" : "غير نشط"}
{/* main content, full width */}
{/* account details */}

بيانات الحساب

{fields.map((f) => (
{f.label}
{f.value}
))}
{/* role and permissions */}

الدور والصلاحيات

{user.role?.description && (

{user.role.description}

)}
{modules.length > 0 && ( {totalPermissions} صلاحية )}
{modules.length === 0 ? (

لا توجد صلاحيات مسجّلة لهذا الدور.

) : (
{modules.map((mod) => (
{mod} {permissionsByModule[mod].length}
{permissionsByModule[mod].map((name) => ( {name} ))}
))}
)}
); }