From d6ede238658d90315a5dc5b864f20037e8a776f6 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 22 Oct 2024 11:24:43 +0700 Subject: update & add section dokumen --- src/lib/pengajuan-tempo/component/Dokumen.jsx | 441 ++++++++++++++++++++++++++ 1 file changed, 441 insertions(+) create mode 100644 src/lib/pengajuan-tempo/component/Dokumen.jsx (limited to 'src/lib/pengajuan-tempo/component/Dokumen.jsx') diff --git a/src/lib/pengajuan-tempo/component/Dokumen.jsx b/src/lib/pengajuan-tempo/component/Dokumen.jsx new file mode 100644 index 00000000..65220b27 --- /dev/null +++ b/src/lib/pengajuan-tempo/component/Dokumen.jsx @@ -0,0 +1,441 @@ +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'; +const Dokumen = ({ chekValid, buttonSubmitClick }) => { + const { control, watch } = useForm(); + 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]; + console.log('file', file); + // 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] + ); + console.log('formDokumen', formDokumen?.dokumenNib?.name); + 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]); + return ( + <> +
+

Dokumen

+
+
+
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenNib} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenNpwp} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenSppkp} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenAktaPerubahan} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenKtpDirut} +
+ )} +
+
+
+
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenAktaPendirian} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenLaporanKeuangan} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenFotoKantor} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+ + {chekValid && ( +
+ {errorsDokumen.dokumenTempatBekerja} +
+ )} +
+
+
+
+
+
+
+
+

Upload Progress

+

+ + {parseInt((getJumlahDokumenDiisi() / 9) * 100)} % + + + {getJumlahDokumenDiisi() > 5 + ? getJumlahDokumenDiisi() == 9 + ? 'Selesai' + : 'Sedikit Lagi' + : ''} + +

+
+ {/* 50 keatas baru muncul kata kata sedikit lagi */} + + + Tingkatin sedikit lagi agar pengajuan tempo kamu dapat kami proses + dengan cepat + +
+ + ); +}; + +export default Dokumen; -- cgit v1.2.3 From acee071ea98505b42918f4d7cdc15252ae78f705 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 22 Oct 2024 15:28:40 +0700 Subject: update fix dokumen --- src/lib/pengajuan-tempo/component/Dokumen.jsx | 311 +++++++++++++++++--------- 1 file changed, 208 insertions(+), 103 deletions(-) (limited to 'src/lib/pengajuan-tempo/component/Dokumen.jsx') diff --git a/src/lib/pengajuan-tempo/component/Dokumen.jsx b/src/lib/pengajuan-tempo/component/Dokumen.jsx index 65220b27..42c6c47f 100644 --- a/src/lib/pengajuan-tempo/component/Dokumen.jsx +++ b/src/lib/pengajuan-tempo/component/Dokumen.jsx @@ -24,7 +24,6 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => { let fileBase64 = ''; const { name } = event.target; const file = event.target.files?.[0]; - console.log('file', file); // Allowed file extensions const allowedExtensions = ['pdf', 'png', 'jpg', 'jpeg']; let fileExtension = ''; @@ -61,7 +60,6 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => { () => Object.keys(errorsDokumen).length === 0, [errorsDokumen] ); - console.log('formDokumen', formDokumen?.dokumenNib?.name); const dokumenNibRef = useRef(null); const dokumenNpwpRef = useRef(null); const dokumenSppkpRef = useRef(null); @@ -142,7 +140,7 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
-
+
- +
+ + + + {formDokumen?.dokumenNib?.name} + +
{chekValid && (
{errorsDokumen.dokumenNib} @@ -181,17 +191,29 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
- +
+ + + + {formDokumen?.dokumenNpwp?.name} + +
{chekValid && (
{errorsDokumen.dokumenNpwp} @@ -207,17 +229,29 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
- +
+ + + + {formDokumen?.dokumenSppkp?.name} + +
+ {chekValid && (
{errorsDokumen.dokumenSppkp} @@ -235,17 +269,28 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
- +
+ + + + {formDokumen?.dokumenAktaPerubahan?.name} + +
{chekValid && (
{errorsDokumen.dokumenAktaPerubahan} @@ -264,17 +309,29 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
- +
+ + + + {formDokumen?.dokumenKtpDirut?.name} + +
+ {chekValid && (
{errorsDokumen.dokumenKtpDirut} @@ -295,17 +352,29 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
- +
+ + + + {formDokumen?.dokumenAktaPendirian?.name} + +
+ {chekValid && (
{errorsDokumen.dokumenAktaPendirian} @@ -324,17 +393,29 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
- +
+ + + + {formDokumen?.dokumenLaporanKeuangan?.name} + +
+ {chekValid && (
{errorsDokumen.dokumenLaporanKeuangan} @@ -352,17 +433,29 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
- +
+ + + + {formDokumen?.dokumenFotoKantor?.name} + +
+ {chekValid && (
{errorsDokumen.dokumenFotoKantor} @@ -380,17 +473,29 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => {
- +
+ + + + {formDokumen?.dokumenTempatBekerja?.name} + +
+ {chekValid && (
{errorsDokumen.dokumenTempatBekerja} @@ -410,7 +515,7 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => { {parseInt((getJumlahDokumenDiisi() / 9) * 100)} % - {getJumlahDokumenDiisi() > 5 + {getJumlahDokumenDiisi() >= 4 ? getJumlahDokumenDiisi() == 9 ? 'Selesai' : 'Sedikit Lagi' -- cgit v1.2.3 From c19c7eee924b70d25cb47d40fd7c8e00d5efa867 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Wed, 23 Oct 2024 17:07:37 +0700 Subject: update pengajuan tempo section konfirmasi --- src/lib/pengajuan-tempo/component/Dokumen.jsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'src/lib/pengajuan-tempo/component/Dokumen.jsx') diff --git a/src/lib/pengajuan-tempo/component/Dokumen.jsx b/src/lib/pengajuan-tempo/component/Dokumen.jsx index 42c6c47f..bb88f80b 100644 --- a/src/lib/pengajuan-tempo/component/Dokumen.jsx +++ b/src/lib/pengajuan-tempo/component/Dokumen.jsx @@ -5,7 +5,7 @@ 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'; -const Dokumen = ({ chekValid, buttonSubmitClick }) => { +const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { const { control, watch } = useForm(); const { formDokumen, @@ -135,9 +135,7 @@ const Dokumen = ({ chekValid, buttonSubmitClick }) => { }, [buttonSubmitClick]); return ( <> -
-

Dokumen

-
+

Dokumen

-- cgit v1.2.3 From f751fa6d398a8aab96380c832da927c60c6ccbe4 Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Mon, 4 Nov 2024 16:10:09 +0700 Subject: update pengajuan tempo mobile view fix --- src/lib/pengajuan-tempo/component/Dokumen.jsx | 734 ++++++++++++++++++++------ 1 file changed, 571 insertions(+), 163 deletions(-) (limited to 'src/lib/pengajuan-tempo/component/Dokumen.jsx') diff --git a/src/lib/pengajuan-tempo/component/Dokumen.jsx b/src/lib/pengajuan-tempo/component/Dokumen.jsx index bb88f80b..0873df66 100644 --- a/src/lib/pengajuan-tempo/component/Dokumen.jsx +++ b/src/lib/pengajuan-tempo/component/Dokumen.jsx @@ -5,6 +5,7 @@ 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 useDevice from '@/core/hooks/useDevice'; const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { const { control, watch } = useForm(); const { @@ -14,7 +15,7 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { updateFormDokumen, getJumlahDokumenDiisi, } = usePengajuanTempoStoreDokumen(); - + const { isDesktop, isMobile } = useDevice(); // const handleInputChange = (event) => { // const { name, value } = event.target; // updateFormDokumen(name, value); @@ -135,26 +136,440 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { }, [buttonSubmitClick]); return ( <> -

Dokumen

- -
-
-
-
+ {isDesktop && ( +
+

+ Dokumen +

+ +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenNib?.name} + +
+ {chekValid && ( +
+ {errorsDokumen.dokumenNib} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenNpwp?.name} + +
+ {chekValid && ( +
+ {errorsDokumen.dokumenNpwp} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenSppkp?.name} + +
+ + {chekValid && ( +
+ {errorsDokumen.dokumenSppkp} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenAktaPerubahan?.name} + +
+ {chekValid && ( +
+ {errorsDokumen.dokumenAktaPerubahan} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenKtpDirut?.name} + +
+ + {chekValid && ( +
+ {errorsDokumen.dokumenKtpDirut} +
+ )} +
+
+
+
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenAktaPendirian?.name} + +
+ + {chekValid && ( +
+ {errorsDokumen.dokumenAktaPendirian} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenLaporanKeuangan?.name} + +
+ + {chekValid && ( +
+ {errorsDokumen.dokumenLaporanKeuangan} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenFotoKantor?.name} + +
+ + {chekValid && ( +
+ {errorsDokumen.dokumenFotoKantor} +
+ )} +
+
+
+
+ + + Pastikan dokumen yang anda upload sudah benar + +
+
+
+ + + + {formDokumen?.dokumenTempatBekerja?.name} + +
+ + {chekValid && ( +
+ {errorsDokumen.dokumenTempatBekerja} +
+ )} +
+
+
+
+
+ +
+
+

Upload Progress

+

+ + {parseInt((getJumlahDokumenDiisi() / 9) * 100)} % + + + {getJumlahDokumenDiisi() >= 4 + ? getJumlahDokumenDiisi() == 9 + ? 'Selesai' + : 'Sedikit Lagi' + : ''} + +

+
+ {/* 50 keatas baru muncul kata kata sedikit lagi */} + + + Tingkatin sedikit lagi agar pengajuan tempo kamu dapat kami proses + dengan cepat + +
+
+ )} + {isMobile && ( +
+

+ Dokumen +

+
+
+
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
{ onChange={handleInputChange} accept='.pdf,.png,.jpg,.jpeg' /> - + {formDokumen?.dokumenNib?.name}
+ + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenNib}
)}
-
-
-
+ +
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
{ onChange={handleInputChange} accept='.pdf,.png,.jpg,.jpeg' /> - + {formDokumen?.dokumenNpwp?.name}
+ + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenNpwp}
)}
-
-
-
+ +
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
- + {formDokumen?.dokumenSppkp?.name}
- + + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenSppkp}
)}
-
-
-
+ +
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
- + {formDokumen?.dokumenAktaPerubahan?.name}
+ + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenAktaPerubahan}
)}
-
-
-
+ +
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
- + {formDokumen?.dokumenKtpDirut?.name}
- + + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenKtpDirut}
)}
-
-
-
-
-
-
+ +
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
- + {formDokumen?.dokumenAktaPendirian?.name}
- + + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenAktaPendirian}
)}
-
-
-
+ +
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
- + {formDokumen?.dokumenLaporanKeuangan?.name}
- + + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenLaporanKeuangan}
)}
-
-
-
+ +
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
- + {formDokumen?.dokumenFotoKantor?.name}
- + + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenFotoKantor}
)}
-
-
-
+ +
- - Pastikan dokumen yang anda upload sudah benar - -
-
-
+
- + {formDokumen?.dokumenTempatBekerja?.name}
- + + Format: pdf, jpeg, jpg, png. max file size 2MB + {chekValid && (
{errorsDokumen.dokumenTempatBekerja} @@ -501,42 +909,42 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { )}
-
-
-
- -
-
-

Upload Progress

-

- - {parseInt((getJumlahDokumenDiisi() / 9) * 100)} % - - - {getJumlahDokumenDiisi() >= 4 - ? getJumlahDokumenDiisi() == 9 - ? 'Selesai' - : 'Sedikit Lagi' - : ''} + +

+
+

Upload Progress

+

+ + {parseInt((getJumlahDokumenDiisi() / 9) * 100)} % + + + {getJumlahDokumenDiisi() >= 4 + ? getJumlahDokumenDiisi() == 9 + ? 'Selesai' + : 'Sedikit Lagi' + : ''} + +

+
+ {/* 50 keatas baru muncul kata kata sedikit lagi */} + + + Tingkatin sedikit lagi agar pengajuan tempo kamu dapat kami proses + dengan cepat -

+
- {/* 50 keatas baru muncul kata kata sedikit lagi */} - - - Tingkatin sedikit lagi agar pengajuan tempo kamu dapat kami proses - dengan cepat - -
+ )} ); }; -- cgit v1.2.3 From 6bbf1dbd94355f34f58f4b72f134f3dbeac776aa Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Sat, 23 Nov 2024 11:55:59 +0700 Subject: update tempo --- src/lib/pengajuan-tempo/component/Dokumen.jsx | 110 +++++++++++++++++--------- 1 file changed, 71 insertions(+), 39 deletions(-) (limited to 'src/lib/pengajuan-tempo/component/Dokumen.jsx') diff --git a/src/lib/pengajuan-tempo/component/Dokumen.jsx b/src/lib/pengajuan-tempo/component/Dokumen.jsx index 0873df66..8391de4a 100644 --- a/src/lib/pengajuan-tempo/component/Dokumen.jsx +++ b/src/lib/pengajuan-tempo/component/Dokumen.jsx @@ -43,8 +43,8 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { } // Check for file size - if (file.size > 2000000) { - toast.error('Maksimal ukuran file adalah 2MB', { duration: 4000 }); + if (file.size > 500000) { + toast.error('Maksimal ukuran file adalah 500Kb', { duration: 4000 }); event.target.value = ''; return; @@ -72,6 +72,10 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { const dokumenTempatBekerjaRef = useRef(null); useEffect(() => { + // window.scrollTo({ + // top: 0, + // behavior: 'smooth', + // }); const loadIndustries = async () => { if (!isFormValid) { const options = { @@ -79,6 +83,7 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { block: 'center', }; if (errorsDokumen.dokumenNib && dokumenNibRef.current) { + console.log('errorsDokumen', errorsDokumen); dokumenNibRef.current.scrollIntoView(options); return; } @@ -144,7 +149,10 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
-
+
-
+
-
+
@@ -244,7 +256,6 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { id='dokumenSppkp' name='dokumenSppkp' type='file' - ref={dokumenSppkpRef} className='hidden' aria-invalid={errorsDokumen.dokumenSppkp} onChange={handleInputChange} @@ -262,7 +273,10 @@ const Dokumen = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { )}
-
+
-
+
-
+
-
+
-
+
-
+