From 996765de3147f3e78fd58a79ebb36cfee932f024 Mon Sep 17 00:00:00 2001 From: zojgame Date: Tue, 26 Mar 2024 11:47:04 +0500 Subject: [PATCH] Lazy load fixes --- src/app/page.tsx | 30 +++++--------------------- src/components/FeatureVideoViewBox.tsx | 11 ++++------ src/components/VideoSliderMobile.tsx | 7 +++--- 3 files changed, 12 insertions(+), 36 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 09d5e23..de14f20 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -98,32 +98,12 @@ export default function App() { const [setModal] = useModalStore((state) => [state.setModal]); const [isShownAllProjects, setIsShownAllProjects] = useState(false); const [isBuffering, setIsBuffering] = useState(true); - const [viewPortEntered, setViewPortEntered] = useState(false); - const featureRefDesktop = useRef(null); - const featureRefMobile = useRef(null); + const [isViewportEntered, setIsViewportEntered] = useState(false); const handleOnViewportFeatureEnter = () => { - if (viewPortEntered) return; + if (isViewportEntered) return; - setViewPortEntered(true); - - if (!featureRefDesktop.current || !featureRefMobile.current) return; - const videoDesktopRefs = featureRefDesktop.current.children; - const videoMobileRefs = featureRefMobile.current.children; - - if (!videoDesktopRefs || !videoMobileRefs) return; - - for (let i = 0; i < videoDesktopRefs.length; i++) { - const videoMobileEl = videoDesktopRefs[i] as HTMLVideoElement; - const videoDesktopEl = videoMobileRefs[i] as HTMLVideoElement; - - if (videoMobileEl.dataset.src && videoDesktopEl.dataset.src) { - videoDesktopEl.src = videoDesktopEl.dataset.src; - videoMobileEl.src = videoMobileEl.dataset.src; - } - } - - setViewPortEntered(true); + setIsViewportEntered(true); }; async function getProjects() { @@ -452,12 +432,12 @@ export default function App() { - + diff --git a/src/components/FeatureVideoViewBox.tsx b/src/components/FeatureVideoViewBox.tsx index 876e0f3..d7fbf3d 100644 --- a/src/components/FeatureVideoViewBox.tsx +++ b/src/components/FeatureVideoViewBox.tsx @@ -3,13 +3,13 @@ import { useEffect, useRef } from "react"; interface FeatureVideoViewBoxProps { selectedVideo: string; videos: string[]; - featureRef: React.LegacyRef; + isViewportEntered: boolean; } function FeatureVideoViewBox({ selectedVideo, videos, - featureRef, + isViewportEntered, }: FeatureVideoViewBoxProps) { // const videoRef = useRef(null); const videoContainerRef = useRef(null); @@ -36,15 +36,12 @@ function FeatureVideoViewBox({ // } // }, [selectedVideo]); - useEffect(() => { - return () => {}; - }, [selectedVideo]); - return (
-
+
{videos.map((video) => (