]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/components/pages/Tournament.js
first half of AoS generator
[alttp.git] / resources / js / components / pages / Tournament.js
index 729e55d138d856d2da8491a0a20f177831d05cee..061db2208a8a67ba35ddd05ff9fced3afd1323bf 100644 (file)
@@ -13,6 +13,7 @@ import {
        patchResult,
        patchRound,
        patchUser,
+       removeApplication,
        sortParticipants,
 } from '../../helpers/Tournament';
 
@@ -25,9 +26,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);
@@ -39,6 +41,9 @@ const Tournament = () => {
                                setLoading(false);
                                setTournament(null);
                        });
+               return () => {
+                       ctrl.abort();
+               };
        }, [id]);
 
        useEffect(() => {
@@ -53,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));
                                }