X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=resources%2Fjs%2Fcomponents%2Fpages%2FTournament.js;h=7abd5e437b25bf8454e49810d9a2e12cde88a30a;hb=18cd02860ba7889360ce3547b44faa0daa807a5e;hp=440e53af5803cddc65af01287617d47645c6383d;hpb=3a774bb649734fc3a2135ec1b52cef9a049880ee;p=alttp.git diff --git a/resources/js/components/pages/Tournament.js b/resources/js/components/pages/Tournament.js index 440e53a..7abd5e4 100644 --- a/resources/js/components/pages/Tournament.js +++ b/resources/js/components/pages/Tournament.js @@ -1,5 +1,6 @@ import axios from 'axios'; import React, { useEffect, useState } from 'react'; +import { Helmet } from 'react-helmet'; import { useParams } from 'react-router-dom'; import ErrorBoundary from '../common/ErrorBoundary'; @@ -13,6 +14,7 @@ import { patchResult, patchRound, patchUser, + removeApplication, sortParticipants, } from '../../helpers/Tournament'; @@ -25,9 +27,10 @@ const Tournament = () => { const [tournament, setTournament] = useState(null); useEffect(() => { + const ctrl = new AbortController(); setLoading(true); axios - .get(`/api/tournaments/${id}`) + .get(`/api/tournaments/${id}`, { signal: ctrl.signal }) .then(response => { setError(null); setLoading(false); @@ -38,6 +41,9 @@ const Tournament = () => { setLoading(false); setTournament(null); }); + return () => { + ctrl.abort(); + }; }, [id]); useEffect(() => { @@ -52,7 +58,13 @@ const Tournament = () => { setTournament(tournament => patchApplication(tournament, e.application)); } }) + .listen('ApplicationRemoved', e => { + if (e.application_id) { + setTournament(tournament => removeApplication(tournament, e.application_id)); + } + }) .listen('ParticipantChanged', e => { + console.log(e); if (e.participant) { setTournament(tournament => patchParticipant(tournament, e.participant)); } @@ -116,6 +128,9 @@ const Tournament = () => { }; return + + {tournament.title} + ; };