diff --git a/src/components/search/LiveTVSearchResults.tsx b/src/components/search/LiveTVSearchResults.tsx deleted file mode 100644 index f26464ff22..0000000000 --- a/src/components/search/LiveTVSearchResults.tsx +++ /dev/null @@ -1,191 +0,0 @@ -import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client'; -import type { ApiClient } from 'jellyfin-apiclient'; -import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collection-type'; -import classNames from 'classnames'; -import React, { type FC, useCallback, useEffect, useState } from 'react'; -import { useDebounceValue } from 'usehooks-ts'; - -import globalize from '../../scripts/globalize'; -import ServerConnections from '../ServerConnections'; -import SearchResultsRow from './SearchResultsRow'; - -const CARD_OPTIONS = { - preferThumb: true, - inheritThumb: false, - showParentTitleOrTitle: true, - showTitle: false, - coverImage: true, - overlayMoreButton: true, - showAirTime: true, - showAirDateTime: true, - showChannelName: true -}; - -type LiveTVSearchResultsProps = { - serverId?: string; - parentId?: string | null; - collectionType?: string | null; - query?: string; -}; - -/* - * React component to display search result rows for live tv library search - */ -const LiveTVSearchResults: FC = ({ serverId = window.ApiClient.serverId(), parentId, collectionType, query }: LiveTVSearchResultsProps) => { - const [ movies, setMovies ] = useState([]); - const [ episodes, setEpisodes ] = useState([]); - const [ sports, setSports ] = useState([]); - const [ kids, setKids ] = useState([]); - const [ news, setNews ] = useState([]); - const [ programs, setPrograms ] = useState([]); - const [ channels, setChannels ] = useState([]); - const [ debouncedQuery ] = useDebounceValue(query, 500); - - const getDefaultParameters = useCallback(() => ({ - ParentId: parentId, - searchTerm: debouncedQuery, - Limit: 24, - Fields: 'PrimaryImageAspectRatio,CanDelete,MediaSourceCount', - Recursive: true, - EnableTotalRecordCount: false, - ImageTypeLimit: 1, - IncludePeople: false, - IncludeMedia: false, - IncludeGenres: false, - IncludeStudios: false, - IncludeArtists: false - }), [ parentId, debouncedQuery ]); - - useEffect(() => { - const fetchItems = (apiClient: ApiClient, params = {}) => apiClient?.getItems( - apiClient?.getCurrentUserId(), - { - ...getDefaultParameters(), - IncludeMedia: true, - ...params - } - ); - - // Reset state - setMovies([]); - setEpisodes([]); - setSports([]); - setKids([]); - setNews([]); - setPrograms([]); - setChannels([]); - - if (!debouncedQuery || collectionType !== CollectionType.Livetv) { - return; - } - - const apiClient = ServerConnections.getApiClient(serverId); - - // Movies row - fetchItems(apiClient, { - IncludeItemTypes: 'LiveTvProgram', - IsMovie: true - }) - .then(result => setMovies(result.Items || [])) - .catch(() => setMovies([])); - // Episodes row - fetchItems(apiClient, { - IncludeItemTypes: 'LiveTvProgram', - IsMovie: false, - IsSeries: true, - IsSports: false, - IsKids: false, - IsNews: false - }) - .then(result => setEpisodes(result.Items || [])) - .catch(() => setEpisodes([])); - // Sports row - fetchItems(apiClient, { - IncludeItemTypes: 'LiveTvProgram', - IsSports: true - }) - .then(result => setSports(result.Items || [])) - .catch(() => setSports([])); - // Kids row - fetchItems(apiClient, { - IncludeItemTypes: 'LiveTvProgram', - IsKids: true - }) - .then(result => setKids(result.Items || [])) - .catch(() => setKids([])); - // News row - fetchItems(apiClient, { - IncludeItemTypes: 'LiveTvProgram', - IsNews: true - }) - .then(result => setNews(result.Items || [])) - .catch(() => setNews([])); - // Programs row - fetchItems(apiClient, { - IncludeItemTypes: 'LiveTvProgram', - IsMovie: false, - IsSeries: false, - IsSports: false, - IsKids: false, - IsNews: false - }) - .then(result => setPrograms(result.Items || [])) - .catch(() => setPrograms([])); - // Channels row - fetchItems(apiClient, { IncludeItemTypes: 'TvChannel' }) - .then(result => setChannels(result.Items || [])) - .catch(() => setChannels([])); - }, [collectionType, debouncedQuery, getDefaultParameters, parentId, serverId]); - - return ( -
- - - - - - - -
- ); -}; - -export default LiveTVSearchResults;