import React, {useEffect, useState} from 'react'; import {Button, Col, Container, FormCheck, FormSelect, Modal, Row} from 'react-bootstrap'; import axios from "axios"; import {useToast} from "../hooks/useToast"; const movieMonitor = [ { id: "movieAndCollection", name: "Все части" }, { id: "movieOnly", name: "Только этот фильм" } ] const RecommendationModal = ({show, handleClose, item, serial, handleSave}) => { const [movieQuality, setMovieQuality] = useState([]) const [quality, setQuality] = useState(null) const [monitor, setMonitor] = useState(null) const [film, setFilm] = useState(false) const {addToast} = useToast(); useEffect(() => { axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/qualityprofile`, { headers: { 'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}` } }) .then((r) => { setMovieQuality(r.data) }) .catch(console.error); }, []); const handleSubmit = () => { const request = !serial ? createMovieRequest : null; request() .then(res => { axios.post(`${process.env.REACT_APP_RADARR_HOST}/api/v3/movie`, res, {headers: {'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}`}}) .then(() => handleSave(item, serial)) .catch((err) => addToast(err, 'danger')); }) .catch((err) => addToast(err, 'danger')); } const createMovieRequest = async () => { if(!monitor) { // eslint-disable-next-line no-throw-literal throw 'Проверьте пункт отслеживания'; } if(!quality) { // eslint-disable-next-line no-throw-literal throw 'Необходимо указать качество'; } let request = item; request.id = 0; request.monitored = true; request.qualityProfileId = quality; request.minimumAvailability = "released" request.addOptions = { monitor: monitor, searchForMovie: true } const folders = await axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/rootFolder`, {headers: {'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}`}}); request.rootFolderPath = folders.data.find((d) => d.path.includes(film ? "film" : "mult")).path; const tags = await axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/tag`, {headers: {'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}`}}); request.tags = tags.data.filter((t) => t.label === (film ? "film" : "mult")).map((t) => t.id) return request; } if(!item) { return null; } return ( {item.title} {item.title}/

{item.overview}

Мультик

setFilm(!film)}/>

Фильм

Что отслеживать

setMonitor(e.target.value)}> {movieMonitor.map((m) => )}

Качество

setQuality(parseInt(e.target.value))}> {movieQuality.map((quality) => )}
); }; export default RecommendationModal;