From da44e90efe705239ac7419da1874161acb88299a Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Tue, 15 Oct 2024 15:23:29 +0700 Subject: add feature pengajuan tempo --- .../pengajuan-tempo/component/PengajuanTempo.jsx | 60 ++++++++++++++++++++++ src/lib/pengajuan-tempo/component/Stepper.jsx | 51 ++++++++++++++++++ .../component/informasiPerusahaan.tsx | 0 src/lib/pengajuan-tempo/stores/useTempoStore.ts | 0 4 files changed, 111 insertions(+) create mode 100644 src/lib/pengajuan-tempo/component/PengajuanTempo.jsx create mode 100644 src/lib/pengajuan-tempo/component/Stepper.jsx create mode 100644 src/lib/pengajuan-tempo/component/informasiPerusahaan.tsx create mode 100644 src/lib/pengajuan-tempo/stores/useTempoStore.ts (limited to 'src/lib') diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx new file mode 100644 index 00000000..d7b45fda --- /dev/null +++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx @@ -0,0 +1,60 @@ +import React from 'react'; +import Stepper from './Stepper'; + +const PengajuanTempo = () => { + const [currentStep, setCurrentStep] = React.useState(0); + const NUMBER_OF_STEPS = 6; + const stepDivs = [ +
Informasi Perusahaan
, +
Kontak Person
, +
Pengiriman
, +
Referensi
, +
Dokumen
, +
Konfirmasi
, + ]; + + const goToNextStep = () => + setCurrentStep((prev) => (prev === NUMBER_OF_STEPS - 1 ? prev : prev + 1)); + + const goToPreviousStep = () => + setCurrentStep((prev) => (prev <= 0 ? prev : prev - 1)); + + return ( + <> +
+

+ Form Pengajuan Tempo +

+

+ Lorem ipsum dolor sit amet consectetur. Commodo suspendisse at enim + magnis ut quisque rhoncus. Felis volutpat fringilla sollicitudin + ultricies. Enim non eget in lorem netus. Nisl pharetra accumsan diam + suspendisse. +

+
+
+
+ +
{stepDivs[currentStep]}
+
+ + +
+
+ + ); +}; + +export default PengajuanTempo; diff --git a/src/lib/pengajuan-tempo/component/Stepper.jsx b/src/lib/pengajuan-tempo/component/Stepper.jsx new file mode 100644 index 00000000..248eeffd --- /dev/null +++ b/src/lib/pengajuan-tempo/component/Stepper.jsx @@ -0,0 +1,51 @@ +import React from 'react'; + +const Stepper = ({ currentStep, numberOfSteps }) => { + const stepLabels = [ + 'Informasi Perusahaan', + 'Kontak Person', + 'Pengiriman', + 'Referensi', + 'Dokumen', + 'Konfirmasi', + ]; + console.log('currentStep', currentStep); + const activeColor = (index) => + currentStep >= index ? 'bg-red-500' : 'bg-gray-300'; + const activeColorBullet = (index) => + currentStep >= index ? 'bg-red-500 ' : 'bg-white border-gray-300 border'; + const isFinalStep = (index) => index === numberOfSteps - 1; + const isFirstStep = (index) => index === 0; + return ( +
+ {Array.from({ length: numberOfSteps }).map((_, index) => ( + + {isFirstStep(index) ? null : ( +
+ )} +
+
+
+
+ {stepLabels[index]} +
+
+
+
+
+ ))} +
+ ); +}; + +export default Stepper; diff --git a/src/lib/pengajuan-tempo/component/informasiPerusahaan.tsx b/src/lib/pengajuan-tempo/component/informasiPerusahaan.tsx new file mode 100644 index 00000000..e69de29b diff --git a/src/lib/pengajuan-tempo/stores/useTempoStore.ts b/src/lib/pengajuan-tempo/stores/useTempoStore.ts new file mode 100644 index 00000000..e69de29b -- cgit v1.2.3