+
{item.overview}
@@ -126,7 +119,7 @@ const RecommendationModal = ({show, handleClose, item, serial, handleSave}) => {
-
+
diff --git a/src/components/SceletonCompact.js b/src/components/SceletonCompact.js
deleted file mode 100644
index 0d0dd2c..0000000
--- a/src/components/SceletonCompact.js
+++ /dev/null
@@ -1,16 +0,0 @@
-export function SceletonCompact() {
- return (
-
- )
-}
\ No newline at end of file
diff --git a/src/components/SkeletonCompact.js b/src/components/SkeletonCompact.js
new file mode 100644
index 0000000..c6e26ae
--- /dev/null
+++ b/src/components/SkeletonCompact.js
@@ -0,0 +1,18 @@
+import {Card, CardBody, CardImg, CardText, CardTitle, Placeholder} from "react-bootstrap";
+
+export function SkeletonCompact() {
+ return (
+
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/contexts/client.js b/src/contexts/client.js
new file mode 100644
index 0000000..2e1590c
--- /dev/null
+++ b/src/contexts/client.js
@@ -0,0 +1,23 @@
+import axios from "axios";
+
+const host = "192.168.1.100:30011";
+// const host = "tracker.kayashov.keenetic.pro";
+
+export const radarr = () => {
+ const res = axios;
+ // res.defaults.baseURL = `${window.location.protocol}//${host}/radarr/`;
+ res.defaults.baseURL = `${window.location.protocol}//${host}/`;
+ res.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
+ res.defaults.headers.common['X-Api-Key'] = process.env.REACT_APP_RADARR_API_KEY;
+ res.defaults.headers.common['Accept'] = 'application/json';
+ return res;
+}
+
+export const sonarr = () => {
+ const res = axios;
+ res.defaults.baseURL = `${window.location.protocol}//${host}/sonarr/`;
+ res.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
+ res.defaults.headers.common['X-Api-Key'] = process.env.REACT_APP_RADARR_API_KEY;
+ res.defaults.headers.common['Accept'] = 'application/json';
+ return res;
+}
\ No newline at end of file
diff --git a/src/pages/HomePage.js b/src/pages/HomePage.js
index 4611a0b..3ed98e6 100644
--- a/src/pages/HomePage.js
+++ b/src/pages/HomePage.js
@@ -1,9 +1,9 @@
import React, {useEffect, useState} from 'react';
import {Accordion, Badge, Col, Container, Row} from "react-bootstrap";
import CardCompact from "../components/CardCompact";
-import axios from "axios";
import {useToast} from "../hooks/useToast";
-import {SceletonCompact} from "../components/SceletonCompact";
+import {SkeletonCompact} from "../components/SkeletonCompact";
+import {radarr} from "../contexts/client";
const Home = () => {
const [loading, setLoading] = useState(false);
@@ -13,8 +13,7 @@ const Home = () => {
useEffect(() => {
setLoading(true);
- axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/movie`,
- {headers: {'X-Api-Key': process.env.REACT_APP_RADARR_API_KEY}})
+ radarr().get("api/v3/movie")
.then((r) => setMovies(r.data))
.catch((err) => addToast(err, 'alert'))
.finally(() => setLoading(false));
@@ -35,7 +34,7 @@ const Home = () => {
// Отображаем 10 скелетонов
Array.from({length: 10}, (_, index) => (
-
+
))
)
diff --git a/src/pages/RecommendationPage.js b/src/pages/RecommendationPage.js
index 7548f62..302156e 100644
--- a/src/pages/RecommendationPage.js
+++ b/src/pages/RecommendationPage.js
@@ -1,10 +1,10 @@
import React, {useEffect, useState} from 'react';
-import axios from "axios";
import CardCompact from "../components/CardCompact";
-import {SceletonCompact} from "../components/SceletonCompact";
+import {SkeletonCompact} from "../components/SkeletonCompact";
import RecommendationModal from "../components/RecommendationModal";
import {Col, Container, Row} from "react-bootstrap";
import {useToast} from "../hooks/useToast";
+import {radarr} from "../contexts/client";
export function Recommendation() {
const [recommendations, setRecommendations] = useState([]);
@@ -15,13 +15,9 @@ export function Recommendation() {
useEffect(() => {
setLoading(true);
- axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/importlist/movie?includeRecommendations=true&includeTrending=true&includePopular=true`,
- {
- headers: {
- 'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}`
- }
- }).then((r) => setRecommendations(r.data))
- .catch((err) => console.log(err))
+ radarr().get("api/v3/importlist/movie?includeRecommendations=true&includeTrending=true&includePopular=true")
+ .then((r) => setRecommendations(r.data))
+ .catch((err) => addToast(err, 'danger'))
.finally(() => setLoading(false));
}, []);
@@ -51,7 +47,7 @@ export function Recommendation() {
// Отображаем 10 скелетонов
Array.from({length: 10}, (_, index) => (
-
+
))
)
@@ -61,7 +57,8 @@ export function Recommendation() {
))}
-
+
);
}
\ No newline at end of file
diff --git a/src/pages/SearchPage.js b/src/pages/SearchPage.js
index 30eb164..d707d1c 100644
--- a/src/pages/SearchPage.js
+++ b/src/pages/SearchPage.js
@@ -1,9 +1,9 @@
import React, {useEffect, useMemo, useState} from 'react';
-import axios from "axios";
import CardExtend from "../components/CardExtend";
import {Alert, Container, InputGroup, Row} from "react-bootstrap";
import RecommendationModal from "../components/RecommendationModal";
import {useToast} from "../hooks/useToast";
+import {radarr} from "../contexts/client";
export function Search() {
const [query, setQuery] = useState('');
@@ -22,13 +22,7 @@ export function Search() {
return;
}
setLoadMovies(true);
- axios.get(`${process.env.REACT_APP_RADARR_HOST}/api/v3/movie/lookup?term=${query}}`,
- {
- headers: {
- // "Content-Type": "application/json",
- 'X-Api-Key': `${process.env.REACT_APP_RADARR_API_KEY}`
- }
- })
+ radarr().get(`api/v3/movie/lookup?term=${query}}`)
.then((r) => setResultMovies(r.data))
.catch((err) => setErrorMovies(err))
.finally(() => setLoadMovies(false));
@@ -89,7 +83,8 @@ export function Search() {
Результаты поиска
- {resultMovies.map(result => )}
+ {resultMovies.map(result => )}
)}
@@ -99,7 +94,8 @@ export function Search() {
Ничего не найдено
)}
-
+
);
}
\ No newline at end of file