Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | import React from "react"; import { useTranslation } from "react-i18next"; import { useQuery, UseQueryResult } from "@tanstack/react-query"; import useUserStore from "@/store/useUserStore"; import useFiltersStore from "@/store/useFiltersStore"; import useInfiniteMovieQuery from "@/queries/useInfiniteMovieQuery"; import { IApiFunction, IAccount } from "@/interfaces"; const useHome = (apiFunctions: IApiFunction) => { const { i18n, t } = useTranslation(); const { sortBy, releaseDate, selectedGenres } = useFiltersStore(); const { isAuthenticated, sessionId, accentColor } = useUserStore(); const [openDialog, setOpenDialog] = React.useState<boolean>(false); const { data: accountData }: UseQueryResult<IAccount> = useQuery({ queryKey: [apiFunctions.getAccountDetails.key, sessionId], queryFn: () => apiFunctions.getAccountDetails.func(sessionId), enabled: isAuthenticated, }); const { data: moviesData, error, fetchNextPage, hasNextPage, isFetchingNextPage, status, } = useInfiniteMovieQuery( [ apiFunctions.getMovies.key, sortBy, selectedGenres, releaseDate.start, releaseDate.end, i18n.language, ], ({ pageParam }: { pageParam: number }) => apiFunctions.getMovies.func({ sortBy: sortBy, selectedGenres: selectedGenres, startDate: releaseDate.start, endDate: releaseDate.end, selectedLanguage: i18n.language, page: pageParam, }) ); React.useEffect(() => { Iif (accountData) useUserStore.setState({ accountId: accountData.id, username: accountData?.username, }); }, [accountData]); return { t, accentColor, openDialog, setOpenDialog, moviesData, error, fetchNextPage, hasNextPage, isFetchingNextPage, status, }; }; export default useHome; |