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 --- .../components/elements/Footer/BasicFooter.jsx | 5 ++ .../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 src/pages/pengajuan-tempo.jsx | 29 +++++++++++ 6 files changed, 145 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 create mode 100644 src/pages/pengajuan-tempo.jsx (limited to 'src') diff --git a/src/core/components/elements/Footer/BasicFooter.jsx b/src/core/components/elements/Footer/BasicFooter.jsx index 4688b15b..b46d25b5 100644 --- a/src/core/components/elements/Footer/BasicFooter.jsx +++ b/src/core/components/elements/Footer/BasicFooter.jsx @@ -215,6 +215,11 @@ const CustomerGuide = () => ( Tracking Order +
  • + + Pengajuan Tempo + +
  • ); 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 diff --git a/src/pages/pengajuan-tempo.jsx b/src/pages/pengajuan-tempo.jsx new file mode 100644 index 00000000..f27fb907 --- /dev/null +++ b/src/pages/pengajuan-tempo.jsx @@ -0,0 +1,29 @@ +import Seo from '@/core/components/Seo'; +import dynamic from 'next/dynamic'; +import SimpleFooter from '@/core/components/elements/Footer/SimpleFooter'; +import BasicLayout from '@/core/components/layouts/BasicLayout'; +import DesktopView from '@/core/components/views/DesktopView'; +import MobileView from '@/core/components/views/MobileView'; +const PagePengajuanTempo = dynamic(() => + import('@/lib/pengajuan-tempo/component/PengajuanTempo') +); + +export default function TrackingOrder() { + return ( + <> + + + + + + + + + + + + + + + ); +} -- cgit v1.2.3