"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { AdminDialog } from "@/components/ui/admin-dialog"; import { createUser, updateUser, toggleUserActive } from "./actions"; type UserRow = { id: string; employeeId: string; name: string; email: string; role: string; isActive: boolean; }; const ROLES = [ { value: "TECHNICAL", label: "Technical" }, { value: "MANNING", label: "Manning" }, { value: "ACCOUNTS", label: "Accounts" }, { value: "MANAGER", label: "Manager" }, { value: "SUPERUSER", label: "SuperUser" }, { value: "AUDITOR", label: "Auditor" }, { value: "ADMIN", label: "Admin" }, ]; function UserFormFields({ user }: { user?: UserRow }) { return (
); } export function AddUserButton() { const router = useRouter(); const [open, setOpen] = useState(false); const [pending, setPending] = useState(false); const [error, setError] = useState(""); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setPending(true); setError(""); const result = await createUser(new FormData(e.currentTarget)); if ("error" in result) { setError(result.error); setPending(false); } else { setOpen(false); router.refresh(); } } return ( <> setOpen(false)}>
{error &&

{error}

}
); } export function EditUserButton({ user }: { user: UserRow }) { const router = useRouter(); const [open, setOpen] = useState(false); const [pending, setPending] = useState(false); const [toggling, setToggling] = useState(false); const [error, setError] = useState(""); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); setPending(true); setError(""); const fd = new FormData(e.currentTarget); fd.set("id", user.id); const result = await updateUser(fd); if ("error" in result) { setError(result.error); setPending(false); } else { setOpen(false); router.refresh(); } } async function handleToggle() { setToggling(true); await toggleUserActive(user.id); router.refresh(); setToggling(false); } return ( <>
setOpen(false)}>
{error &&

{error}

}
); }