From 74d2259f6710fd08df12922f67b164c5d4b3f72d Mon Sep 17 00:00:00 2001 From: Bogdan Date: Sat, 29 Mar 2025 19:25:45 +0200 Subject: [PATCH] Avoid fetching movies twice on initial load --- frontend/src/Movie/Details/MovieDetailsPage.tsx | 3 +-- frontend/src/Movie/Index/MovieIndex.tsx | 10 +++++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/frontend/src/Movie/Details/MovieDetailsPage.tsx b/frontend/src/Movie/Details/MovieDetailsPage.tsx index acfea2ab2..bff9f6e79 100644 --- a/frontend/src/Movie/Details/MovieDetailsPage.tsx +++ b/frontend/src/Movie/Details/MovieDetailsPage.tsx @@ -1,7 +1,6 @@ import React, { useEffect } from 'react'; import { useSelector } from 'react-redux'; -import { useParams } from 'react-router'; -import { useHistory } from 'react-router-dom'; +import { useHistory, useParams } from 'react-router'; import NotFound from 'Components/NotFound'; import usePrevious from 'Helpers/Hooks/usePrevious'; import createAllMoviesSelector from 'Store/Selectors/createAllMoviesSelector'; diff --git a/frontend/src/Movie/Index/MovieIndex.tsx b/frontend/src/Movie/Index/MovieIndex.tsx index 83e5502be..b3ea23546 100644 --- a/frontend/src/Movie/Index/MovieIndex.tsx +++ b/frontend/src/Movie/Index/MovieIndex.tsx @@ -6,6 +6,7 @@ import React, { useState, } from 'react'; import { useDispatch, useSelector } from 'react-redux'; +import { useHistory } from 'react-router'; import { SelectProvider } from 'App/SelectContext'; import ClientSideCollectionAppState from 'App/State/ClientSideCollectionAppState'; import MoviesAppState, { MovieIndexAppState } from 'App/State/MoviesAppState'; @@ -76,6 +77,8 @@ interface MovieIndexProps { } const MovieIndex = withScrollPosition((props: MovieIndexProps) => { + const history = useHistory(); + const { isFetching, isPopulated, @@ -107,7 +110,12 @@ const MovieIndex = withScrollPosition((props: MovieIndexProps) => { const [isSelectMode, setIsSelectMode] = useState(false); useEffect(() => { - dispatch(fetchMovies()); + if (history.action === 'PUSH') { + dispatch(fetchMovies()); + } + }, [history, dispatch]); + + useEffect(() => { dispatch(fetchQueueDetails({ all: true })); }, [dispatch]);