"use client"; import React, { useState } from "react"; import { useRouter } from "next/navigation"; import "./AddUser.scss"; import { addUser } from "@/services/roles.services"; import { IEditUserForm } from "../User.interfaces"; interface AddUserFormProps { onSuccess?: () => void; } const AddUserForm: React.FC = ({ onSuccess }) => { const router = useRouter(); const [form, setForm] = useState({ firstName: "", lastName: "", email: "", phone: "", role: "", }); const [error, setError] = useState(""); const [loading, setLoading] = useState(false); const handleChange = ( e: React.ChangeEvent ) => { const { name, value } = e.target; setForm((prev) => ({ ...prev, [name]: value })); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!form.firstName || !form.lastName || !form.email || !form.role) { setError("Please fill in all required fields."); return; } try { setLoading(true); setError(""); await addUser(form); if (onSuccess) onSuccess(); router.refresh(); // <- refreshes the page (SSR re-runs) // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (err: any) { setError(err.message || "Something went wrong."); } finally { setLoading(false); } }; return (
{error &&
{error}
}
); }; export default AddUserForm;