From 13ed5991179a497545cc5ed0ce98bb6a336c1b6a Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 16 May 2023 14:39:49 +0700 Subject: Delay Render components --- .../components/elements/DelayRender/DelayRender.js | 17 +++++++++ src/pages/index.jsx | 43 ++++++++++++++++------ 2 files changed, 49 insertions(+), 11 deletions(-) create mode 100644 src/core/components/elements/DelayRender/DelayRender.js (limited to 'src') diff --git a/src/core/components/elements/DelayRender/DelayRender.js b/src/core/components/elements/DelayRender/DelayRender.js new file mode 100644 index 00000000..c0ff0fc0 --- /dev/null +++ b/src/core/components/elements/DelayRender/DelayRender.js @@ -0,0 +1,17 @@ +const { useState, useEffect } = require('react') + +const DelayRender = ({ delay, children }) => { + const [showComponent, setShowComponent] = useState(false) + + useEffect(() => { + const timeout = setTimeout(() => { + setShowComponent(true) + }, delay) + + return () => clearTimeout(timeout) + }, [delay]) + + return showComponent && children +} + +export default DelayRender diff --git a/src/pages/index.jsx b/src/pages/index.jsx index 15a431b4..8cf335c4 100644 --- a/src/pages/index.jsx +++ b/src/pages/index.jsx @@ -9,6 +9,7 @@ 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')) const FlashSale = dynamic(() => import('@/lib/flashSale/components/FlashSale')) @@ -69,27 +70,47 @@ export default function Home() {
- + + +
- - - - + + + + + + + + + + + +
-
- - - - - +
+ + + + + + + + + + + + + + +
-- cgit v1.2.3