diff --git a/src/components/pages/production/transfer-to-laying/form/TransferToLayingForm.tsx b/src/components/pages/production/transfer-to-laying/form/TransferToLayingForm.tsx index b026b47f..def2cde8 100644 --- a/src/components/pages/production/transfer-to-laying/form/TransferToLayingForm.tsx +++ b/src/components/pages/production/transfer-to-laying/form/TransferToLayingForm.tsx @@ -42,10 +42,18 @@ const TransferToLayingForm = ({ initialValues, }: TransferToLayingFormProps) => { const router = useRouter(); + + // Modal hooks const deleteModal = useModal(); + const approveModal = useModal(); + const rejectModal = useModal(); const [formErrorMessage, setFormErrorMessage] = useState(''); + + // Modal loading state const [isDeleteLoading, setIsDeleteLoading] = useState(false); + const [isApproveLoading, setIsApproveLoading] = useState(false); + const [isRejectLoading, setIsRejectLoading] = useState(false); const createTransferToLayingHandler = useCallback( async (payload: CreateTransferToLayingPayload) => { @@ -152,15 +160,65 @@ const TransferToLayingForm = ({ deleteModal.openModal(); }; + const approveClickHandler = () => { + approveModal.openModal(); + }; + + const rejectClickHandler = () => { + rejectModal.openModal(); + }; + + // Modal confirm click handler const confirmationModalDeleteClickHandler = async () => { setIsDeleteLoading(true); + // TODO: delete data and integrate to real API deleteModal.closeModal(); - toast.success('Successfully delete TransferToLaying!'); + toast.success('Berhasil menghapus data transfer ke laying!'); setIsDeleteLoading(false); }; + const confirmationModalApproveClickHandler = async () => { + setIsApproveLoading(true); + + const approveResponse = await TransferToLayingApi.approve( + initialValues?.id as number + ); + + if (isResponseSuccess(approveResponse)) { + approveModal.closeModal(); + + toast.success('Berhasil approve data transfer ke laying!'); + } else { + approveModal.closeModal(); + + toast.error('Gagal approve data transfer ke laying!'); + } + + setIsApproveLoading(false); + }; + + const confirmationModalRejectClickHandler = async () => { + setIsRejectLoading(true); + + const rejectResponse = await TransferToLayingApi.reject( + initialValues?.id as number + ); + + if (isResponseSuccess(rejectResponse)) { + rejectModal.closeModal(); + + toast.success('Berhasil reject data transfer ke laying!'); + } else { + rejectModal.closeModal(); + + toast.error('Gagal reject data transfer ke laying!'); + } + + setIsRejectLoading(false); + }; + const isRepeaterInputError = ( column: keyof TransferToLayingFormValues['kandangs'][0], idx: number @@ -303,10 +361,38 @@ const TransferToLayingForm = ({ +