From 2966be4fc48d3ef27798dbbd543b6868dbb5a2c9 Mon Sep 17 00:00:00 2001 From: ajnart Date: Mon, 6 Jun 2022 15:34:24 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20support=20for=20multiple=20sa?= =?UTF-8?q?me=20service=20in=20Calendar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes Calendar Support for Multiple Sonarr / Radarr #176 --- .../modules/calendar/CalendarModule.tsx | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/components/modules/calendar/CalendarModule.tsx b/src/components/modules/calendar/CalendarModule.tsx index a9600ef43..2f6e61f87 100644 --- a/src/components/modules/calendar/CalendarModule.tsx +++ b/src/components/modules/calendar/CalendarModule.tsx @@ -28,10 +28,10 @@ export default function CalendarComponent(props: any) { const [lidarrMedias, setLidarrMedias] = useState([] as any); const [radarrMedias, setRadarrMedias] = useState([] as any); const [readarrMedias, setReadarrMedias] = useState([] as any); - const sonarrService = config.services.filter((service) => service.type === 'Sonarr').at(0); - const radarrService = config.services.filter((service) => service.type === 'Radarr').at(0); - const lidarrService = config.services.filter((service) => service.type === 'Lidarr').at(0); - const readarrService = config.services.filter((service) => service.type === 'Readarr').at(0); + const sonarrServices = config.services.filter((service) => service.type === 'Sonarr'); + const radarrServices = config.services.filter((service) => service.type === 'Radarr'); + const lidarrServices = config.services.filter((service) => service.type === 'Lidarr'); + const readarrServices = config.services.filter((service) => service.type === 'Readarr'); function getMedias(service: serviceItem | undefined, type: string) { if (!service || !service.apiKey) { @@ -44,10 +44,26 @@ export default function CalendarComponent(props: any) { // Filter only sonarr and radarr services // Get the url and apiKey for all Sonarr and Radarr services - getMedias(sonarrService, 'sonarr').then((res) => setSonarrMedias(res.data)); - getMedias(radarrService, 'radarr').then((res) => setRadarrMedias(res.data)); - getMedias(lidarrService, 'lidarr').then((res) => setLidarrMedias(res.data)); - getMedias(readarrService, 'readarr').then((res) => setReadarrMedias(res.data)); + sonarrServices.map((service) => + getMedias(service, 'sonarr').then((res) => { + setSonarrMedias([...sonarrMedias, ...res.data]); + }) + ); + radarrServices.map((service) => + getMedias(service, 'radarr').then((res) => { + setRadarrMedias([...radarrMedias, ...res.data]); + }) + ); + lidarrServices.map((service) => + getMedias(service, 'lidarr').then((res) => { + setLidarrMedias([...lidarrMedias, ...res.data]); + }) + ); + readarrServices.map((service) => + getMedias(service, 'readarr').then((res) => { + setReadarrMedias([...readarrMedias, ...res.data]); + }) + ); }, [config.services]); return (