Files
mtdb_movie/resources/client/titles/requests/use-season-episodes.ts
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

33 lines
1.1 KiB
TypeScript
Executable File

import {useInfiniteData} from '@common/ui/infinite-scroll/use-infinite-data';
import {PaginationResponse} from '@common/http/backend-response/pagination-response';
import {Episode} from '@app/titles/models/episode';
import {useParams} from 'react-router-dom';
import {seasonQueryKey} from '@app/seasons/requests/use-season';
interface Props {
titleId?: number | string;
season?: number | string;
willSortOrFilter?: boolean;
defaultOrderBy?: string;
defaultOrderDir?: 'desc' | 'asc';
}
export function useSeasonEpisodes(
initialPage?: PaginationResponse<Episode>,
queryParams?: Record<string, string | number>,
props: Props = {}
) {
const urlParams = useParams();
const titleId = props.titleId || urlParams.titleId;
const season = props.season || urlParams.season;
return useInfiniteData<Episode>({
initialPage,
willSortOrFilter: props.willSortOrFilter,
defaultOrderBy: props.defaultOrderBy,
defaultOrderDir: props.defaultOrderDir,
endpoint: `titles/${titleId}/seasons/${season}/episodes`,
queryKey: [...seasonQueryKey(titleId!, season!), 'episodes'],
queryParams,
});
}