import React, { useState, useEffect, useMemo, useRef } from 'react'; import { Controller, set, useForm } from 'react-hook-form'; import { usePengajuanTempoStoreDokumen } from '../../../../src-migrate/modules/register/stores/usePengajuanTempoStore'; import ProgressBar from '@ramonak/react-progress-bar'; import { UseToastOptions } from '@chakra-ui/react'; import { toast } from 'react-hot-toast'; import getFileBase64 from '@/core/utils/getFileBase64'; import Image from 'next/image'; import BottomPopup from '@/core/components/elements/Popup/BottomPopup'; const KonfirmasiDokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { const { control, watch } = useForm(); const [isExample, setIsExample] = useState(false); const [popUpTittle, setPopUpTittle] = useState(false); const [popUpSource, setSource] = useState(false); const { formDokumen, errorsDokumen, validateDokumen, updateFormDokumen, getJumlahDokumenDiisi, } = usePengajuanTempoStoreDokumen(); // const handleInputChange = (event) => { // const { name, value } = event.target; // updateFormDokumen(name, value); // validateDokumen(); // }; const handleInputChange = async (event) => { let fileBase64 = ''; const { name } = event.target; const file = event.target.files?.[0]; // Allowed file extensions const allowedExtensions = ['pdf', 'png', 'jpg', 'jpeg']; let fileExtension = ''; if (file) { fileExtension = file.name.split('.').pop()?.toLowerCase(); // Extract file extension // Check if the file extension is allowed if (!fileExtension || !allowedExtensions.includes(fileExtension)) { toast.error( 'Format file yang diijinkan adalah .pdf, .png, .jpg, atau .jpeg', { duration: 4000 } ); event.target.value = ''; return; } // Check for file size if (file.size > 2000000) { toast.error('Maksimal ukuran file adalah 2MB', { duration: 4000 }); event.target.value = ''; return; } // Convert file to Base64 fileBase64 = await getFileBase64(file); updateFormDokumen(name, file.name, fileExtension, fileBase64); validateDokumen(); } }; const isFormValid = useMemo( () => Object.keys(errorsDokumen).length === 0, [errorsDokumen] ); const dokumenNibRef = useRef(null); const dokumenNpwpRef = useRef(null); const dokumenSppkpRef = useRef(null); const dokumenAktaPerubahanRef = useRef(null); const dokumenKtpDirutRef = useRef(null); const dokumenAktaPendirianRef = useRef(null); const dokumenLaporanKeuanganRef = useRef(null); const dokumenFotoKantorRef = useRef(null); const dokumenTempatBekerjaRef = useRef(null); useEffect(() => { const loadIndustries = async () => { if (!isFormValid) { const options = { behavior: 'smooth', block: 'center', }; if (errorsDokumen.dokumenNib && dokumenNibRef.current) { dokumenNibRef.current.scrollIntoView(options); return; } if (errorsDokumen.dokumenNpwp && dokumenNpwpRef.current) { dokumenNpwpRef.current.scrollIntoView(options); return; } if (errorsDokumen.dokumenSppkp && dokumenSppkpRef.current) { dokumenSppkpRef.current.scrollIntoView(options); return; } if ( errorsDokumen.dokumenAktaPerubahan && dokumenAktaPerubahanRef.current ) { dokumenAktaPerubahanRef.current.scrollIntoView(options); return; } if (errorsDokumen.dokumenKtpDirut && dokumenKtpDirutRef.current) { dokumenKtpDirutRef.current.scrollIntoView(options); return; } if ( errorsDokumen.dokumenAktaPendirian && dokumenAktaPendirianRef.current ) { dokumenAktaPendirianRef.current.scrollIntoView(options); return; } if ( errorsDokumen.dokumenLaporanKeuangan && dokumenLaporanKeuanganRef.current ) { dokumenLaporanKeuanganRef.current.scrollIntoView(options); return; } if (errorsDokumen.dokumenFotoKantor && dokumenFotoKantorRef.current) { dokumenFotoKantorRef.current.scrollIntoView(options); return; } if ( errorsDokumen.dokumenTempatBekerja && dokumenTempatBekerjaRef.current ) { dokumenTempatBekerjaRef.current.scrollIntoView(options); return; } } }; loadIndustries(); }, [buttonSubmitClick, chekValid]); useEffect(() => { validateDokumen(); }, [buttonSubmitClick]); console.log('formDokumen', formDokumen); return ( <> setIsExample(false)} >
Contoh SPPKP

Dokumen

{formDokumen?.dokumenNib?.name}
{chekValid && (
{errorsDokumen.dokumenNib}
)}
{formDokumen?.dokumenNpwp?.name}
{chekValid && (
{errorsDokumen.dokumenNpwp}
)}
{formDokumen?.dokumenSppkp?.name}
{chekValid && (
{errorsDokumen.dokumenSppkp}
)}
{formDokumen?.dokumenAktaPerubahan?.name}
{chekValid && (
{errorsDokumen.dokumenAktaPerubahan}
)}
{formDokumen?.dokumenKtpDirut?.name}
{chekValid && (
{errorsDokumen.dokumenKtpDirut}
)}
{formDokumen?.dokumenAktaPendirian?.name}
{chekValid && (
{errorsDokumen.dokumenAktaPendirian}
)}
{formDokumen?.dokumenLaporanKeuangan?.name}
{chekValid && (
{errorsDokumen.dokumenLaporanKeuangan}
)}
{formDokumen?.dokumenFotoKantor?.name}
{chekValid && (
{errorsDokumen.dokumenFotoKantor}
)}
{formDokumen?.dokumenTempatBekerja?.name}
setIsExample(!isExample)} className='rounded text-white p-2 flex flex-row bg-red-500 hover:cursor-pointer hover:bg-red-400' > {isDesktop && (

Lihat Contoh

)}
Contoh SPPKP
{chekValid && (
{errorsDokumen.dokumenTempatBekerja}
)}
); }; export default KonfirmasiDokumen;