diff options
| -rw-r--r-- | src/lib/merchant/api/getMerchantProgresApi.js | 10 | ||||
| -rw-r--r-- | src/pages/daftar-merchant/[status].jsx | 47 | ||||
| -rw-r--r-- | src/pages/daftar-merchant/index.jsx | 30 |
3 files changed, 86 insertions, 1 deletions
diff --git a/src/lib/merchant/api/getMerchantProgresApi.js b/src/lib/merchant/api/getMerchantProgresApi.js new file mode 100644 index 00000000..d356ad78 --- /dev/null +++ b/src/lib/merchant/api/getMerchantProgresApi.js @@ -0,0 +1,10 @@ +import odooApi from '@/core/api/odooApi'; +import { getAuth } from '@/core/utils/auth'; + +const createMerchantApi = async () => { + const auth = getAuth(); + const lead = await odooApi('GET', `/api/v1/check-merchant/${auth.partnerId}`); + return lead; +}; + +export default createMerchantApi; diff --git a/src/pages/daftar-merchant/[status].jsx b/src/pages/daftar-merchant/[status].jsx index e69de29b..61c07571 100644 --- a/src/pages/daftar-merchant/[status].jsx +++ b/src/pages/daftar-merchant/[status].jsx @@ -0,0 +1,47 @@ +import BasicLayout from '@/core/components/layouts/BasicLayout'; +import IsAuth from '@/lib/auth/components/IsAuth'; +import StatusMerchant from '@/lib/merchant/components/AccountSwitch'; +import { useRouter } from 'next/router'; +import axios from 'axios'; +import { useState, useEffect } from 'react'; +import Seo from '@/core/components/Seo'; +import { getAuth } from '~/libs/auth'; + +export async function getServerSideProps(context) { + const { status } = context.query; + // await axios.post( + // `${process.env.NEXT_PUBLIC_SELF_HOST}/api/pengajuan-tempo/${status}`, + // {}, + // { headers: context.req.headers } + // ); + return { props: {} }; +} + +export default function Finish() { + const [isLoading, setIsLoading] = useState(true); + const router = useRouter(); + const auth = getAuth(); + useEffect(() => { + if (!auth) { + const nextUrl = encodeURIComponent(router.asPath); + router.push(`/login?next=${nextUrl}`); + } else { + setIsLoading(false); + } + }, [auth]); + + if (isLoading || !auth) { + return null; // Tidak render apa pun selama loading atau auth/tempo belum tersedia + } + return ( + <> + <Seo title='Pengajuan Tempo Indoteknik.com' /> + + <IsAuth> + <BasicLayout> + <StatusMerchant query={router.query || {}} /> + </BasicLayout> + </IsAuth> + </> + ); +} diff --git a/src/pages/daftar-merchant/index.jsx b/src/pages/daftar-merchant/index.jsx index 8ea6cfd1..36fedafc 100644 --- a/src/pages/daftar-merchant/index.jsx +++ b/src/pages/daftar-merchant/index.jsx @@ -2,15 +2,43 @@ import Seo from '@/core/components/Seo'; import BasicLayout from '@/core/components/layouts/BasicLayout'; import CreateMerchant from '@/lib/merchant/components/Merchant'; import ErrorMerchant from '@/lib/merchant/components/AccountSwitch'; +import getMerchantProgresApi from '@/lib/merchant/api/getMerchantProgresApi'; import useAuth from '@/core/hooks/useAuth'; import { useRouter } from 'next/router'; +import React, { useEffect, useState } from 'react'; export default function DaftarMerchant() { const router = useRouter(); const auth = useAuth(); + const [isLoading, setIsLoading] = useState(true); + useEffect(() => { + const loadData = async () => { + setIsLoading(true); + try { + const data = await getMerchantProgresApi(); + switch (data) { + case 'draft': + router.push(`/daftar-merchant/review`); + break; + case 'approve': + router.push(`/daftar-merchant/approve`); + break; + case 'reject': + router.push(`/daftar-merchant/reject`); + break; + } + } catch (error) { + console.error('Error loading profile:', error); + handleIsError(true); // Jika ada error, panggil fungsi error handler + } + setIsLoading(false); + }; + + loadData(); + }, []); if (auth == false) { router.push(`/login?next=${encodeURIComponent('/daftar-merchant')}`); } - if (!auth) { + if (!auth || isLoading) { return; } return ( |
