fix(blacklist): remove a "undefined" appearing when the blacklist modal closes (#1142)
This commit is contained in:
@@ -4,8 +4,8 @@ import defineMessages from '@app/utils/defineMessages';
|
|||||||
import { Transition } from '@headlessui/react';
|
import { Transition } from '@headlessui/react';
|
||||||
import type { MovieDetails } from '@server/models/Movie';
|
import type { MovieDetails } from '@server/models/Movie';
|
||||||
import type { TvDetails } from '@server/models/Tv';
|
import type { TvDetails } from '@server/models/Tv';
|
||||||
|
import { useEffect, useState } from 'react';
|
||||||
import { useIntl } from 'react-intl';
|
import { useIntl } from 'react-intl';
|
||||||
import useSWR from 'swr';
|
|
||||||
|
|
||||||
interface BlacklistModalProps {
|
interface BlacklistModalProps {
|
||||||
tmdbId: number;
|
tmdbId: number;
|
||||||
@@ -21,7 +21,7 @@ const messages = defineMessages('component.BlacklistModal', {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const isMovie = (
|
const isMovie = (
|
||||||
movie: MovieDetails | TvDetails | undefined
|
movie: MovieDetails | TvDetails | null
|
||||||
): movie is MovieDetails => {
|
): movie is MovieDetails => {
|
||||||
if (!movie) return false;
|
if (!movie) return false;
|
||||||
return (movie as MovieDetails).title !== undefined;
|
return (movie as MovieDetails).title !== undefined;
|
||||||
@@ -36,10 +36,25 @@ const BlacklistModal = ({
|
|||||||
isUpdating,
|
isUpdating,
|
||||||
}: BlacklistModalProps) => {
|
}: BlacklistModalProps) => {
|
||||||
const intl = useIntl();
|
const intl = useIntl();
|
||||||
|
const [data, setData] = useState<TvDetails | MovieDetails | null>(null);
|
||||||
|
const [error, setError] = useState(null);
|
||||||
|
|
||||||
const { data, error } = useSWR<TvDetails | MovieDetails>(
|
useEffect(() => {
|
||||||
show ? `/api/v1/${type}/${tmdbId}` : null
|
(async () => {
|
||||||
);
|
if (!show) return;
|
||||||
|
try {
|
||||||
|
setError(null);
|
||||||
|
const response = await fetch(`/api/v1/${type}/${tmdbId}`);
|
||||||
|
if (!response.ok) {
|
||||||
|
throw new Error();
|
||||||
|
}
|
||||||
|
const result = await response.json();
|
||||||
|
setData(result);
|
||||||
|
} catch (err) {
|
||||||
|
setError(err);
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
}, [show, tmdbId, type]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Transition
|
<Transition
|
||||||
|
|||||||
Reference in New Issue
Block a user