feat(frontend): add option to hide all available items from discovery (#699)

This commit is contained in:
sct
2021-01-20 18:56:45 +09:00
committed by GitHub
parent e1032ff5df
commit 6c1742e94c
19 changed files with 192 additions and 19 deletions

View File

@@ -5,6 +5,8 @@ import ListView from '../Common/ListView';
import { defineMessages, FormattedMessage } from 'react-intl';
import { LanguageContext } from '../../context/LanguageContext';
import Header from '../Common/Header';
import useSettings from '../../hooks/useSettings';
import { MediaStatus } from '../../../server/constants/media';
const messages = defineMessages({
discovertv: 'Popular Series',
@@ -18,6 +20,7 @@ interface SearchResult {
}
const DiscoverTv: React.FC = () => {
const settings = useSettings();
const { locale } = useContext(LanguageContext);
const { data, error, size, setSize } = useSWRInfinite<SearchResult>(
(pageIndex: number, previousPageData: SearchResult | null) => {
@@ -45,7 +48,18 @@ const DiscoverTv: React.FC = () => {
return <div>{error}</div>;
}
const titles = data?.reduce((a, v) => [...a, ...v.results], [] as TvResult[]);
let titles = (data ?? []).reduce(
(a, v) => [...a, ...v.results],
[] as TvResult[]
);
if (settings.currentSettings.hideAvailable) {
titles = titles.filter(
(i) =>
i.mediaInfo?.status !== MediaStatus.AVAILABLE &&
i.mediaInfo?.status !== MediaStatus.PARTIALLY_AVAILABLE
);
}
const isEmpty = !isLoadingInitialData && titles?.length === 0;
const isReachingEnd =