diff --git a/apps/Frontend/src/components/staffs/staff-form.tsx b/apps/Frontend/src/components/staffs/staff-form.tsx index afe8dbb..4bea0f9 100644 --- a/apps/Frontend/src/components/staffs/staff-form.tsx +++ b/apps/Frontend/src/components/staffs/staff-form.tsx @@ -11,18 +11,28 @@ interface StaffFormProps { isLoading?: boolean; } -export function StaffForm({ initialData, onSubmit, onCancel, isLoading }: StaffFormProps) { - const [name, setName] = useState(initialData?.name || ""); - const [email, setEmail] = useState(initialData?.email || ""); - const [role, setRole] = useState(initialData?.role || "Staff"); - const [phone, setPhone] = useState(initialData?.phone || ""); +export function StaffForm({ + initialData, + onSubmit, + onCancel, + isLoading, +}: StaffFormProps) { + const [name, setName] = useState(""); + const [email, setEmail] = useState(""); + const [role, setRole] = useState("Staff"); + const [phone, setPhone] = useState(""); + const [hasTypedRole, setHasTypedRole] = useState(false); + + // Set initial values once on mount useEffect(() => { - setName(initialData?.name || ""); - setEmail(initialData?.email || ""); - setRole(initialData?.role || "Staff"); - setPhone(initialData?.phone || ""); - }, [initialData]); + if (initialData) { + if (initialData.name) setName(initialData.name); + if (initialData.email) setEmail(initialData.email); + if (initialData.role) setRole(initialData.role); + if (initialData.phone) setPhone(initialData.phone); + } + }, []); // run once only const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); @@ -30,13 +40,21 @@ export function StaffForm({ initialData, onSubmit, onCancel, isLoading }: StaffF alert("Name is required"); return; } - onSubmit({ name, email: email || undefined, role, phone: phone || undefined }); + + onSubmit({ + name: name.trim(), + email: email.trim() || undefined, + role: role.trim(), + phone: phone.trim() || undefined, + }); }; return (
- +
+
+
- + setRole(e.target.value)} + onChange={(e) => { + setHasTypedRole(true); + setRole(e.target.value); + }} + onFocus={() => { + if (!hasTypedRole && role === "Staff") { + setRole(""); + } + }} required disabled={isLoading} />
+
+