diff options
| author | trisusilo48 <tri.susilo@altama.co.id> | 2024-12-31 09:09:03 +0700 |
|---|---|---|
| committer | trisusilo48 <tri.susilo@altama.co.id> | 2024-12-31 09:09:03 +0700 |
| commit | b43fdb49a3c6e26a7e0a790bf8f4425f76a57572 (patch) | |
| tree | 924658b0edee58b3f16106ba01bd29e01caba522 /src/pages | |
| parent | ddb82d97f794d59d846aa9b7c3d1dd1eff9cb9a9 (diff) | |
| parent | d76f96c44f85e7e0efbd544e6b97bd80920b0039 (diff) | |
Merge branch 'new-release' into CR/PPn12%
Diffstat (limited to 'src/pages')
| -rw-r--r-- | src/pages/api/flashsale-header.js | 12 | ||||
| -rw-r--r-- | src/pages/api/hero-banner.js | 2 | ||||
| -rw-r--r-- | src/pages/api/search-flashsale.js | 26 | ||||
| -rw-r--r-- | src/pages/daftar-merchant.jsx (renamed from src/pages/my/daftar-merchant.jsx) | 0 | ||||
| -rw-r--r-- | src/pages/index.jsx | 18 | ||||
| -rw-r--r-- | src/pages/kunjungan-sales.jsx (renamed from src/pages/my/kunjungan-sales.jsx) | 0 | ||||
| -rw-r--r-- | src/pages/kunjungan-service.jsx (renamed from src/pages/my/kunjungan-service.jsx) | 0 | ||||
| -rw-r--r-- | src/pages/my/pembayaran-tempo.jsx | 15 | ||||
| -rw-r--r-- | src/pages/pembayaran-tempo-detail.jsx | 13 | ||||
| -rw-r--r-- | src/pages/pembayaran-tempo.jsx | 14 | ||||
| -rw-r--r-- | src/pages/request-for-quotation.jsx (renamed from src/pages/my/request-for-quotation.jsx) | 0 | ||||
| -rw-r--r-- | src/pages/sitemap/homepage.xml.js | 33 | ||||
| -rw-r--r-- | src/pages/surat-dukungan.jsx (renamed from src/pages/my/surat-dukungan.jsx) | 0 |
13 files changed, 93 insertions, 40 deletions
diff --git a/src/pages/api/flashsale-header.js b/src/pages/api/flashsale-header.js index 21cb9c9d..578801ae 100644 --- a/src/pages/api/flashsale-header.js +++ b/src/pages/api/flashsale-header.js @@ -20,13 +20,19 @@ export default async function handler(req, res) { let cachedData = await client.get(cacheKey); if (cachedData) { - const data = JSON.parse(cachedData); + const data = JSON.parse(cachedData); // Periksa apakah data adalah array dan panjangnya 0 if (!data || (Array.isArray(data) && data.length === 0)) { await client.del(cacheKey); // Hapus kunci jika data kosong return res.status(200).json({ data: [] }); } + // Periksa apakah end_date lebih besar dari waktu saat ini + const currentTime = new Date(); + if (data[0].endDate && new Date(data[0].endDate) < currentTime) { + await client.del(cacheKey); // Hapus kunci jika end_date lebih kecil dari waktu saat ini + return res.status(200).json({ data: [] }); + } return res.status(200).json({ data }); } else { const flashSale = await odooApi('GET', `/api/v1/flashsale/header`); @@ -37,11 +43,11 @@ export default async function handler(req, res) { cacheKey, JSON.stringify(flashSale), 'EX', - flashSale.duration + flashSale.duration ); cachedData = await client.get(cacheKey); - const data = JSON.parse(cachedData); + const data = JSON.parse(cachedData); return res.status(200).json({ data }); } } diff --git a/src/pages/api/hero-banner.js b/src/pages/api/hero-banner.js index 7a348cfa..b7f3c1c5 100644 --- a/src/pages/api/hero-banner.js +++ b/src/pages/api/hero-banner.js @@ -28,6 +28,8 @@ export default async function handler(req, res) { `/api/v1/banner?type=${type}` ); + if(!dataBannerSections) return res.status(200).json({ data: [] }); + // Simpan hasil fetch ke Redis dengan masa kadaluarsa 3 hari (259200 detik) await client.set( cacheKey, diff --git a/src/pages/api/search-flashsale.js b/src/pages/api/search-flashsale.js index d9e56c83..c00f6c64 100644 --- a/src/pages/api/search-flashsale.js +++ b/src/pages/api/search-flashsale.js @@ -23,20 +23,28 @@ export default async function handler(req, res) { if (cachedData) { const data = JSON.parse(cachedData); + // Periksa apakah data adalah array dan panjangnya 0 + if (!data || (Array.isArray(data) && data.length === 0)) { + await client.del(cacheKey); // Hapus kunci jika data kosong + return res.status(200).json({ data: [] }); + } return res.status(200).json({ data }); } else { const dataProductSearch = await axios( `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/search?${query}&operation=${operation}]` ); - - await client.set( - cacheKey, - JSON.stringify(dataProductSearch.data), - 'EX', - duration - ); - cachedData = await client.get(cacheKey); - return res.status(200).json({ data: cachedData }); + if (dataProductSearch.data.length === 0) { + return res.status(200).json({ data: [] }); + } else { + await client.set( + cacheKey, + JSON.stringify(dataProductSearch.data), + 'EX', + duration + ); + cachedData = await client.get(cacheKey); + return res.status(200).json({ data: cachedData }); + } } } catch (error) { console.error('Error interacting with Redis or fetching data:', error); diff --git a/src/pages/my/daftar-merchant.jsx b/src/pages/daftar-merchant.jsx index e1fa9bcb..e1fa9bcb 100644 --- a/src/pages/my/daftar-merchant.jsx +++ b/src/pages/daftar-merchant.jsx diff --git a/src/pages/index.jsx b/src/pages/index.jsx index e685b382..fce2202a 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -1,23 +1,27 @@ import { HeroBannerSkeleton } from '@/components/skeleton/BannerSkeleton'; import { PopularProductSkeleton } from '@/components/skeleton/PopularProductSkeleton'; -import odooApi from '@/core/api/odooApi'; import Seo from '@/core/components/Seo'; import DelayRender from '@/core/components/elements/DelayRender/DelayRender'; import DesktopView from '@/core/components/views/DesktopView'; import MobileView from '@/core/components/views/MobileView'; -import { FlashSaleSkeleton } from '@/lib/flashSale/skeleton/FlashSaleSkeleton'; -import BannerPromoSkeleton from '@/lib/home/components/Skeleton/BannerPromoSkeleton'; import PreferredBrandSkeleton from '@/lib/home/components/Skeleton/PreferredBrandSkeleton'; import dynamic from 'next/dynamic'; -import { useEffect, useRef, useState } from 'react'; +import { useRef } from 'react'; import { getAuth } from '~/libs/auth'; -import PagePopupIformation from '~/modules/popup-information'; // need change to dynamic and ssr : false -import CategoryPilihan from '../lib/home/components/CategoryPilihan'; -// import { getAuth } from '~/libs/auth'; const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout') ); + +const PagePopupIformation = dynamic(() => + import('~/modules/popup-information'), { + ssr: false + } +); + +const CategoryPilihan = dynamic(() => + import('../lib/home/components/CategoryPilihan') +); const HeroBanner = dynamic(() => import('@/components/ui/HeroBanner'), { loading: () => <HeroBannerSkeleton />, }); diff --git a/src/pages/my/kunjungan-sales.jsx b/src/pages/kunjungan-sales.jsx index 052991d9..052991d9 100644 --- a/src/pages/my/kunjungan-sales.jsx +++ b/src/pages/kunjungan-sales.jsx diff --git a/src/pages/my/kunjungan-service.jsx b/src/pages/kunjungan-service.jsx index 37de5a0b..37de5a0b 100644 --- a/src/pages/my/kunjungan-service.jsx +++ b/src/pages/kunjungan-service.jsx diff --git a/src/pages/my/pembayaran-tempo.jsx b/src/pages/my/pembayaran-tempo.jsx deleted file mode 100644 index 8947bdd9..00000000 --- a/src/pages/my/pembayaran-tempo.jsx +++ /dev/null @@ -1,15 +0,0 @@ -import Seo from '@/core/components/Seo' -import BasicLayout from '@/core/components/layouts/BasicLayout' -import PembayaranTempo from '@/lib/form/components/PembayaranTempo' - -export default function pembayaranTempo() { - return ( - <> - <Seo title='Pembayaran Tempo - Indoteknik.com' /> - - <BasicLayout> - <PembayaranTempo /> - </BasicLayout> - </> - ) -} diff --git a/src/pages/pembayaran-tempo-detail.jsx b/src/pages/pembayaran-tempo-detail.jsx new file mode 100644 index 00000000..363e3099 --- /dev/null +++ b/src/pages/pembayaran-tempo-detail.jsx @@ -0,0 +1,13 @@ +import Seo from '@/core/components/Seo' +import BasicLayout from '@/core/components/layouts/BasicLayout' +import IframeContent from '@/lib/iframe/components/IframeContent' + +export default function PembnayaranTempo() { + return ( + <BasicLayout> + <Seo title='Pambayaran Tempo - Indoteknik.com' /> + + <IframeContent url={`${process.env.NEXT_PUBLIC_ODOO_HOST}/content?url=pembayaran-tempo`} /> + </BasicLayout> + ) +} diff --git a/src/pages/pembayaran-tempo.jsx b/src/pages/pembayaran-tempo.jsx index 363e3099..8947bdd9 100644 --- a/src/pages/pembayaran-tempo.jsx +++ b/src/pages/pembayaran-tempo.jsx @@ -1,13 +1,15 @@ import Seo from '@/core/components/Seo' import BasicLayout from '@/core/components/layouts/BasicLayout' -import IframeContent from '@/lib/iframe/components/IframeContent' +import PembayaranTempo from '@/lib/form/components/PembayaranTempo' -export default function PembnayaranTempo() { +export default function pembayaranTempo() { return ( - <BasicLayout> - <Seo title='Pambayaran Tempo - Indoteknik.com' /> + <> + <Seo title='Pembayaran Tempo - Indoteknik.com' /> - <IframeContent url={`${process.env.NEXT_PUBLIC_ODOO_HOST}/content?url=pembayaran-tempo`} /> - </BasicLayout> + <BasicLayout> + <PembayaranTempo /> + </BasicLayout> + </> ) } diff --git a/src/pages/my/request-for-quotation.jsx b/src/pages/request-for-quotation.jsx index 40fda009..40fda009 100644 --- a/src/pages/my/request-for-quotation.jsx +++ b/src/pages/request-for-quotation.jsx diff --git a/src/pages/sitemap/homepage.xml.js b/src/pages/sitemap/homepage.xml.js new file mode 100644 index 00000000..fa622d5c --- /dev/null +++ b/src/pages/sitemap/homepage.xml.js @@ -0,0 +1,33 @@ +import { create } from 'xmlbuilder'; + +export async function getServerSideProps({ res }) { + const links = [ + { label: 'Hubungi Kami', url: 'https://indoteknik.com/hubungi-kami' }, + { label: 'Tentang Kami', url: 'https://indoteknik.com/tentang-kami' }, + { label: 'Karir', url: 'https://indoteknik.com/karir' }, + { label: 'Daftar Tempo', url: 'https://indoteknik.com/pembayaran-tempo' }, + ]; + const sitemap = create('urlset', { encoding: 'utf-8' }).att( + 'xmlns', + 'http://www.sitemaps.org/schemas/sitemap/0.9' + ); + + const date = new Date(); + links.forEach((link) => { + const url = sitemap.ele('url'); + url.ele('loc', link.url); + url.ele('lastmod', date.toISOString().slice(0, 10)); + url.ele('changefreq', 'daily'); + url.ele('priority', '1.0'); + }); + + res.setHeader('Content-Type', 'text/xml'); + res.write(sitemap.end()); + res.end(); + + return { props: {} }; +} + +export default function SitemapProducts() { + return null; +} diff --git a/src/pages/my/surat-dukungan.jsx b/src/pages/surat-dukungan.jsx index 8058f34d..8058f34d 100644 --- a/src/pages/my/surat-dukungan.jsx +++ b/src/pages/surat-dukungan.jsx |
