import React, {useEffect, useState} from 'react'; import {Accordion, Badge, Col, Container, Row} from "react-bootstrap"; import CardCompact from "../components/CardCompact"; import {useToast} from "../hooks/useToast"; import {SkeletonCompact} from "../components/SkeletonCompact"; import {radarr, sonarr} from "../contexts/client"; const Home = () => { const [loadingTv, setLoadingTv] = useState(false); const [loadingMovies, setLoadingMovies] = useState(false); const [movies, setMovies] = useState([]); const [tv, setTv] = useState([]); const {addToast} = useToast(); // На будущую реализацию удаления // api/v3/movie/68?deleteFiles=true&addImportExclusion=false useEffect(() => { setLoadingMovies(true); setLoadingTv(true); radarr().get("api/v3/movie") .then((r) => setMovies(r.data)) .catch((err) => addToast(err, 'alert')) .finally(() => setLoadingMovies(false)); sonarr().get("api/v3/series") .then((r) => setTv(r.data)) .catch((err) => addToast(err, 'alert')) .finally(() => setLoadingTv(false)); // eslint-disable-next-line }, []); return ( Фильмы {loadingMovies ? ( // Отображаем 10 скелетонов Array.from({length: 10}, (_, index) => ( )) ) : movies?.map(rec => ( ))} Сериалы {loadingTv ? ( // Отображаем 10 скелетонов Array.from({length: 10}, (_, index) => ( )) ) : tv.length > 0 ? tv.map(rec => ( )) : Функционал для сериалов пока не реализован} ); }; export default Home;