// صفحة إدارة المستخدمين — تستورد فقط من الطبقات الأخرى "use client"; import { useState } from "react"; import { Alert } from "../../Components/UI"; import { UserTable } from "../../Components/User/UserTable"; import { UserFormModal } from "../../Components/User/UserFormModal"; import { DeleteConfirmModal } from "../../Components/User/DeleteConfirmModal"; import { Toast } from "../../Components/User/Toast"; import { useUsers } from "../../hooks/useUser"; import type { User, UserFormData } from "../../types/user"; export default function UsersPage() { // ── الحالة المحلية للمودالات فقط ───────────────────────────────────────── // false = مغلق، null = وضع الإضافة، User = وضع التعديل const [formTarget, setFormTarget] = useState(false); const [deleteTarget, setDeleteTarget] = useState(null); const [deleting, setDeleting] = useState(false); // ── كل منطق البيانات والحالة من الهوك ──────────────────────────────────── const { users, loading, total, pages, error, roles, branches, page, search, setPage, handleSearch, clearError, createUser, updateUser, deleteUser, notification, } = useUsers(); // ── معالج تقديم النموذج (إضافة أو تعديل) ──────────────────────────────── const handleFormSubmit = async (data: UserFormData, isNew: boolean): Promise => { if (isNew) return createUser(data); return updateUser((formTarget as User).id, data); }; // ── معالج تأكيد الحذف ──────────────────────────────────────────────────── const handleDeleteConfirm = async () => { if (!deleteTarget) return; setDeleting(true); const ok = await deleteUser(deleteTarget.id); setDeleting(false); if (ok) setDeleteTarget(null); }; return ( <> {/* ── Toast لعرض رسائل النجاح والخطأ ── */} {/* ── مودال الإضافة / التعديل ── */} {formTarget !== false && ( setFormTarget(false)} onSubmit={handleFormSubmit} /> )} {/* ── مودال تأكيد الحذف ── */} {deleteTarget && ( setDeleteTarget(null)} onConfirm={handleDeleteConfirm} /> )}
{/* ── رأس الصفحة ── */}

إدارة الفريق

المستخدمون

إجمالي {total} مستخدم

{/* أدوات البحث وإضافة مستخدم */}
{/* حقل البحث */}
handleSearch(e.target.value)} dir="rtl" style={{ width: "100%", height: 40, paddingRight: 36, paddingLeft: 12, borderRadius: "var(--radius-lg)", border: "1px solid var(--color-border)", background: "var(--color-surface)", fontSize: 13, outline: "none", fontFamily: "var(--font-sans)" }} />
{/* زر إضافة مستخدم */}
{/* ── رسالة الخطأ العامة (فشل التحميل) ── */} {error && ( )} {/* ── جدول المستخدمين ── */} setFormTarget(user)} onDelete={user => setDeleteTarget(user)} onAddFirst={() => setFormTarget(null)} onPageChange={setPage} />
); }