"use client"; import { useState } from "react"; import { useForm } from "react-hook-form"; import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; import { Checkbox } from "@/components/ui/checkbox"; import { Button } from "@/components/ui/button"; import { createAgent } from "@/service/agent"; import { useRouter } from "next/navigation"; import withReactContent from "sweetalert2-react-content"; import Swal from "sweetalert2"; import { Label } from "@/components/ui/label"; import { UploadCloud } from "lucide-react"; type AgentFormValues = { fullName: string; position: string; phone: string; roles: string[]; profileImage: File | null; }; const agentTypes = ["After Sales", "Sales", "Spv", "Branch Manager"]; export default function AddAgentForm() { // const [previewImg, setPreviewImg] = useState(null); const router = useRouter(); const [file, setFile] = useState(null); const [previewImg, setPreview] = useState(null); const MySwal = withReactContent(Swal); const form = useForm({ defaultValues: { fullName: "", position: "", phone: "", roles: [], profileImage: null, }, }); const handleFileChange = (e: any) => { const selected = e.target.files[0]; if (selected) setFile(selected); }; const handleRemoveFile = () => { setFile(null); setPreview(null); }; const onSubmit = async (data: AgentFormValues) => { try { const formData = new FormData(); formData.append("name", data.fullName); formData.append("job_title", data.position); formData.append("phone", data.phone); data.roles.forEach((role) => { formData.append("agent_type[]", role); }); if (file) { formData.append("file", file); } const res = await createAgent(formData); console.log("SUCCESS:", res); } catch (err) { console.error("ERROR CREATE AGENT:", err); } successSubmit("/admin/agent"); }; function successSubmit(redirect: any) { MySwal.fire({ title: "Sukses", icon: "success", confirmButtonColor: "#3085d6", confirmButtonText: "OK", }).then((result) => { if (result.isConfirmed) { router.push(redirect); } }); } return (

Form Tambah Agen

( Nama Lengkap * )} /> ( Jabatan * )} /> {/* No Telp */} ( No Telp * )} />
Pilih Jenis Agen *
{agentTypes.map((role) => ( { const selected = field.value || []; return ( { const updated = checked ? [...selected, role] : selected.filter((i) => i !== role); field.onChange(updated); }} /> {role} ); }} /> ))}
{/* BUTTON */}
); }