sendou.ink/app/components
Kalle 747a63edbc Show current route's chat in room list even when expired
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.
2026-05-02 11:36:56 +03:00
..
elements Make date time format apply everywhere (#3023) 2026-05-01 10:11:29 +03:00
fuse Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
icons Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
layout Show current route's chat in room list even when expired 2026-05-02 11:36:56 +03:00
AbilitiesSelector.module.css Migrate to nested CSS 2026-03-28 16:30:28 +02:00
AbilitiesSelector.tsx BIome v2 upgrade 2025-06-22 16:49:27 +03:00
Ability.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Ability.tsx BIome v2 upgrade 2025-06-22 16:49:27 +03:00
Alert.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Alert.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Avatar.module.css Migrate to nested CSS 2026-03-28 16:30:28 +02:00
Avatar.tsx Replace useIsMounted with useHydrated 2026-03-28 07:44:52 +02:00
Badge.tsx BIome v2 upgrade 2025-06-22 16:49:27 +03:00
BuildCard.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
BuildCard.tsx Make date time format apply everywhere (#3023) 2026-05-01 10:11:29 +03:00
Catcher.tsx Fix useEffect loop on 401 error 2026-03-30 20:06:58 +03:00
Chart.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Chart.tsx Make date time format apply everywhere (#3023) 2026-05-01 10:11:29 +03:00
CopyToClipboardPopover.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
CustomThemeSelector.module.css Migrate to nested CSS 2026-03-28 16:30:28 +02:00
CustomThemeSelector.tsx Disable custom theme submit buttons when request sent 2026-04-02 17:34:15 +03:00
DateInput.tsx Replace useIsMounted with useHydrated 2026-03-28 07:44:52 +02:00
Divider.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Divider.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
EventsList.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
EventsList.tsx Make date time format apply everywhere (#3023) 2026-05-01 10:11:29 +03:00
Flag.tsx Fix leaderboards crash for season 0 2025-06-30 21:35:31 +03:00
FormErrors.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
FormErrors.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
FormMessage.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
FormMessage.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
FormWithConfirm.tsx Replace useIsMounted with useHydrated 2026-03-28 07:44:52 +02:00
FriendCodeInput.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
FriendCodePopover.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
GearSelect.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Image.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Image.tsx Bye bye .png 2026-03-29 16:48:47 +03:00
InfoPopover.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
InfoPopover.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Input.module.css Fix input addon border radius 2026-03-30 20:24:58 +03:00
Input.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Label.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Label.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Main.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Main.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
MapPoolSelector.module.css Fix tournament register tab map pool styles 2026-04-21 08:59:58 +03:00
MapPoolSelector.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Markdown.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
MobileNav.module.css Migrate to nested CSS 2026-03-28 16:30:28 +02:00
MobileNav.tsx Fix mobile chat input below keyboard 2026-03-20 16:58:46 +02:00
NotificationDot.module.css Improve performance when notification dots are visible on-screen (#2941) 2026-04-06 10:12:08 +03:00
NotificationDot.tsx Improve performance when notification dots are visible on-screen (#2941) 2026-04-06 10:12:08 +03:00
Pagination.module.css Migrate to nested CSS 2026-03-28 16:30:28 +02:00
Pagination.tsx Add friends widget 2026-03-29 17:59:57 +03:00
Placeholder.module.css Refactor tournament realtime from SSE to Websocket (#2469) 2025-08-28 18:59:34 +03:00
Placeholder.tsx Refactor tournament realtime from SSE to Websocket (#2469) 2025-08-28 18:59:34 +03:00
Placement.tsx Add badges on tournament finalize (#2459) 2025-07-19 13:33:58 +03:00
Redirect.tsx Upgrade to React Router 7 (#2681) 2025-12-29 19:21:11 +02:00
RelativeTime.tsx Make date time format apply everywhere (#3023) 2026-05-01 10:11:29 +03:00
RequiredHiddenInput.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
RequiredHiddenInput.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Section.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Section.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
SideNav.module.css Improve logo animation smoothness (no clipping) 2026-03-29 17:34:24 +03:00
SideNav.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
StageSelect.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
StageSelect.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
StreamListItems.module.css Migrate to nested CSS 2026-03-28 16:30:28 +02:00
StreamListItems.tsx Make date time format apply everywhere (#3023) 2026-05-01 10:11:29 +03:00
SubmitButton.tsx Upgrade to React Router 7 (#2681) 2025-12-29 19:21:11 +02:00
SubNav.module.css Migrate to nested CSS 2026-03-28 16:30:28 +02:00
SubNav.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Table.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
Table.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
TierPill.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
TierPill.tsx Tournament tiers (#2758) 2026-01-22 20:04:26 +02:00
TimePopover.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
TimePopover.tsx Make date time format apply everywhere (#3023) 2026-05-01 10:11:29 +03:00
WeaponSelect.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
WeaponSelect.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
YouTubeEmbed.module.css Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00
YouTubeEmbed.tsx Design refresh + a bunch of stuff (#2864) 2026-03-19 17:51:42 +02:00