'use client' import { error } from '@/config/swal'; import { createMasterUser } from '@/service/master-user'; import { MasterUser } from '@/types/globals'; import { zodResolver } from '@hookform/resolvers/zod'; import { Button, Card, Input, Radio, RadioGroup, Select, SelectItem, Selection, Textarea } from '@nextui-org/react' import Link from 'next/link'; import { useRouter } from 'next/navigation'; import React, { useState } from 'react' import { useForm } from 'react-hook-form'; import Swal from 'sweetalert2'; import withReactContent from 'sweetalert2-react-content'; import { z } from 'zod'; const masterUserSchema = z.object({ fullname: z.string().min(1, { message: "Required" }), username: z.string().min(1, { message: "Required" }), email: z.string().min(1, { message: "Required" }), identityType: z.string().min(1, { message: "Required" }), lastEducation: z.string().min(1, { message: "Required" }), phoneNumber: z.string().min(1, { message: "Required" }), workingType: z.string().min(1, { message: "Required" }), }); export default function FormMasterUser() { const router = useRouter(); const MySwal = withReactContent(Swal); const [address, setAddress] = useState(); const [dateOfBirt, setDateOfBirt] = useState("13-april-1995"); const [email, setEmail] = useState(); const [fullName, setFullname] = useState(); const [genderType, setGenderType] = React.useState(""); const [identityNumber, setIdentityNumber] = useState(); const [lastEducation, setLastEducation] = useState([]); const [phoneNumber, setPhoneNumber] = useState(); const [userLevelsId, setUserLevelsId] = useState(1); const [userRoleId, setUserRoleId] = useState(1); const [username, setUsername] = useState(); const [workType, setWorkType] = useState("Tets"); const [identityType, setIdentityType] = useState([]) const [showNumberInput, setShowNumberInput] = useState(false); const formOptions = { resolver: zodResolver(masterUserSchema) }; type MicroIssueSchema = z.infer; const { register, control, handleSubmit, setValue, formState: { errors }, } = useForm(formOptions); const typeIdentity = [ { id: 1, value: "KTP", }, { id: 2, value: "SIM", }, { id: 3, value: "Passport", }, ] const workingBackground = [ { id: 1, value: "Pegawai Negri Sipil", }, { id: 2, value: "Wiraswasta", }, { id: 3, value: "Guru", }, { id: 4, value: "Dokter", }, ] const educationGrade = [ { id: 1, value: "SMA / Sederajat", }, { id: 2, value: "Diploma 1", }, { id: 3, value: "Diploma 2", }, { id: 4, value: "Diploma 3", }, { id: 5, value: "Diploma 4", }, { id: 6, value: "S1", }, { id: 7, value: "S2", }, { id: 8, value: "S3", }, ] async function save(data: any) { const formData = { address: address, dateOfBirt: dateOfBirt, email: email, fullName: fullName, genderType: genderType, identityNumber: identityNumber, identityType: identityType.anchorKey, lastEducation: Array.from(lastEducation)[0], phoneNumber: phoneNumber, userLevelsId: userLevelsId, userRoleId: userRoleId, username: username, workType: workType, }; console.log("Form MasterUser:", formData); const response = await createMasterUser(formData); if (response?.error) { error(response.message); return false; } successSubmit("/admin/article"); }; function successSubmit(redirect: any) { MySwal.fire({ title: "Sukses", icon: "success", confirmButtonColor: "#3085d6", confirmButtonText: "OK", }).then((result) => { if (result.isConfirmed) { router.push(redirect); } }); } async function onSubmit(data: any) { MySwal.fire({ title: "Simpan Data", text: "", icon: "warning", showCancelButton: true, cancelButtonColor: "#d33", confirmButtonColor: "#3085d6", confirmButtonText: "Simpan", }).then((result) => { if (result.isConfirmed) { save(data); } }); } return (
setFullname(e.target.value)} /> {errors.fullname?.message}
setUsername(e.target.value)} /> {errors.username?.message}
setEmail(e.target.value)} /> {errors.email?.message}
{/*

selected : {identityType}

*/} {errors.identityType?.message} {/* {showNumberInput && ( */} setIdentityNumber(e.target.value)} /> {/* )} */}
Laki-laki Perempuan

Selected: {genderType}

Selected: {lastEducation}

{errors.lastEducation?.message}
setPhoneNumber(e.target.value)} /> {errors.phoneNumber?.message}
{errors.workingType?.message}