const RoleModal = ({ isOpen, onClose, role, allPermissions, onSubmit, loading, }) => { const [formData, setFormData] = React.useState({ name: "", description: "", permission_ids: [], }); React.useEffect(() => { if (role) { // Edit Mode setFormData({ name: role.name, description: role.description || "", permission_ids: role.permissions ? role.permissions.map((p) => p.id) : [], }); } else { // Create Mode setFormData({ name: "", description: "", permission_ids: [] }); } }, [role, isOpen]); const handlePermissionToggle = (permId) => { setFormData((prev) => { const exists = prev.permission_ids.includes(permId); if (exists) { return { ...prev, permission_ids: prev.permission_ids.filter((id) => id !== permId), }; } else { return { ...prev, permission_ids: [...prev.permission_ids, permId] }; } }); }; if (!isOpen) return null; return (
{ e.preventDefault(); onSubmit(formData); }} className="space-y-4" >
setFormData({ ...formData, name: e.target.value })} disabled={role && (role.name === "admin" || role.name === "user")} className="w-full px-4 py-3 bg-slate-700 border-2 border-slate-600 rounded-xl text-white focus:border-blue-500 focus:outline-none" required />