From 0e41d7179961be9c219c1f2409f8b00534c907a6 Mon Sep 17 00:00:00 2001 From: ray Date: Tue, 5 Mar 2024 12:09:03 -0800 Subject: [PATCH] DBC22-1841: fixed scrollto being triggered multiple times --- src/frontend/src/pages/CamerasListPage.js | 26 +++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/frontend/src/pages/CamerasListPage.js b/src/frontend/src/pages/CamerasListPage.js index 1eba06b7d..f29c5eba8 100644 --- a/src/frontend/src/pages/CamerasListPage.js +++ b/src/frontend/src/pages/CamerasListPage.js @@ -41,16 +41,7 @@ export default function CamerasListPage() { const [searchText, setSearchText] = useState(''); // UseEffect hooks and data functions - useEffect(() => { - const scrollPosition = sessionStorage.getItem('scrollPosition'); - if (scrollPosition) { - window.scrollTo(0, parseInt(scrollPosition, 10)); - } - }); - const getCamerasData = async () => { - isInitialMount.current = false; - const newRouteTimestamp = selectedRoute ? selectedRoute.searchTimestamp : null; let tempCams = cameras; @@ -100,6 +91,23 @@ export default function CamerasListPage() { }, [searchText, processedCameras]); + useEffect(() => { + if (isInitialMount.current) { + const scrollPosition = sessionStorage.getItem('scrollPosition'); + if (scrollPosition) { + setTimeout(function() { + window.scrollTo({ + top: parseInt(scrollPosition, 10), + left: 0, + behavior: "smooth" + }); + }, 300); + } + + isInitialMount.current = false; + } + }, [displayedCameras]); + return (