Не получается отправить полученные данные из useState в функцию prepare() - для предподготовки данных для парсинга

const PageDetailMovie = () => {
    const {id} = useParams<ID>();
    const [film, setFilm] = useState<IShow | []>([]);

    useEffect(() => {
       getFilmsOnce(id).then(response => {
           setFilm(response.data)
       })
    }, [id]);

    console.log(film);
    
    const { routeId, nameFilm, yearFilm, countryFilm, genresFilm, imageFilm} = prepareData(film);

    return (
       
    )
};

** постоянно ошибка при диструктуризации const film: IShow | [] Аргумент типа "IShow | []" нельзя назначить параметру типа "IShow". Тип "[]" не может быть назначен для типа "IShow".ts(2345)**

import { IShow } from "types/API_Films/Interface/IShow";

const prepareData = (data: IShow) => {
    const apiPrepare = {
        routeId: data.id.toString(),
        nameFilm: data.name ? data.name.toUpperCase() : "информация отсутствует",
        yearFilm: data.premiered ? data.premiered.slice(0,4) : " - ",
        countryFilm: data.network?.country.name ? "("+ data.network.country.name +")" : " - ",
        genresFilm: data.genres.join(" "),
        summaryFilm: data.summary ? data.summary.replace(/<[^>]+>/g, '') : " - ",
        ratingFilm: data.rating.average ? data.rating.average.toString() + "/10" : "Рейтинг отстутствует",
        imageFilm: data.image?.medium ? data.image?.medium : data.name,
    }

    return apiPrepare;
} 

export default prepareData;
import {IImage} from "./IImage";
import { IRating } from "./IRating";
import { INetwork } from "./INetwork";

export interface IShow {
    id:             number | string;
    name:           string | undefined;
    genres:         string[];
    premiered:      string | null;
    rating:         IRating;
    image:          IImage | null;
    summary:        string | null;
    network:        INetwork | null;
};

Ответы (0 шт):