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 --- src/core/components/elements/DelayRender/DelayRender.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/core/components/elements/DelayRender/DelayRender.js (limited to 'src/core/components/elements/DelayRender') 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 -- cgit v1.2.3 From db6350771d7668f27db026c42e3885a097989f1e Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 16 May 2023 15:35:24 +0700 Subject: optimize render --- .../components/elements/DelayRender/DelayRender.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/core/components/elements/DelayRender') 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 -- cgit v1.2.3 From 0abaa462194715c25cee5fcede0da3085939b402 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 16 May 2023 16:57:45 +0700 Subject: change image placeholder --- .../components/elements/DelayRender/DelayRender.js | 19 ------------------- .../components/elements/DelayRender/DelayRender.jsx | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+), 19 deletions(-) delete mode 100644 src/core/components/elements/DelayRender/DelayRender.js create mode 100644 src/core/components/elements/DelayRender/DelayRender.jsx (limited to 'src/core/components/elements/DelayRender') diff --git a/src/core/components/elements/DelayRender/DelayRender.js b/src/core/components/elements/DelayRender/DelayRender.js deleted file mode 100644 index 2d412be7..00000000 --- a/src/core/components/elements/DelayRender/DelayRender.js +++ /dev/null @@ -1,19 +0,0 @@ -const { useState, useEffect } = require('react') - -const DelayRender = ({ renderAfter = 200, children }) => { - const [renderComponent, setRenderComponent] = useState(false) - - useEffect(() => { - const renderTimeout = setTimeout(() => { - setRenderComponent(true) - }, renderAfter) - - return () => { - clearTimeout(renderTimeout) - } - }, [renderAfter]) - - return renderComponent && children -} - -export default DelayRender diff --git a/src/core/components/elements/DelayRender/DelayRender.jsx b/src/core/components/elements/DelayRender/DelayRender.jsx new file mode 100644 index 00000000..2d412be7 --- /dev/null +++ b/src/core/components/elements/DelayRender/DelayRender.jsx @@ -0,0 +1,19 @@ +const { useState, useEffect } = require('react') + +const DelayRender = ({ renderAfter = 200, children }) => { + const [renderComponent, setRenderComponent] = useState(false) + + useEffect(() => { + const renderTimeout = setTimeout(() => { + setRenderComponent(true) + }, renderAfter) + + return () => { + clearTimeout(renderTimeout) + } + }, [renderAfter]) + + return renderComponent && children +} + +export default DelayRender -- cgit v1.2.3