import { useState } from "react" import { ArrowLeft, FileText, Mail, Phone, Shield, User } from "lucide-react" import { useNavigate } from "react-router-dom" import { toast } from "sonner" import { Button } from "../../components/ui/button" import { Card } from "../../components/ui/card" import { Input } from "../../components/ui/input" import { Textarea } from "../../components/ui/textarea" import { Select } from "../../components/ui/select" import { createUser } from "../../api/users.api" export function RegisterUserPage() { const navigate = useNavigate() const [firstName, setFirstName] = useState("") const [lastName, setLastName] = useState("") const [email, setEmail] = useState("") const [phone, setPhone] = useState("") const [role, setRole] = useState("") const [notes, setNotes] = useState("") const [submitting, setSubmitting] = useState(false) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() if (!firstName.trim() || !lastName.trim() || !email.trim() || !phone.trim() || !role) { toast.error("Missing required fields", { description: "Please fill in first name, last name, email, phone, and role.", }) return } setSubmitting(true) try { await createUser({ first_name: firstName.trim(), last_name: lastName.trim(), email: email.trim(), phone_number: phone.trim(), role: role.toUpperCase(), notes: notes.trim() || undefined, }) toast.success("User registered", { description: `${firstName} ${lastName} has been created successfully.`, }) navigate("/users") } catch (error: any) { const message = error?.response?.data?.message || "Failed to register user. Please check the details and try again." toast.error("Registration failed", { description: message, }) } finally { setSubmitting(false) } } return (

Register New User

Add a new user to the system

setFirstName(e.target.value)} />
setLastName(e.target.value)} />
setEmail(e.target.value)} />
setPhone(e.target.value)} />