X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Fpages%2FSchedule.js;h=c27a384a5fdddc8bbd527abb97e550b5e1057ee1;hb=3dc03a6a0d6ec624c1c66d96691af6a09d461302;hp=14d0891707e23a59da9b444c6c9cb5b115bd293d;hpb=dec43db11e9433f5bfcfaa091518082559cb3169;p=alttp.git diff --git a/resources/js/components/pages/Schedule.js b/resources/js/components/pages/Schedule.js index 14d0891..c27a384 100644 --- a/resources/js/components/pages/Schedule.js +++ b/resources/js/components/pages/Schedule.js @@ -16,8 +16,7 @@ const Schedule = () => { const { t } = useTranslation(); - React.useEffect(() => { - const controller = new AbortController(); + const fetchEpisodes = React.useCallback((controller, ahead, behind) => { axios.get(`/api/episodes`, { signal: controller.signal, params: { @@ -31,10 +30,19 @@ const Schedule = () => { console.error(e); } }); + }, [setEpisodes]); + + React.useEffect(() => { + const controller = new AbortController(); + fetchEpisodes(controller, ahead, behind); + const timer = setInterval(() => { + fetchEpisodes(controller, ahead, behind); + }, 5 * 60 * 1000); return () => { controller.abort(); + clearInterval(timer); }; - }, [ahead, behind]); + }, [ahead, behind, fetchEpisodes]); return