import React, { useCallback, useState } from 'react'; import AddSeries from 'AddSeries/AddSeries'; import { useAppDimension } from 'App/appStore'; import HeartRating from 'Components/HeartRating'; import Icon from 'Components/Icon'; import Label from 'Components/Label'; import Link from 'Components/Link/Link'; import MetadataAttribution from 'Components/MetadataAttribution'; import { icons, kinds, sizes } from 'Helpers/Props'; import { Statistics } from 'Series/Series'; import SeriesGenres from 'Series/SeriesGenres'; import SeriesPoster from 'Series/SeriesPoster'; import useExistingSeries from 'Series/useExistingSeries'; import translate from 'Utilities/String/translate'; import AddNewSeriesModal from './AddNewSeriesModal'; import styles from './AddNewSeriesSearchResult.css'; interface AddNewSeriesSearchResultProps { series: AddSeries; } function AddNewSeriesSearchResult({ series }: AddNewSeriesSearchResultProps) { const { tvdbId, titleSlug, title, year, network, originalLanguage, genres = [], status, statistics = {} as Statistics, ratings, overview, seriesType, images, isExcluded, } = series; const isExistingSeries = useExistingSeries(tvdbId); const isSmallScreen = useAppDimension('isSmallScreen'); const [isNewAddSeriesModalOpen, setIsNewAddSeriesModalOpen] = useState(false); const seasonCount = statistics.seasonCount; const handlePress = useCallback(() => { setIsNewAddSeriesModalOpen(true); }, []); const handleAddSeriesModalClose = useCallback(() => { setIsNewAddSeriesModalOpen(false); }, []); const handleTvdbLinkPress = useCallback((event: React.SyntheticEvent) => { event.stopPropagation(); }, []); const linkProps = isExistingSeries ? { to: `/series/${titleSlug}` } : { onPress: handlePress }; let seasons = translate('OneSeason'); if (seasonCount > 1) { seasons = translate('CountSeasons', { count: seasonCount }); } return (