import React, {ReactElement, useEffect} from 'react'; import IJob, {JobTypeFromNumber} from "./interfaces/IJob"; import '../styles/queuePopUp.css'; import {Job} from "./Job"; import IManga from "./interfaces/IManga"; import {Manga} from "./Manga"; export default function QueuePopUp({closeQueue} : {closeQueue(): void}){ const [StandbyJobs, setStandbyJobs] = React.useState([]); const [StandbyJobsManga, setStandbyJobsManga] = React.useState([]); const [RunningJobs, setRunningJobs] = React.useState([]); const [RunningJobsManga, setRunningJobsManga] = React.useState([]); useEffect(() => { Job.GetStandbyJobs() .then(Job.GetJobs) .then(setStandbyJobs) .finally(() => console.debug(StandbyJobs)); Job.GetRunningJobs() .then(Job.GetJobs) .then(setRunningJobs) .finally(() => console.debug(RunningJobs)); }, []); useEffect(() => { if(StandbyJobs.length < 1) return; const mangaIds = StandbyJobs.filter(job => job.jobType<=1).map((job) => job.mangaInternalId != undefined ? job.mangaInternalId : job.chapter != undefined ? job.chapter.parentManga.internalId : ""); console.debug(`Waiting mangaIds: ${mangaIds.join(",")}`); Manga.GetMangaByIds(mangaIds) .then(setStandbyJobsManga); }, [StandbyJobs]); useEffect(() => { if(RunningJobs.length < 1) return; console.log(RunningJobs); const mangaIds = RunningJobs.filter(job => job.jobType<=1).map((job) => job.mangaInternalId != undefined ? job.mangaInternalId : job.chapter != undefined ? job.chapter.parentManga.internalId : ""); console.debug(`Running mangaIds: ${mangaIds.join(",")}`); Manga.GetMangaByIds(mangaIds) .then(setRunningJobsManga); }, [RunningJobs]); return (

Queue Status

Close Search

Running

{RunningJobs.map((job: IJob) => { const manga = RunningJobsManga.find(manga => manga.internalId == job.mangaInternalId || manga.internalId == job.chapter?.parentManga.internalId); if (manga === undefined || manga === null) return
Error. Could not find matching manga for {job.id}
return

{JobTypeFromNumber(job.jobType)}

; })}

Standby

{StandbyJobs.map((job: IJob) => { const manga = StandbyJobsManga.find(manga => manga.internalId == job.mangaInternalId || manga.internalId == job.chapter?.parentManga.internalId); if (manga === undefined || manga === null) return
Error. Could not find matching manga for {job.id}
return

{JobTypeFromNumber(job.jobType)}

; })}
); }