From 1085602ad84e73692e3ab8b9141c5f61381a8cea Mon Sep 17 00:00:00 2001
From: "Indoteknik ." <andrifebriyadiputra@gmail.com>
Date: Wed, 13 Aug 2025 10:57:36 +0700
Subject: (andri) layout pengajuan tempo jika status akun pending

---
 src/lib/pengajuan-tempo/component/FinishTempo.jsx | 77 +++++++++++++++++------
 1 file changed, 57 insertions(+), 20 deletions(-)

(limited to 'src/lib/pengajuan-tempo/component/FinishTempo.jsx')

diff --git a/src/lib/pengajuan-tempo/component/FinishTempo.jsx b/src/lib/pengajuan-tempo/component/FinishTempo.jsx
index ad8a7e67..abf218d9 100644
--- a/src/lib/pengajuan-tempo/component/FinishTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/FinishTempo.jsx
@@ -9,9 +9,12 @@ import axios from 'axios';
 import { toast } from 'react-hot-toast';
 import { ChevronRightIcon, ChevronLeftIcon } from '@heroicons/react/24/outline';
 import { useRouter } from 'next/router';
+import switchAccountProgresApi from '@/lib/auth/api/switchAccountProgresApi.js';
 
 const FinishTempo = ({ query }) => {
   const [data, setData] = useState();
+  const [switchStatus, setSwitchStatus] = useState(null);
+  const [loadingStatus, setLoadingStatus] = useState(true);
   const [transactionData, setTransactionData] = useState();
   const { isDesktop, isMobile } = useDevice();
   const auth = useAuth();
@@ -29,16 +32,46 @@ const FinishTempo = ({ query }) => {
     fetchData();
   }, [query]);
 
+  useEffect(() => {
+    const fetchSwitchStatus = async () => {
+      try {
+        const progres = await switchAccountProgresApi();
+        setSwitchStatus(progres?.status);
+      } catch (err) {
+        console.error('Gagal cek progres switch account:', err);
+      } finally {
+        setLoadingStatus(false);
+      }
+    };
+    fetchSwitchStatus();
+  }, []);
+
   // Handler khusus untuk tombol Ubah Akun
   const handleSwitchAccountClick = () => {
-    // Set flag di localStorage
+    if (switchStatus === 'pending') {
+      toast.info('Akun sedang menunggu verifikasi. Tidak dapat mengubah akun saat ini.', { duration: 2500 });
+      return;
+    }
     localStorage.setItem('autoCheckProfile', 'true');
-    // Navigate tanpa query param ke halaman profile
     router.push('/my/profile');
   };
 
+  if (loadingStatus) {
+    return (
+      <div className="container flex flex-col items-center gap-4">
+        <div className="py-20 text-gray-500">Memuat data...</div>
+      </div>
+    );
+  }
+
   return (
-    <div className='container flex flex-col items-center gap-4'>
+    <div
+      className={`container flex flex-col items-center gap-4 pb-20 ${
+        switchStatus === 'pending'
+          ? 'min-h-[calc(100vh-80px)] md:min-h-[calc(100vh-100px)] lg:min-h-[calc(100vh-120px)]'
+          : 'min-h-screen'
+      }`}
+    >
       <div
         className={`flex ${
           isMobile ? 'w-full' : 'w-2/3'
@@ -51,8 +84,11 @@ const FinishTempo = ({ query }) => {
         >
           {query?.status == 'finish' &&
             'Form Pengajuan Tempo kamu Telah Berhasil Didaftarkan Mohon menunggu hingga Proses Verifikasi Selesai Dilakukan'}
-          {query?.status == 'switch-account' &&
-            'Form Pengajuan Tempo Kamu Gagal Dilakukan'}
+          {switchStatus === 'pending'
+            ? 'Form Pengajuan Tempo Kamu Belum Dapat Dilakukan'
+            : query?.status == 'switch-account' &&
+              'Form Pengajuan Tempo Kamu Gagal Dilakukan'
+          }
           {query?.status == 'review' &&
             'Pengajuan Tempo dalam Proses Verifikasi'}
           {query?.status == 'approve' && 'Pengajuan Tempo Berhasil'}
@@ -96,8 +132,11 @@ const FinishTempo = ({ query }) => {
           isMobile ? 'w-full text-sm' : 'w-4/5 text-base'
         }`}
       >
-        {query?.status == 'switch-account' &&
-          'Terima kasih atas minat anda untuk mendaftar Tempo, namun sayangnya akun anda bukan merupakan akun bisnis. Segera ubah akun anda menjadi Bisnis untuk menggunakan fitur ini'}
+        {switchStatus === 'pending'
+          ? 'Proses perubahan ke akun bisnis sedang kami review, mohon menunggu hingga 2x24 jam'
+          : query?.status == 'switch-account' &&
+            'Terima kasih atas minat anda untuk mendaftar Tempo, namun sayangnya akun anda bukan merupakan akun bisnis. Segera ubah akun anda menjadi Bisnis untuk menggunakan fitur ini'
+        }
         {query?.status == 'finish' &&
           'Mohon menunggu untuk verifikasi dokumen dan kelengkapan data yang telah anda berikan. Proses approval pembayaran tempo kamu berhasil atau tidak akan diinfokan melalui email perusahaan / email yang mendaftar'}
         {query?.status == 'review' &&
@@ -106,10 +145,12 @@ const FinishTempo = ({ query }) => {
           'Proses pengajuan tempo anda sudah berhasil terdaftar di indoteknik.com. Nikmati pembelian anda di website indoteknik dengan menggunakan pembayaran tempo'}
       </div>
 
-      <hr className="border-gray-300 w-full" />
+      {switchStatus !== 'pending' && (
+        <hr className="border-gray-300 w-full" />
+      )}
       
       {/* Video panduan khusus tampil saat status switch-account */}
-      {query?.status === 'switch-account' && (
+      {query?.status === 'switch-account' && switchStatus !== 'pending' &&  (
         <div className="w-full max-w-3xl mx-auto px-4 text-center text-gray-700 mb-6">
           <div className="mb-3 font-medium">
             <h1
@@ -137,27 +178,23 @@ const FinishTempo = ({ query }) => {
       )}
 
       {/* Tombol dengan behavior berbeda jika status switch-account */}
-      {query?.status === 'switch-account' ? (
+      {query?.status === 'switch-account' && switchStatus !== 'pending' ? (
         <button
           onClick={handleSwitchAccountClick}
-          className='btn-solid-red rounded-md text-base flex flex-row items-center justify-center mb-10'
+          className="btn-solid-red rounded-md text-base flex flex-row items-center justify-center mb-10"
         >
           Ubah Akun
-          <ChevronRightIcon className='w-5' />
+          <ChevronRightIcon className="w-5" />
         </button>
-      ) : (
+      ) : query?.status !== 'switch-account' && (
         <Link
-          href={
-            query?.status === 'approve'
-              ? '/my/tempo/'
-              : '/'
-          }
-          className='btn-solid-red rounded-md text-base flex flex-row items-center justify-center mb-10'
+          href={query?.status === 'approve' ? '/my/tempo/' : '/'}
+          className="btn-solid-red rounded-md text-base flex flex-row items-center justify-center mb-10"
         >
           {query?.status === 'approve'
             ? 'Lihat Detail Tempo'
             : 'Kembali Ke Beranda'}
-          <ChevronRightIcon className='w-5' />
+          <ChevronRightIcon className="w-5" />
         </Link>
       )}
     </div>
-- 
cgit v1.2.3

