Non-participants (e.g. tournament organizers) viewing a tournament
match chat could see the chat auto-open correctly, but clicking the
back arrow to the room list left the chat invisible — the only way
back was to leave the route and return.
The match chat appears in chatContext.rooms via the SUBSCRIBE
response, which (unlike the initial-payload path that participants
go through) does not check room expiry on the skalop side. So an
organizer viewing an old match ends up with an expired room in
their rooms list. ChatView already handles this gracefully with a
read-only banner, but RoomList was filtering on
expiresAt > Date.now() and dropping it.
Cleanup in useChatRouteSync removes the room from chatContext.rooms
on navigation, so exempting the current route's chatCode from the
expiry filter only affects the page that subscribed to it.
In round robin, all matches are set to have both participants at the start.
If the bracket is larger e.g. 5 rounds then later rounds might have chat
disappearing before teams get a chance to play it.
Closes#3005
* Initial
* Progress
* Initial UI
* Can submit request
* Progress
* Show text if no scrims
* Can cancel request, tabs
* Delete post
* Popover if can't delete
* Request rows
* Progress
* Scrim page initial
* Fix migration order
* Progress
* Progress
* Works again
* Make it compile
* Make it compile again
* Work
* Progress
* Progress
* Progress
* Associations initial
* Association visibility work
* notFoundVisibility form fields initial
* Progress
* Association leave/join + reset invite code
* Progress
* Select test
* Merge branch 'rewrite' into scrims
* Remeda for groupBy
* Select with search
* Outline styling for select
* Select done?
* Fix prop names
* Paginated badges
* Less important
* Select no results
* Handle limiting select width
* UserSearch non-working
* Fix problem from merge
* Remove UserSearch for now
* Remove todo
* Flaggable
* Remove TODOs
* i18n start + styling
* Progress
* i18n done
* Add association e2e test
* E2E tests
* Done?
* Couple leftovers
* Fixed slider border
* Implemented volume slider
* Mounted check
* Added IsBrowser helper function
* Fix for Firefox not supporting TouchEvent
* Removed IsBrowser function again cause it works without it now I guess lol
* Ran prettier
* Removed useEffect
* Switched from defaultValue to value
* Set default value
* Removed useEffect import
* Ignore audio promises
---------
Co-authored-by: hfcRed <hfcred@gmx.net>
* Migrations
* Arrange admin UI
* Load staff from DB
* Fix TODO
* Can add/remove staff
* isTournamentAdmin / isTournamentOrganizer
* Show chat to streamer
* User titles in the chat
* chat name color
* Unique constraint
* TO Staff E2E tests
* Casts on stream page
* Streamer test
* Fix test
This broke after upgrading deps and couldn't figure it out with a quick look.
It just makes it a bit more convenient when adding new pages & debugging
but not really that necessary so decided to delete it for now.