diff options
| -rw-r--r-- | public/images/logo-indoteknik-gear.png | bin | 0 -> 18304 bytes | |||
| -rw-r--r-- | src/core/components/elements/DelayRender/DelayRender.js | 18 | ||||
| -rw-r--r-- | src/core/components/elements/Spinner/LogoSpinner.jsx | 3 | ||||
| -rw-r--r-- | src/lib/home/components/CategoryHome.jsx | 2 | ||||
| -rw-r--r-- | src/pages/_document.jsx | 10 | ||||
| -rw-r--r-- | src/pages/index.jsx | 26 |
6 files changed, 32 insertions, 27 deletions
diff --git a/public/images/logo-indoteknik-gear.png b/public/images/logo-indoteknik-gear.png Binary files differnew file mode 100644 index 00000000..89f749ec --- /dev/null +++ b/public/images/logo-indoteknik-gear.png diff --git a/src/core/components/elements/DelayRender/DelayRender.js b/src/core/components/elements/DelayRender/DelayRender.js index c0ff0fc0..2d412be7 100644 --- a/src/core/components/elements/DelayRender/DelayRender.js +++ b/src/core/components/elements/DelayRender/DelayRender.js @@ -1,17 +1,19 @@ const { useState, useEffect } = require('react') -const DelayRender = ({ delay, children }) => { - const [showComponent, setShowComponent] = useState(false) +const DelayRender = ({ renderAfter = 200, children }) => { + const [renderComponent, setRenderComponent] = useState(false) useEffect(() => { - const timeout = setTimeout(() => { - setShowComponent(true) - }, delay) + const renderTimeout = setTimeout(() => { + setRenderComponent(true) + }, renderAfter) - return () => clearTimeout(timeout) - }, [delay]) + return () => { + clearTimeout(renderTimeout) + } + }, [renderAfter]) - return showComponent && children + return renderComponent && children } export default DelayRender diff --git a/src/core/components/elements/Spinner/LogoSpinner.jsx b/src/core/components/elements/Spinner/LogoSpinner.jsx index 73b84e84..94da5f1d 100644 --- a/src/core/components/elements/Spinner/LogoSpinner.jsx +++ b/src/core/components/elements/Spinner/LogoSpinner.jsx @@ -1,9 +1,8 @@ import Image from 'next/image' -import IndoteknikLogo from '@/images/LOGO-INDOTEKNIK-GEAR.png' const LogoSpinner = ({ ...props }) => ( <Image - src={IndoteknikLogo} + src='/images/logo-indoteknik-gear.png' alt='Indoteknik Logo' width={64} height={64} diff --git a/src/lib/home/components/CategoryHome.jsx b/src/lib/home/components/CategoryHome.jsx index 8fe3788c..4566bc4b 100644 --- a/src/lib/home/components/CategoryHome.jsx +++ b/src/lib/home/components/CategoryHome.jsx @@ -6,7 +6,7 @@ const CategoryHome = ({ id }) => { const { categoryHome } = useCategoryHome({ id }) return ( - <div className='p-4 sm:py-8 relative bg-warning-100 border border-warning-300'> + <div className='p-4 sm:py-8 relative bg-warning-100 border border-warning-300 min-h-[240px]'> {categoryHome.data ? ( <ProductSlider products={{ diff --git a/src/pages/_document.jsx b/src/pages/_document.jsx index b76f314f..2130c097 100644 --- a/src/pages/_document.jsx +++ b/src/pages/_document.jsx @@ -10,14 +10,16 @@ export default function MyDocument() { <link rel='icon' href='/favicon.ico' /> <link rel='manifest' href='/manifest.json' /> <link rel='apple-touch-icon' href='/icon.jpg'></link> - <link rel="apple-touch-startup-image" href="/images/splash/launch.png"/> + <link rel='apple-touch-startup-image' href='/images/splash/launch.png' /> <meta name='mobile-web-app-capable' content='yes' /> - <meta name="apple-mobile-web-app-capable" content="yes" /> - <meta name="apple-mobile-web-app-status-bar-style" content="default" /> - <meta name="apple-mobile-web-app-title" content="Indoteknik.com" /> + <meta name='apple-mobile-web-app-capable' content='yes' /> + <meta name='apple-mobile-web-app-status-bar-style' content='default' /> + <meta name='apple-mobile-web-app-title' content='Indoteknik.com' /> <meta name='theme-color' content='#fff' /> + <link rel='prefetch' href='/images/logo-indoteknik-gear.png' /> + <meta name='facebook-domain-verification' content='328wmjs7hcnz74rwsqzxvq50rmbtm2' /> <Script async diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 8cf335c4..31c6b240 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -8,7 +8,6 @@ import Seo from '@/core/components/Seo' import { useQuery } from 'react-query' import odooApi from '@/core/api/odooApi' import Image from 'next/image' -import CustomerReviews from '@/lib/review/components/CustomerReviews' import DelayRender from '@/core/components/elements/DelayRender/DelayRender' const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout')) @@ -25,6 +24,7 @@ const PopularProduct = dynamic(() => import('@/lib/home/components/PopularProduc const CategoryHomeId = dynamic(() => import('@/lib/home/components/CategoryHomeId'), { loading: () => <PopularProductSkeleton /> }) +const CustomerReviews = dynamic(() => import('@/lib/review/components/CustomerReviews')) export default function Home() { const fetchSecondHeroBanner = async () => await odooApi('GET', '/api/v1/banner?type=index-a-2') @@ -70,23 +70,23 @@ export default function Home() { <HeroBanner /> </div> <div className='w-3/12'> - <DelayRender delay={200}> + <DelayRender renderAfter={200}> <PopularProduct /> </DelayRender> </div> </div> <div className='my-16 flex flex-col gap-y-16'> - <DelayRender delay={300}> + <DelayRender renderAfter={400}> <PreferredBrand /> </DelayRender> - <DelayRender delay={400}> + <DelayRender renderAfter={600}> <FlashSale /> </DelayRender> - <DelayRender delay={500}> + <DelayRender renderAfter={1000}> <CategoryHomeId /> </DelayRender> - <DelayRender delay={600}> + <DelayRender renderAfter={1200}> <CustomerReviews /> </DelayRender> </div> @@ -94,21 +94,23 @@ export default function Home() { </DesktopView> <MobileView> - <HeroBanner /> + <DelayRender renderAfter={200}> + <HeroBanner /> + </DelayRender> <div className='flex flex-col gap-y-12 my-6'> - <DelayRender delay={300}> + <DelayRender renderAfter={400}> <PreferredBrand /> </DelayRender> - <DelayRender delay={600}> + <DelayRender renderAfter={600}> <FlashSale /> </DelayRender> - <DelayRender delay={900}> + <DelayRender renderAfter={800}> <PopularProduct /> </DelayRender> - <DelayRender delay={1200}> + <DelayRender renderAfter={1000}> <CategoryHomeId /> </DelayRender> - <DelayRender delay={1500}> + <DelayRender renderAfter={1200}> <CustomerReviews /> </DelayRender> </div> |
