]> git.localhorst.tv Git - alttp.git/blobdiff - resources/js/components/pages/Tournament.js
add seed display
[alttp.git] / resources / js / components / pages / Tournament.js
index cdafd69b12c2414140f3dce96d07c87cd2e68bf2..aab442346149865aa01f5bc47185a56f6200eede 100644 (file)
@@ -7,6 +7,7 @@ import ErrorMessage from '../common/ErrorMessage';
 import Loading from '../common/Loading';
 import NotFound from '../pages/NotFound';
 import Detail from '../tournament/Detail';
+import { patchResult, sortParticipants } from '../../helpers/Tournament';
 
 const Tournament = () => {
        const params = useParams();
@@ -23,7 +24,7 @@ const Tournament = () => {
                        .then(response => {
                                setError(null);
                                setLoading(false);
-                               setTournament(response.data);
+                               setTournament(sortParticipants(response.data));
                        })
                        .catch(error => {
                                setError(error);
@@ -32,6 +33,27 @@ const Tournament = () => {
                        });
        }, [id]);
 
+       useEffect(() => {
+               window.Echo.private(`Tournament.${id}`)
+                       .listen('ResultReported', e => {
+                               console.log(e);
+                               if (e.result) {
+                                       setTournament(tournament => patchResult(tournament, e.result));
+                               }
+                       })
+                       .listen('RoundAdded', e => {
+                               if (e.round) {
+                                       setTournament(tournament => ({
+                                               ...tournament,
+                                               rounds: [...tournament.rounds, e.round],
+                                       }));
+                               }
+                       });
+               return () => {
+                       window.Echo.leave(`Tournament.${id}`);
+               };
+       }, [id]);
+
        if (loading) {
                return <Loading />;
        }