X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;ds=inline;f=resources%2Fjs%2Fcomponents%2Fpages%2FTournament.js;h=00a19343c11b1c99c59d59937946f6ce85f89b17;hb=cd36cb0ba2718e6bfa08765e7702d57dfe7fd733;hp=11dc388c67d60c3832a977a7265a93033b7010ee;hpb=7016f4b28fa1324269ae9e2a8aad28dd562927d4;p=alttp.git diff --git a/resources/js/components/pages/Tournament.js b/resources/js/components/pages/Tournament.js index 11dc388..00a1934 100644 --- a/resources/js/components/pages/Tournament.js +++ b/resources/js/components/pages/Tournament.js @@ -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, 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)); } @@ -63,6 +93,20 @@ const Tournament = () => { }; }, [id]); + useEffect(() => { + const cb = (e) => { + if (e.user) { + setTournament(tournament => patchUser(tournament, e.user)); + } + }; + window.Echo.channel('App.Control') + .listen('UserChanged', cb); + return () => { + window.Echo.channel('App.Control') + .stopListening('UserChanged', cb); + }; + }, []); + if (loading) { return ; }