import { UserList } from '@/services/manajemen/user-service' import { UnitKerjaList } from '@/services/referensi/unitKerja-service' import { VerifikatorCreate } from '@/services/referensi/verifikator-service' import { useFormik } from 'formik' import { Button } from 'primereact/button' import { Dialog } from 'primereact/dialog' import { Dropdown } from 'primereact/dropdown' import { MultiSelect } from 'primereact/multiselect' import { useEffect, useState } from 'react' export default function FormVerifikator({ dialogForm, setDialogForm, dataEdit, setDataEdit, refresh, toast }) { const [ddVerifikator, setDdVerifikator] = useState([]) const [ddUserList, setDdUserList] = useState([]) useEffect(() => { UnitKerjaList({ draw: 0 }).then((res) => { setDdVerifikator(res.data) }) UserList({ draw: 0 }).then((res) => { setDdUserList(res.data) }) }, []) const formik = useFormik({ initialValues: { unit_id: '', user_id: dataEdit.user_id || '', }, validate: (data) => { let errors = {} if (!data.unit_id) errors.unit_id = 'Kode Unit is required.' if (!data.user_id) errors.user_id = 'Nama is required.' return errors }, onSubmit: (data) => { VerifikatorCreate(data).then((res) => { if (res.status === 'success') { refresh(Math.random) formik.resetForm() setDataEdit([]) setDialogForm(false) toast.current.show({ severity: 'success', detail: res.message, closable: false, }) } else { setDialogForm(false) toast.current.show({ severity: 'error', detail: res.message, closable: false, }) } }) }, }) const isFieldValid = (field) => !!(formik.errors[field] && formik.touched[field]) const errorFieldMessage = (field) => { return ( isFieldValid(field) && ( {formik.errors[field]} ) ) } const dialogFooter = (