]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/components/pages/Tournament.js
application admin UI
[alttp.git] / resources / js / components / pages / Tournament.js
index 6e32227ab2d04d330b8025dc16744fdbbee5d606..00a19343c11b1c99c59d59937946f6ce85f89b17 100644 (file)
@@ -7,7 +7,15 @@ import ErrorMessage from '../common/ErrorMessage';
 import Loading from '../common/Loading';
 import NotFound from '../pages/NotFound';
 import Detail from '../tournament/Detail';
-import { patchResult, patchRound, patchUser, sortParticipants } from '../../helpers/Tournament';
+import {
+       patchApplication,
+       patchParticipant,
+       patchResult,
+       patchRound,
+       patchUser,
+       removeApplication,
+       sortParticipants,
+} from '../../helpers/Tournament';
 
 const Tournament = () => {
        const params = useParams();
@@ -25,6 +33,7 @@ const Tournament = () => {
                                setError(null);
                                setLoading(false);
                                setTournament(sortParticipants(response.data));
+                               window.document.title = response.data.title;
                        })
                        .catch(error => {
                                setError(error);
@@ -35,7 +44,28 @@ const Tournament = () => {
 
        useEffect(() => {
                window.Echo.channel(`Tournament.${id}`)
-                       .listen('ResultReported', e => {
+                       .listen('ApplicationAdded', e => {
+                               if (e.application) {
+                                       setTournament(tournament => patchApplication(tournament, e.application));
+                               }
+                       })
+                       .listen('ApplicationChanged', e => {
+                               if (e.application) {
+                                       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));
+                               }
+                       })
+                       .listen('ResultChanged', e => {
                                if (e.result) {
                                        setTournament(tournament => patchResult(tournament, e.result));
                                }