import { JenisBelanjaList } from '@/services/referensi/jenisBelanja-service' import { JenisKegiatanCreate, JenisKegiatanUpdate } from '@/services/referensi/jenisKegiatan-service' import { useFormik } from 'formik' import { Button } from 'primereact/button' import { Dialog } from 'primereact/dialog' import { Dropdown } from 'primereact/dropdown' import { InputText } from 'primereact/inputtext' import { useEffect, useState } from 'react' export default function FormJenisKegiatan({ dialogForm, setDialogForm, dataEdit, setDataEdit, refresh, toast }) { const [optionJenisBelanja, setOptionJenisBelanja] = useState([]) useEffect(() => { JenisBelanjaList({ draw: 0 }).then((res) => setOptionJenisBelanja(res.data)) }, []) const formik = useFormik({ initialValues: { ref_id: dataEdit.jenis_id || '', nama: dataEdit.nama || '', jenis_belanja_id: dataEdit.jenis_belanja_id || '', }, validate: (data) => { let errors = {} if (!data.nama) errors.nama = 'Nama is required.' if (!data.jenis_belanja_id) errors.jenis_belanja_id = 'Jenis Belanja is required.' return errors }, onSubmit: (data) => { if (data.ref_id) { JenisKegiatanUpdate(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, }) } }) } else { JenisKegiatanCreate(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.touched[field] && formik.errors[field]) const errorFieldMessage = (field) => { return ( isFieldValid(field) && ( {formik.errors[field]} ) ) } const dialogFooter = (