From 3d9995622b3dcc0510055aece175172967a2d603 Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Thu, 28 Aug 2025 18:59:34 +0300 Subject: [PATCH] Refactor tournament realtime from SSE to Websocket (#2469) --- app/components/Placeholder.module.css | 3 + app/components/Placeholder.tsx | 6 + .../build-analyzer/routes/analyzer.tsx | 3 +- app/features/chat/chat-hooks.ts | 217 ++++++++++++++++- app/features/chat/chat-types.ts | 29 ++- app/features/chat/components/Chat.tsx | 220 +----------------- app/features/map-planner/plans.css | 4 - app/features/map-planner/routes/plans.tsx | 3 +- .../sendouq-match/routes/q.match.$id.tsx | 4 +- .../sendouq-settings/routes/q.settings.tsx | 4 + app/features/sendouq/routes/q.looking.tsx | 3 +- .../actions/to.$id.brackets.server.ts | 27 ++- .../actions/to.$id.matches.$mid.server.ts | 55 ++--- .../components/StartedMatch.tsx | 3 +- .../components/TournamentTeamActions.tsx | 31 ++- .../core/emitters.server.ts | 11 - .../routes/to.$id.brackets.subscribe.ts | 33 --- .../routes/to.$id.brackets.tsx | 48 +--- .../routes/to.$id.matches.$mid.subscribe.ts | 30 --- .../routes/to.$id.matches.$mid.tsx | 46 +--- .../tournament-bracket-utils.ts | 14 +- app/features/tournament/routes/to.$id.tsx | 7 +- app/features/tournament/tournament.css | 4 - .../user-page/UserRepository.server.ts | 2 +- app/routes.ts | 8 - app/utils/urls.ts | 9 - docs/dev/architecture.md | 27 ++- locales/en/q.json | 1 + .../static-assets/sounds/tournament_match.wav | Bin 0 -> 247340 bytes 29 files changed, 414 insertions(+), 438 deletions(-) create mode 100644 app/components/Placeholder.module.css create mode 100644 app/components/Placeholder.tsx delete mode 100644 app/features/tournament-bracket/core/emitters.server.ts delete mode 100644 app/features/tournament-bracket/routes/to.$id.brackets.subscribe.ts delete mode 100644 app/features/tournament-bracket/routes/to.$id.matches.$mid.subscribe.ts create mode 100644 public/static-assets/sounds/tournament_match.wav diff --git a/app/components/Placeholder.module.css b/app/components/Placeholder.module.css new file mode 100644 index 000000000..2ba624aab --- /dev/null +++ b/app/components/Placeholder.module.css @@ -0,0 +1,3 @@ +.placeholder { + height: 100vh; +} diff --git a/app/components/Placeholder.tsx b/app/components/Placeholder.tsx new file mode 100644 index 000000000..d41c8da14 --- /dev/null +++ b/app/components/Placeholder.tsx @@ -0,0 +1,6 @@ +import styles from "./Placeholder.module.css"; + +/** Renders a blank placeholder component that can be used while content is loading. Better than returning null because it keeps the footer down where it belongs. */ +export function Placeholder() { + return
; +} diff --git a/app/features/build-analyzer/routes/analyzer.tsx b/app/features/build-analyzer/routes/analyzer.tsx index 940cd8110..2a9440922 100644 --- a/app/features/build-analyzer/routes/analyzer.tsx +++ b/app/features/build-analyzer/routes/analyzer.tsx @@ -86,6 +86,7 @@ import { import "../analyzer.css"; import * as R from "remeda"; import { SendouSwitch } from "~/components/elements/Switch"; +import { Placeholder } from "~/components/Placeholder"; import { WeaponSelect } from "~/components/WeaponSelect"; import { logger } from "~/utils/logger"; @@ -117,7 +118,7 @@ export default function BuildAnalyzerShell() { const isMounted = useIsMounted(); if (!isMounted) { - return null; + return ; } return ; diff --git a/app/features/chat/chat-hooks.ts b/app/features/chat/chat-hooks.ts index 8552a1c15..1df882f35 100644 --- a/app/features/chat/chat-hooks.ts +++ b/app/features/chat/chat-hooks.ts @@ -1,6 +1,13 @@ +import { useRevalidator } from "@remix-run/react"; +import { nanoid } from "nanoid"; +import { WebSocket } from "partysocket"; import React from "react"; +import invariant from "~/utils/invariant"; +import { logger } from "~/utils/logger"; +import { soundPath } from "~/utils/urls"; import { useUser } from "../auth/core/user"; -import type { ChatMessage } from "./chat-types"; +import type { ChatMessage, ChatProps } from "./chat-types"; +import { messageTypeToSound, soundEnabled, soundVolume } from "./chat-utils"; // increasing this = scrolling happens even when scrolled more upwards const THRESHOLD = 100; @@ -69,3 +76,211 @@ export function useChatAutoScroll( scrollToBottom, }; } + +// TODO: should contain unseen messages logic, now it's duplicated +export function useChat({ + rooms, + onNewMessage, + revalidates = true, + connected = true, +}: { + /** Which chat rooms to join. */ + rooms: ChatProps["rooms"]; + /** Callback function when a new chat message is received. Note: not fired for system messages. */ + onNewMessage?: (message: ChatMessage) => void; + /** If false, skips revalidating on new message. Can be used if more fine grained control is needed regarding when the revalidation happens to e.g. preserve local state. Defaults to true. */ + revalidates?: boolean; + /** If true, the chat is connected to the server. Defaults to true. */ + connected?: boolean; +}) { + const { revalidate } = useRevalidator(); + const shouldRevalidate = React.useRef(); + const user = useUser(); + + const [messages, setMessages] = React.useState([]); + const [readyState, setReadyState] = React.useState< + "CONNECTING" | "CONNECTED" | "CLOSED" + >("CONNECTING"); + const [sentMessage, setSentMessage] = React.useState(); + const [currentRoom, setCurrentRoom] = React.useState( + rooms[0]?.code, + ); + + const ws = React.useRef(); + const lastSeenMessagesByRoomId = React.useRef>(new Map()); + + // same principal as here behind separating it into a ref: https://overreacted.io/making-setinterval-declarative-with-react-hooks/ + React.useEffect(() => { + shouldRevalidate.current = revalidates; + }, [revalidates]); + + React.useEffect(() => { + if (rooms.length === 0 || !connected) return; + if (!import.meta.env.VITE_SKALOP_WS_URL) { + logger.warn("No WS URL provided"); + return; + } + + const url = `${import.meta.env.VITE_SKALOP_WS_URL}?${rooms + .map((room) => `room=${room.code}`) + .join("&")}`; + ws.current = new WebSocket(url, [], { + maxReconnectionDelay: 10000 * 2, + reconnectionDelayGrowFactor: 1.5, + }); + ws.current.onopen = () => { + setCurrentRoom(rooms[0].code); + setReadyState("CONNECTED"); + }; + ws.current.onclose = () => setReadyState("CLOSED"); + ws.current.onerror = () => setReadyState("CLOSED"); + + ws.current.onmessage = (e) => { + const message = JSON.parse(e.data); + const messageArr = ( + Array.isArray(message) ? message : [message] + ) as ChatMessage[]; + + // something interesting happened + // -> let's run data loaders so they can see it without needing to refresh the page + const isSystemMessage = Boolean(messageArr[0].type); + if (isSystemMessage && shouldRevalidate.current) { + revalidate(); + } + + const sound = messageTypeToSound(messageArr[0].type); + if (sound && soundEnabled(sound)) { + const audio = new Audio(soundPath(sound)); + audio.volume = soundVolume() / 100; + void audio + .play() + .catch((e) => logger.error(`Couldn't play sound: ${e}`)); + } + + if (messageArr[0].revalidateOnly) { + return; + } + + const isInitialLoad = Array.isArray(message); + + if (isInitialLoad) { + lastSeenMessagesByRoomId.current = message.reduce((acc, cur) => { + acc.set(cur.room, cur.id); + return acc; + }, new Map()); + } + + if (isInitialLoad) { + setMessages(messageArr); + } else { + if (!isSystemMessage) onNewMessage?.(message); + setMessages((messages) => [...messages, ...messageArr]); + } + }; + + const wsCurrent = ws.current; + return () => { + wsCurrent?.close(); + setMessages([]); + }; + }, [rooms, onNewMessage, revalidate, connected]); + + React.useEffect(() => { + // ping every minute to keep connection alive + const interval = setInterval(() => { + ws.current?.send(""); + }, 1000 * 60); + + return () => { + clearInterval(interval); + }; + }, []); + + const send = React.useCallback( + (contents: string) => { + invariant(currentRoom); + + const id = nanoid(); + setSentMessage({ + id, + room: currentRoom, + contents, + timestamp: Date.now(), + userId: user!.id, + }); + ws.current!.send(JSON.stringify({ id, contents, room: currentRoom })); + }, + [user, currentRoom], + ); + + let allMessages = messages; + if (sentMessage && !messages.some((msg) => msg.id === sentMessage.id)) { + allMessages = [...messages, { ...sentMessage, pending: true }]; + } + + const roomsMessages = allMessages + .filter((msg) => msg.room === currentRoom) + .sort((a, b) => a.timestamp - b.timestamp); + if (roomsMessages.length > 0 && currentRoom) { + lastSeenMessagesByRoomId.current.set( + currentRoom, + roomsMessages[roomsMessages.length - 1].id, + ); + } + + const unseenMessages = unseenMessagesCountByRoomId({ + messages, + lastSeenMessages: lastSeenMessagesByRoomId.current, + }); + + return { + messages: roomsMessages, + send, + currentRoom, + setCurrentRoom, + readyState, + unseenMessages, + }; +} + +/** Listens to system messages sent via WebSocket to the given room triggering data loader revalidations. */ +export function useWebsocketRevalidation({ + room, + connected, +}: { + room: string; + /** If true, the websocket is connected. Defaults to true. */ + connected?: boolean; +}) { + const rooms = React.useMemo(() => [{ label: room, code: room }], [room]); + + useChat({ + rooms, + connected, + }); +} + +function unseenMessagesCountByRoomId({ + messages, + lastSeenMessages, +}: { + messages: ChatMessage[]; + lastSeenMessages: Map; +}) { + const lastUnseenEncountered = new Set(); + + const unseenMessages = messages.filter((msg) => { + if (msg.id === lastSeenMessages.get(msg.room)) { + lastUnseenEncountered.add(msg.room); + return false; + } + + return lastUnseenEncountered.has(msg.room); + }); + + return unseenMessages.reduce((acc, cur) => { + const count = acc.get(cur.room) ?? 0; + acc.set(cur.room, count + 1); + return acc; + }, new Map()); +} diff --git a/app/features/chat/chat-types.ts b/app/features/chat/chat-types.ts index 52a779016..413f4def6 100644 --- a/app/features/chat/chat-types.ts +++ b/app/features/chat/chat-types.ts @@ -1,3 +1,5 @@ +import type { Tables } from "~/db/tables"; + export type SystemMessageType = | "NEW_GROUP" | "USER_LEFT" @@ -6,7 +8,9 @@ export type SystemMessageType = | "SCORE_REPORTED" | "SCORE_CONFIRMED" | "CANCEL_REPORTED" - | "CANCEL_CONFIRMED"; + | "CANCEL_CONFIRMED" + | "TOURNAMENT_UPDATED" + | "TOURNAMENT_MATCH_UPDATED"; export type SystemMessageContext = { name: string; @@ -16,9 +20,32 @@ export interface ChatMessage { type?: SystemMessageType; contents?: string; context?: SystemMessageContext; + /** If true, the purpose of this message is just to run the data loaders again meaning the logic related to showing a new chat message is skipped. Defaults to false. */ revalidateOnly?: boolean; userId?: number; timestamp: number; room: string; pending?: boolean; } + +export type ChatUser = Pick< + Tables["User"], + "username" | "discordId" | "discordAvatar" +> & { + chatNameColor: string | null; + title?: string; +}; + +export interface ChatProps { + users: Record; + rooms: { label: string; code: string }[]; + className?: string; + messagesContainerClassName?: string; + hidden?: boolean; + onNewMessage?: (message: ChatMessage) => void; + onMount?: () => void; + onUnmount?: () => void; + disabled?: boolean; + missingUserName?: string; + revalidates?: boolean; +} diff --git a/app/features/chat/components/Chat.tsx b/app/features/chat/components/Chat.tsx index 26d1210f0..f5077030c 100644 --- a/app/features/chat/components/Chat.tsx +++ b/app/features/chat/components/Chat.tsx @@ -1,45 +1,14 @@ -import { useRevalidator } from "@remix-run/react"; import clsx from "clsx"; import { sub } from "date-fns"; -import { nanoid } from "nanoid"; -import { WebSocket } from "partysocket"; import * as React from "react"; import { Button } from "react-aria-components"; import { useTranslation } from "react-i18next"; -import type { Tables } from "~/db/tables"; -import { useUser } from "~/features/auth/core/user"; -import invariant from "~/utils/invariant"; -import { logger } from "~/utils/logger"; -import { soundPath } from "~/utils/urls"; import { Avatar } from "../../../components/Avatar"; import { SendouButton } from "../../../components/elements/Button"; import { SubmitButton } from "../../../components/SubmitButton"; import { MESSAGE_MAX_LENGTH } from "../chat-constants"; -import { useChatAutoScroll } from "../chat-hooks"; -import type { ChatMessage } from "../chat-types"; -import { messageTypeToSound, soundEnabled, soundVolume } from "../chat-utils"; - -export type ChatUser = Pick< - Tables["User"], - "username" | "discordId" | "discordAvatar" -> & { - chatNameColor: string | null; - title?: string; -}; - -export interface ChatProps { - users: Record; - rooms: { label: string; code: string }[]; - className?: string; - messagesContainerClassName?: string; - hidden?: boolean; - onNewMessage?: (message: ChatMessage) => void; - onMount?: () => void; - onUnmount?: () => void; - disabled?: boolean; - missingUserName?: string; - revalidates?: boolean; -} +import { useChat, useChatAutoScroll } from "../chat-hooks"; +import type { ChatMessage, ChatProps, ChatUser } from "../chat-types"; export function ConnectedChat(props: ChatProps) { const chat = useChat(props); @@ -316,188 +285,3 @@ function MessageTimestamp({ timestamp }: { timestamp: number }) { ); } - -// TODO: should contain unseen messages logic, now it's duplicated -export function useChat({ - rooms, - onNewMessage, - revalidates = true, -}: { - rooms: ChatProps["rooms"]; - onNewMessage?: (message: ChatMessage) => void; - revalidates?: boolean; -}) { - const { revalidate } = useRevalidator(); - const shouldRevalidate = React.useRef(); - const user = useUser(); - - const [messages, setMessages] = React.useState([]); - const [readyState, setReadyState] = React.useState< - "CONNECTING" | "CONNECTED" | "CLOSED" - >("CONNECTING"); - const [sentMessage, setSentMessage] = React.useState(); - const [currentRoom, setCurrentRoom] = React.useState( - rooms[0]?.code, - ); - - const ws = React.useRef(); - const lastSeenMessagesByRoomId = React.useRef>(new Map()); - - // same principal as here behind separating it into a ref: https://overreacted.io/making-setinterval-declarative-with-react-hooks/ - React.useEffect(() => { - shouldRevalidate.current = revalidates; - }, [revalidates]); - - React.useEffect(() => { - if (rooms.length === 0) return; - if (!import.meta.env.VITE_SKALOP_WS_URL) { - logger.warn("No WS URL provided"); - return; - } - - const url = `${import.meta.env.VITE_SKALOP_WS_URL}?${rooms - .map((room) => `room=${room.code}`) - .join("&")}`; - ws.current = new WebSocket(url, [], { - maxReconnectionDelay: 10000 * 2, - reconnectionDelayGrowFactor: 1.5, - }); - ws.current.onopen = () => { - setCurrentRoom(rooms[0].code); - setReadyState("CONNECTED"); - }; - ws.current.onclose = () => setReadyState("CLOSED"); - ws.current.onerror = () => setReadyState("CLOSED"); - - ws.current.onmessage = (e) => { - const message = JSON.parse(e.data); - const messageArr = ( - Array.isArray(message) ? message : [message] - ) as ChatMessage[]; - - // something interesting happened - // -> let's run data loaders so they can see it sooner - const isSystemMessage = Boolean(messageArr[0].type); - if (isSystemMessage && shouldRevalidate.current) { - revalidate(); - } - - const sound = messageTypeToSound(messageArr[0].type); - if (sound && soundEnabled(sound)) { - const audio = new Audio(soundPath(sound)); - audio.volume = soundVolume() / 100; - void audio - .play() - .catch((e) => logger.error(`Couldn't play sound: ${e}`)); - } - - if (messageArr[0].revalidateOnly) { - return; - } - - const isInitialLoad = Array.isArray(message); - - if (isInitialLoad) { - lastSeenMessagesByRoomId.current = message.reduce((acc, cur) => { - acc.set(cur.room, cur.id); - return acc; - }, new Map()); - } - - if (isInitialLoad) { - setMessages(messageArr); - } else { - if (!isSystemMessage) onNewMessage?.(message); - setMessages((messages) => [...messages, ...messageArr]); - } - }; - - const wsCurrent = ws.current; - return () => { - wsCurrent?.close(); - setMessages([]); - }; - }, [rooms, onNewMessage, revalidate]); - - React.useEffect(() => { - // ping every minute to keep connection alive - const interval = setInterval(() => { - ws.current?.send(""); - }, 1000 * 60); - - return () => { - clearInterval(interval); - }; - }, []); - - const send = React.useCallback( - (contents: string) => { - invariant(currentRoom); - - const id = nanoid(); - setSentMessage({ - id, - room: currentRoom, - contents, - timestamp: Date.now(), - userId: user!.id, - }); - ws.current!.send(JSON.stringify({ id, contents, room: currentRoom })); - }, - [user, currentRoom], - ); - - let allMessages = messages; - if (sentMessage && !messages.some((msg) => msg.id === sentMessage.id)) { - allMessages = [...messages, { ...sentMessage, pending: true }]; - } - - const roomsMessages = allMessages - .filter((msg) => msg.room === currentRoom) - .sort((a, b) => a.timestamp - b.timestamp); - if (roomsMessages.length > 0 && currentRoom) { - lastSeenMessagesByRoomId.current.set( - currentRoom, - roomsMessages[roomsMessages.length - 1].id, - ); - } - - const unseenMessages = unseenMessagesCountByRoomId({ - messages, - lastSeenMessages: lastSeenMessagesByRoomId.current, - }); - - return { - messages: roomsMessages, - send, - currentRoom, - setCurrentRoom, - readyState, - unseenMessages, - }; -} - -function unseenMessagesCountByRoomId({ - messages, - lastSeenMessages, -}: { - messages: ChatMessage[]; - lastSeenMessages: Map; -}) { - const lastUnseenEncountered = new Set(); - - const unseenMessages = messages.filter((msg) => { - if (msg.id === lastSeenMessages.get(msg.room)) { - lastUnseenEncountered.add(msg.room); - return false; - } - - return lastUnseenEncountered.has(msg.room); - }); - - return unseenMessages.reduce((acc, cur) => { - const count = acc.get(cur.room) ?? 0; - acc.set(cur.room, count + 1); - return acc; - }, new Map()); -} diff --git a/app/features/map-planner/plans.css b/app/features/map-planner/plans.css index c65fcce71..386c264af 100644 --- a/app/features/map-planner/plans.css +++ b/app/features/map-planner/plans.css @@ -75,10 +75,6 @@ button[data-state="closed"][aria-haspopup="dialog"] { background-color: var(--bg); } -.plans__placeholder { - min-height: 100%; -} - .plans__top-section { position: fixed; z-index: 10; diff --git a/app/features/map-planner/routes/plans.tsx b/app/features/map-planner/routes/plans.tsx index 8c4203cc0..64d60d241 100644 --- a/app/features/map-planner/routes/plans.tsx +++ b/app/features/map-planner/routes/plans.tsx @@ -1,5 +1,6 @@ import type { MetaFunction } from "@remix-run/node"; import { lazy } from "react"; +import { Placeholder } from "~/components/Placeholder"; import { useIsMounted } from "~/hooks/useIsMounted"; import { metaTags } from "~/utils/remix"; import type { SendouRouteHandle } from "~/utils/remix.server"; @@ -31,7 +32,7 @@ const Planner = lazy(() => import("~/features/map-planner/components/Planner")); export default function MapPlannerPage() { const isMounted = useIsMounted(); - if (!isMounted) return
; + if (!isMounted) return ; return ; } diff --git a/app/features/sendouq-match/routes/q.match.$id.tsx b/app/features/sendouq-match/routes/q.match.$id.tsx index fdaba9bef..38b7ff994 100644 --- a/app/features/sendouq-match/routes/q.match.$id.tsx +++ b/app/features/sendouq-match/routes/q.match.$id.tsx @@ -34,7 +34,9 @@ import { SubmitButton } from "~/components/SubmitButton"; import { WeaponSelect } from "~/components/WeaponSelect"; import type { Tables } from "~/db/tables"; import { useUser } from "~/features/auth/core/user"; -import { Chat, type ChatProps, useChat } from "~/features/chat/components/Chat"; +import { useChat } from "~/features/chat/chat-hooks"; +import type { ChatProps } from "~/features/chat/chat-types"; +import { Chat } from "~/features/chat/components/Chat"; import * as Seasons from "~/features/mmr/core/Seasons"; import { GroupCard } from "~/features/sendouq/components/GroupCard"; import { FULL_GROUP_SIZE } from "~/features/sendouq/q-constants"; diff --git a/app/features/sendouq-settings/routes/q.settings.tsx b/app/features/sendouq-settings/routes/q.settings.tsx index 9656b9cde..9fb736e12 100644 --- a/app/features/sendouq-settings/routes/q.settings.tsx +++ b/app/features/sendouq-settings/routes/q.settings.tsx @@ -520,6 +520,10 @@ function SoundCheckboxes() { code: "sq_match", name: t("q:settings.sounds.matchStarted"), }, + { + code: "tournament_match", + name: t("q:settings.sounds.tournamentMatchStarted"), + }, ]; // default to true diff --git a/app/features/sendouq/routes/q.looking.tsx b/app/features/sendouq/routes/q.looking.tsx index a9c877731..cc83fa843 100644 --- a/app/features/sendouq/routes/q.looking.tsx +++ b/app/features/sendouq/routes/q.looking.tsx @@ -16,7 +16,8 @@ import { Image } from "~/components/Image"; import { Main } from "~/components/Main"; import { SubmitButton } from "~/components/SubmitButton"; import { useUser } from "~/features/auth/core/user"; -import { Chat, useChat } from "~/features/chat/components/Chat"; +import { useChat } from "~/features/chat/chat-hooks"; +import { Chat } from "~/features/chat/components/Chat"; import { useAutoRefresh } from "~/hooks/useAutoRefresh"; import { useIsMounted } from "~/hooks/useIsMounted"; import { useWindowSize } from "~/hooks/useWindowSize"; diff --git a/app/features/tournament-bracket/actions/to.$id.brackets.server.ts b/app/features/tournament-bracket/actions/to.$id.brackets.server.ts index 1617fd17c..27d51d3b9 100644 --- a/app/features/tournament-bracket/actions/to.$id.brackets.server.ts +++ b/app/features/tournament-bracket/actions/to.$id.brackets.server.ts @@ -1,6 +1,7 @@ import type { ActionFunction } from "@remix-run/node"; import { sql } from "~/db/sql"; import { requireUser } from "~/features/auth/core/user.server"; +import * as ChatSystemMessage from "~/features/chat/ChatSystemMessage.server"; import { notify } from "~/features/notifications/core/notify.server"; import { createSwissBracketInTransaction } from "~/features/tournament/queries/createSwissBracketInTransaction.server"; import { updateRoundMaps } from "~/features/tournament/queries/updateRoundMaps.server"; @@ -26,7 +27,10 @@ import { tournamentFromDB, } from "../core/Tournament.server"; import { bracketSchema } from "../tournament-bracket-schemas.server"; -import { fillWithNullTillPowerOfTwo } from "../tournament-bracket-utils"; +import { + fillWithNullTillPowerOfTwo, + tournamentWebsocketRoom, +} from "../tournament-bracket-utils"; export const action: ActionFunction = async ({ params, request }) => { const user = await requireUser(request); @@ -38,6 +42,8 @@ export const action: ActionFunction = async ({ params, request }) => { const data = await parseRequestPayload({ request, schema: bracketSchema }); const manager = getServerTournamentManager(); + let emitTournamentUpdate = false; + switch (data._action) { case "START_BRACKET": { errorToastIfFalsy(tournament.isOrganizer(user), "Not an organizer"); @@ -136,6 +142,8 @@ export const action: ActionFunction = async ({ params, request }) => { }); } + emitTournamentUpdate = true; + break; } case "PREPARE_MAPS": { @@ -191,6 +199,8 @@ export const action: ActionFunction = async ({ params, request }) => { await TournamentRepository.insertSwissMatches(matches.value); + emitTournamentUpdate = true; + break; } case "UNADVANCE_BRACKET": { @@ -209,6 +219,8 @@ export const action: ActionFunction = async ({ params, request }) => { roundId: data.roundId, }); + emitTournamentUpdate = true; + break; } case "BRACKET_CHECK_IN": { @@ -251,6 +263,9 @@ export const action: ActionFunction = async ({ params, request }) => { destinationBracketIdx: data.destinationBracketIdx, tournamentId, }); + + emitTournamentUpdate = true; + break; } default: { @@ -260,6 +275,16 @@ export const action: ActionFunction = async ({ params, request }) => { clearTournamentDataCache(tournamentId); + if (emitTournamentUpdate) { + ChatSystemMessage.send([ + { + room: tournamentWebsocketRoom(tournament.ctx.id), + type: "TOURNAMENT_UPDATED", + revalidateOnly: true, + }, + ]); + } + return null; }; diff --git a/app/features/tournament-bracket/actions/to.$id.matches.$mid.server.ts b/app/features/tournament-bracket/actions/to.$id.matches.$mid.server.ts index afcd3c21c..88a936a9e 100644 --- a/app/features/tournament-bracket/actions/to.$id.matches.$mid.server.ts +++ b/app/features/tournament-bracket/actions/to.$id.matches.$mid.server.ts @@ -1,7 +1,7 @@ import type { ActionFunction } from "@remix-run/node"; -import { nanoid } from "nanoid"; import { sql } from "~/db/sql"; import { requireUser } from "~/features/auth/core/user.server"; +import * as ChatSystemMessage from "~/features/chat/ChatSystemMessage.server"; import * as TournamentRepository from "~/features/tournament/TournamentRepository.server"; import * as TournamentTeamRepository from "~/features/tournament/TournamentTeamRepository.server"; import * as TournamentMatchRepository from "~/features/tournament-bracket/TournamentMatchRepository.server"; @@ -15,7 +15,6 @@ import { } from "~/utils/remix.server"; import { assertUnreachable } from "~/utils/types"; import { getServerTournamentManager } from "../core/brackets-manager/manager.server"; -import { emitter } from "../core/emitters.server"; import { resolveMapList } from "../core/mapList.server"; import * as PickBan from "../core/PickBan"; import { @@ -39,11 +38,11 @@ import { matchSchema, } from "../tournament-bracket-schemas.server"; import { - bracketSubscriptionKey, isSetOverByScore, matchIsLocked, - matchSubscriptionKey, + tournamentMatchWebsocketRoom, tournamentTeamToActiveRosterUserIds, + tournamentWebsocketRoom, } from "../tournament-bracket-utils"; export const action: ActionFunction = async ({ params, request }) => { @@ -99,7 +98,7 @@ export const action: ActionFunction = async ({ params, request }) => { : null; let emitMatchUpdate = false; - let emitBracketUpdate = false; + let emitTournamentUpdate = false; switch (data._action) { case "REPORT_SCORE": { // they are trying to report score that was already reported @@ -212,7 +211,7 @@ export const action: ActionFunction = async ({ params, request }) => { })(); emitMatchUpdate = true; - emitBracketUpdate = true; + emitTournamentUpdate = true; break; } @@ -311,7 +310,7 @@ export const action: ActionFunction = async ({ params, request }) => { })(); emitMatchUpdate = true; - emitBracketUpdate = true; + emitTournamentUpdate = true; break; } @@ -386,7 +385,7 @@ export const action: ActionFunction = async ({ params, request }) => { })(); emitMatchUpdate = true; - emitBracketUpdate = true; + emitTournamentUpdate = true; break; } @@ -498,7 +497,7 @@ export const action: ActionFunction = async ({ params, request }) => { })(); emitMatchUpdate = true; - emitBracketUpdate = true; + emitTournamentUpdate = true; break; } @@ -514,7 +513,7 @@ export const action: ActionFunction = async ({ params, request }) => { twitchAccount: data.twitchAccount, }); - emitBracketUpdate = true; + emitTournamentUpdate = true; break; } @@ -558,24 +557,28 @@ export const action: ActionFunction = async ({ params, request }) => { } } - if (emitMatchUpdate) { - emitter.emit(matchSubscriptionKey(match.id), { - eventId: nanoid(), - userId: user.id, - }); - } - if (emitBracketUpdate) { - emitter.emit(bracketSubscriptionKey(tournament.ctx.id), { - matchId: match.id, - scores, - isOver: - scores[0] === Math.ceil(match.bestOf / 2) || - scores[1] === Math.ceil(match.bestOf / 2), - }); - } - clearTournamentDataCache(tournamentId); + // TODO: we could optimize this in the future by including an `authorUserId` field and skip revalidation if the author is the same as the current user + if (emitMatchUpdate) { + ChatSystemMessage.send([ + { + room: tournamentMatchWebsocketRoom(matchId), + type: "TOURNAMENT_MATCH_UPDATED", + revalidateOnly: true, + }, + ]); + } + if (emitTournamentUpdate) { + ChatSystemMessage.send([ + { + room: tournamentWebsocketRoom(tournament.ctx.id), + type: "TOURNAMENT_UPDATED", + revalidateOnly: true, + }, + ]); + } + return null; }; diff --git a/app/features/tournament-bracket/components/StartedMatch.tsx b/app/features/tournament-bracket/components/StartedMatch.tsx index 155eae106..8d83f81b4 100644 --- a/app/features/tournament-bracket/components/StartedMatch.tsx +++ b/app/features/tournament-bracket/components/StartedMatch.tsx @@ -18,7 +18,8 @@ import { CrossIcon } from "~/components/icons/Cross"; import { PickIcon } from "~/components/icons/Pick"; import { SubmitButton } from "~/components/SubmitButton"; import { useUser } from "~/features/auth/core/user"; -import { Chat, useChat } from "~/features/chat/components/Chat"; +import { useChat } from "~/features/chat/chat-hooks"; +import { Chat } from "~/features/chat/components/Chat"; import { useTournament } from "~/features/tournament/routes/to.$id"; import { resolveLeagueRoundStartDate } from "~/features/tournament/tournament-utils"; import { useIsMounted } from "~/hooks/useIsMounted"; diff --git a/app/features/tournament-bracket/components/TournamentTeamActions.tsx b/app/features/tournament-bracket/components/TournamentTeamActions.tsx index 014dfaf95..b25298f37 100644 --- a/app/features/tournament-bracket/components/TournamentTeamActions.tsx +++ b/app/features/tournament-bracket/components/TournamentTeamActions.tsx @@ -7,9 +7,14 @@ import { SendouPopover } from "~/components/elements/Popover"; import { CheckmarkIcon } from "~/components/icons/Checkmark"; import { SubmitButton } from "~/components/SubmitButton"; import { useUser } from "~/features/auth/core/user"; +import { soundEnabled, soundVolume } from "~/features/chat/chat-utils"; import { useTournament } from "~/features/tournament/routes/to.$id"; import { logger } from "~/utils/logger"; -import { tournamentMatchPage, tournamentRegisterPage } from "~/utils/urls"; +import { + soundPath, + tournamentMatchPage, + tournamentRegisterPage, +} from "~/utils/urls"; export function TournamentTeamActions() { const tournament = useTournament(); @@ -18,6 +23,8 @@ export function TournamentTeamActions() { const status = tournament.teamMemberOfProgressStatus(user); + useMatchReadySound(status?.type); + if (!status) return null; if (status.type === "MATCH") { @@ -199,3 +206,25 @@ function Dots() { ); } + +function useMatchReadySound(statusType?: string) { + const isWaiting = React.useRef(false); + + React.useEffect(() => { + if (statusType === "MATCH" && isWaiting.current) { + const sound = "tournament_match"; + + if (soundEnabled(sound)) { + const audio = new Audio(soundPath(sound)); + audio.volume = soundVolume() / 100; + void audio + .play() + .catch((e) => logger.error(`Couldn't play sound: ${e}`)); + } + } + + isWaiting.current = !statusType || statusType?.startsWith("WAITING_"); + }, [statusType]); + + return isWaiting; +} diff --git a/app/features/tournament-bracket/core/emitters.server.ts b/app/features/tournament-bracket/core/emitters.server.ts deleted file mode 100644 index 4eac0bd6e..000000000 --- a/app/features/tournament-bracket/core/emitters.server.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { EventEmitter } from "node:events"; - -const globalForEmitter = global as unknown as { - emitter: EventEmitter | undefined; -}; - -export const emitter = globalForEmitter.emitter ?? new EventEmitter(); -// the default of 10 is not relevant for us because we use it for server-sent events -emitter.setMaxListeners(0); - -globalForEmitter.emitter = emitter; diff --git a/app/features/tournament-bracket/routes/to.$id.brackets.subscribe.ts b/app/features/tournament-bracket/routes/to.$id.brackets.subscribe.ts deleted file mode 100644 index 4f8ec49cb..000000000 --- a/app/features/tournament-bracket/routes/to.$id.brackets.subscribe.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { LoaderFunctionArgs } from "@remix-run/node"; -import { eventStream } from "remix-utils/sse/server"; -import { parseParams } from "~/utils/remix.server"; -import { idObject } from "~/utils/zod"; -import { emitter } from "../core/emitters.server"; -import { bracketSubscriptionKey } from "../tournament-bracket-utils"; - -export const loader = ({ request, params }: LoaderFunctionArgs) => { - const { id: tournamentId } = parseParams({ - params, - schema: idObject, - }); - - return eventStream(request.signal, (send) => { - const handler = (args: { - matchId: number; - scores: [number, number]; - isOver: boolean; - }) => { - send({ - event: bracketSubscriptionKey(tournamentId), - data: `${args.matchId}-${args.scores[0]}-${args.scores[1]}-${String( - args.isOver, - )}`, - }); - }; - - emitter.addListener(bracketSubscriptionKey(tournamentId), handler); - return () => { - emitter.removeListener(bracketSubscriptionKey(tournamentId), handler); - }; - }); -}; diff --git a/app/features/tournament-bracket/routes/to.$id.brackets.tsx b/app/features/tournament-bracket/routes/to.$id.brackets.tsx index d42cd2ea2..ddc45f21e 100644 --- a/app/features/tournament-bracket/routes/to.$id.brackets.tsx +++ b/app/features/tournament-bracket/routes/to.$id.brackets.tsx @@ -5,7 +5,6 @@ import * as React from "react"; import { ErrorBoundary } from "react-error-boundary"; import { useTranslation } from "react-i18next"; import { useCopyToClipboard } from "react-use"; -import { useEventSource } from "remix-utils/sse/react"; import { Alert } from "~/components/Alert"; import { Divider } from "~/components/Divider"; import { LinkButton, SendouButton } from "~/components/elements/Button"; @@ -16,15 +15,13 @@ import { EyeIcon } from "~/components/icons/Eye"; import { EyeSlashIcon } from "~/components/icons/EyeSlash"; import { MapIcon } from "~/components/icons/Map"; import { useUser } from "~/features/auth/core/user"; +import { useWebsocketRevalidation } from "~/features/chat/chat-hooks"; import { TOURNAMENT } from "~/features/tournament/tournament-constants"; +import { tournamentWebsocketRoom } from "~/features/tournament-bracket/tournament-bracket-utils"; import { useIsMounted } from "~/hooks/useIsMounted"; import { useSearchParamState } from "~/hooks/useSearchParamState"; import { useVisibilityChange } from "~/hooks/useVisibilityChange"; -import { - SENDOU_INK_BASE_URL, - tournamentBracketsSubscribePage, - tournamentJoinPage, -} from "~/utils/urls"; +import { SENDOU_INK_BASE_URL, tournamentJoinPage } from "~/utils/urls"; import { useBracketExpanded, useTournament, @@ -36,11 +33,10 @@ import { BracketMapListDialog } from "../components/BracketMapListDialog"; import { TournamentTeamActions } from "../components/TournamentTeamActions"; import type { Bracket as BracketType } from "../core/Bracket"; import * as PreparedMaps from "../core/PreparedMaps"; -import { bracketSubscriptionKey } from "../tournament-bracket-utils"; export { action }; -import "../components/Bracket/bracket.css"; import "../tournament-bracket.css"; +import "../components/Bracket/bracket.css"; export default function TournamentBracketsPage() { const { t } = useTranslation(["tournament"]); @@ -51,6 +47,11 @@ export default function TournamentBracketsPage() { const isMounted = useIsMounted(); const ctx = useOutletContext(); + useWebsocketRevalidation({ + room: tournamentWebsocketRoom(tournament.ctx.id), + connected: !tournament.ctx.isFinalized, + }); + const defaultBracketIdx = () => { if ( tournament.brackets.length === 1 || @@ -74,10 +75,10 @@ export default function TournamentBracketsPage() { ); React.useEffect(() => { - if (visibility !== "visible" || tournament.everyBracketOver) return; + if (visibility !== "visible" || tournament.ctx.isFinalized) return; revalidate(); - }, [visibility, revalidate, tournament.everyBracketOver]); + }, [visibility, revalidate, tournament.ctx.isFinalized]); const showAddSubsButton = !tournament.canFinalize(user) && @@ -160,9 +161,6 @@ export default function TournamentBracketsPage() { return (
- {visibility !== "hidden" && !tournament.everyBracketOver ? ( - - ) : null} {tournament.canFinalize(user) ? (
{ - if (!lastEvent) return; - - // TODO: maybe later could look into not revalidating unless bracket advanced but do something fancy in the tournament class instead - revalidate(); - }, [lastEvent, revalidate]); -} - function BracketStarter({ bracket, bracketIdx, diff --git a/app/features/tournament-bracket/routes/to.$id.matches.$mid.subscribe.ts b/app/features/tournament-bracket/routes/to.$id.matches.$mid.subscribe.ts deleted file mode 100644 index 1b2ae2c0b..000000000 --- a/app/features/tournament-bracket/routes/to.$id.matches.$mid.subscribe.ts +++ /dev/null @@ -1,30 +0,0 @@ -import type { LoaderFunctionArgs } from "@remix-run/node"; -import { eventStream } from "remix-utils/sse/server"; - -import { getUserId } from "~/features/auth/core/user.server"; -import { parseParams } from "~/utils/remix.server"; -import { emitter } from "../core/emitters.server"; -import { matchPageParamsSchema } from "../tournament-bracket-schemas.server"; -import { matchSubscriptionKey } from "../tournament-bracket-utils"; - -export const loader = async ({ request, params }: LoaderFunctionArgs) => { - const loggedInUser = await getUserId(request); - const matchId = parseParams({ - params, - schema: matchPageParamsSchema, - }).mid; - - return eventStream(request.signal, (send) => { - const handler = (args: { eventId: string; userId: number }) => { - // small optimization not to send the event - // if the user is the one who triggered the event - if (args.userId === loggedInUser?.id) return; - send({ event: matchSubscriptionKey(matchId), data: args.eventId }); - }; - - emitter.addListener(matchSubscriptionKey(matchId), handler); - return () => { - emitter.removeListener(matchSubscriptionKey(matchId), handler); - }; - }); -}; diff --git a/app/features/tournament-bracket/routes/to.$id.matches.$mid.tsx b/app/features/tournament-bracket/routes/to.$id.matches.$mid.tsx index b8f0e8a88..e212ce8ea 100644 --- a/app/features/tournament-bracket/routes/to.$id.matches.$mid.tsx +++ b/app/features/tournament-bracket/routes/to.$id.matches.$mid.tsx @@ -1,11 +1,11 @@ import { useLoaderData, useRevalidator } from "@remix-run/react"; import clsx from "clsx"; import * as React from "react"; -import { useEventSource } from "remix-utils/sse/react"; import { LinkButton } from "~/components/elements/Button"; import { ArrowLongLeftIcon } from "~/components/icons/ArrowLongLeft"; import { containerClassName } from "~/components/Main"; import { useUser } from "~/features/auth/core/user"; +import { useWebsocketRevalidation } from "~/features/chat/chat-hooks"; import { ConnectedChat } from "~/features/chat/components/Chat"; import { useTournament } from "~/features/tournament/routes/to.$id"; import { TOURNAMENT } from "~/features/tournament/tournament-constants"; @@ -13,10 +13,7 @@ import { useSearchParamState } from "~/hooks/useSearchParamState"; import { useVisibilityChange } from "~/hooks/useVisibilityChange"; import invariant from "~/utils/invariant"; import { assertUnreachable } from "~/utils/types"; -import { - tournamentBracketsPage, - tournamentMatchSubscribePage, -} from "~/utils/urls"; +import { tournamentBracketsPage } from "~/utils/urls"; import { action } from "../actions/to.$id.matches.$mid.server"; import { CastInfo } from "../components/CastInfo"; import { MatchRosters } from "../components/MatchRosters"; @@ -26,7 +23,7 @@ import { getRounds } from "../core/rounds"; import { loader } from "../loaders/to.$id.matches.$mid.server"; import { groupNumberToLetters, - matchSubscriptionKey, + tournamentMatchWebsocketRoom, } from "../tournament-bracket-utils"; export { action, loader }; @@ -39,11 +36,16 @@ export default function TournamentMatchPage() { const tournament = useTournament(); const data = useLoaderData(); + useWebsocketRevalidation({ + room: tournamentMatchWebsocketRoom(data.match.id), + connected: !tournament.ctx.isFinalized, + }); + React.useEffect(() => { - if (visibility !== "visible" || data.matchIsOver) return; + if (visibility !== "visible" || tournament.ctx.isFinalized) return; revalidate(); - }, [visibility, revalidate, data.matchIsOver]); + }, [visibility, revalidate, tournament.ctx.isFinalized]); const type = tournament.canReportScore({ matchId: data.match.id, user }) || @@ -75,7 +77,6 @@ export default function TournamentMatchPage() { return (
- {!data.matchIsOver && visibility !== "hidden" ? : null}
@@ -282,33 +283,6 @@ function MatchHeader() { ); } -function AutoRefresher() { - useAutoRefresh(); - - return null; -} - -function useAutoRefresh() { - const { revalidate } = useRevalidator(); - const tournament = useTournament(); - const data = useLoaderData(); - const lastEventId = useEventSource( - tournamentMatchSubscribePage({ - tournamentId: tournament.ctx.id, - matchId: data.match.id, - }), - { - event: matchSubscriptionKey(data.match.id), - }, - ); - - React.useEffect(() => { - if (lastEventId) { - revalidate(); - } - }, [lastEventId, revalidate]); -} - function MapListSection({ teams, type, diff --git a/app/features/tournament-bracket/tournament-bracket-utils.ts b/app/features/tournament-bracket/tournament-bracket-utils.ts index 9370d0c49..d632d8ea6 100644 --- a/app/features/tournament-bracket/tournament-bracket-utils.ts +++ b/app/features/tournament-bracket/tournament-bracket-utils.ts @@ -16,6 +16,12 @@ import type { Standing } from "./core/Bracket"; import type { Tournament } from "./core/Tournament"; import type { TournamentDataTeam } from "./core/Tournament.server"; +export const tournamentWebsocketRoom = (tournamentId: number) => + `tournament__${tournamentId}`; + +export const tournamentMatchWebsocketRoom = (matchId: number) => + `match__${matchId}`; + const NUM_MAP = { "1": ["1", "2", "4"], "2": ["2", "1", "3", "5"], @@ -96,14 +102,6 @@ export function checkSourceIsValid({ return false; } -export function bracketSubscriptionKey(tournamentId: number) { - return `BRACKET_CHANGED_${tournamentId}`; -} - -export function matchSubscriptionKey(matchId: number) { - return `MATCH_CHANGED_${matchId}`; -} - export function fillWithNullTillPowerOfTwo(arr: T[]) { const nextPowerOfTwo = 2 ** Math.ceil(Math.log2(arr.length)); const nullsToAdd = nextPowerOfTwo - arr.length; diff --git a/app/features/tournament/routes/to.$id.tsx b/app/features/tournament/routes/to.$id.tsx index 02ae36b28..1cba9a592 100644 --- a/app/features/tournament/routes/to.$id.tsx +++ b/app/features/tournament/routes/to.$id.tsx @@ -8,6 +8,7 @@ import { import * as React from "react"; import { useTranslation } from "react-i18next"; import { Main } from "~/components/Main"; +import { Placeholder } from "~/components/Placeholder"; import { SubNav, SubNavLink } from "~/components/SubNav"; import { useUser } from "~/features/auth/core/user"; import { Tournament } from "~/features/tournament-bracket/core/Tournament"; @@ -32,7 +33,9 @@ import "../tournament.css"; export const shouldRevalidate: ShouldRevalidateFunction = (args) => { const navigatedToMatchPage = - typeof args.nextParams.mid === "string" && args.formMethod !== "POST"; + typeof args.nextParams.mid === "string" && + args.formMethod !== "POST" && + args.currentParams.mid !== args.nextParams.mid; if (navigatedToMatchPage) return false; @@ -101,7 +104,7 @@ export default function TournamentLayoutShell() { if (!isMounted) return (
-
+
); diff --git a/app/features/tournament/tournament.css b/app/features/tournament/tournament.css index f66843a74..7d6c4b5c2 100644 --- a/app/features/tournament/tournament.css +++ b/app/features/tournament/tournament.css @@ -1,7 +1,3 @@ -.tournament__placeholder { - min-height: 100vh; -} - .tournament__action-section { padding: var(--s-0-5) var(--s-6) var(--s-6) var(--s-6); border-radius: var(--rounded); diff --git a/app/features/user-page/UserRepository.server.ts b/app/features/user-page/UserRepository.server.ts index 65597fbf6..be799888c 100644 --- a/app/features/user-page/UserRepository.server.ts +++ b/app/features/user-page/UserRepository.server.ts @@ -10,7 +10,6 @@ import type { TablesInsertable, UserPreferences, } from "~/db/tables"; -import type { ChatUser } from "~/features/chat/components/Chat"; import { userRoles } from "~/modules/permissions/mapper.server"; import { isSupporter } from "~/modules/permissions/utils"; import { databaseTimestampNow, dateToDatabaseTimestamp } from "~/utils/dates"; @@ -18,6 +17,7 @@ import invariant from "~/utils/invariant"; import type { CommonUser } from "~/utils/kysely.server"; import { COMMON_USER_FIELDS, userChatNameColor } from "~/utils/kysely.server"; import { safeNumberParse } from "~/utils/number"; +import type { ChatUser } from "../chat/chat-types"; const identifierToUserIdQuery = (identifier: string) => db diff --git a/app/routes.ts b/app/routes.ts index e12044579..8bdf43480 100644 --- a/app/routes.ts +++ b/app/routes.ts @@ -113,18 +113,10 @@ export default [ ), ], ), - route( - "brackets/subscribe", - "features/tournament-bracket/routes/to.$id.brackets.subscribe.ts", - ), route( "matches/:mid", "features/tournament-bracket/routes/to.$id.matches.$mid.tsx", ), - route( - "matches/:mid/subscribe", - "features/tournament-bracket/routes/to.$id.matches.$mid.subscribe.ts", - ), ]), route("luti", "features/tournament/routes/luti.ts"), diff --git a/app/utils/urls.ts b/app/utils/urls.ts index a2d5e807a..cfde398b4 100644 --- a/app/utils/urls.ts +++ b/app/utils/urls.ts @@ -334,8 +334,6 @@ export const tournamentDivisionsPage = (tournamentId: number) => `/to/${tournamentId}/divisions`; export const tournamentResultsPage = (tournamentId: number) => `/to/${tournamentId}/results`; -export const tournamentBracketsSubscribePage = (tournamentId: number) => - `/to/${tournamentId}/brackets/subscribe`; export const tournamentMatchPage = ({ tournamentId, matchId, @@ -343,13 +341,6 @@ export const tournamentMatchPage = ({ tournamentId: number; matchId: number; }) => `/to/${tournamentId}/matches/${matchId}`; -export const tournamentMatchSubscribePage = ({ - tournamentId, - matchId, -}: { - tournamentId: number; - matchId: number; -}) => `/to/${tournamentId}/matches/${matchId}/subscribe`; export const tournamentJoinPage = ({ tournamentId, inviteCode, diff --git a/docs/dev/architecture.md b/docs/dev/architecture.md index 2eab7db2f..6dcaa4be6 100644 --- a/docs/dev/architecture.md +++ b/docs/dev/architecture.md @@ -192,9 +192,32 @@ Cron jobs to perform actions on the server at certain intervals. To add a new on ### Real time -Webhooks via Skalop service (see logic in the Chat module). +Webhooks via Skalop service (see logic in the Chat module). In short an action file can send an update via the `ChatSystemMessage` module: -Old way: server-sent events still in use for tournament bracket & match pages. +```ts +ChatSystemMessage.send([ + { + room: `tournament__${tournament.id}`, + type: "TOURNAMENT_UPDATED", + revalidateOnly: true, + }, +]); +``` + +which then can be listed to in a React component via the `useChat` hook: + +```tsx +const chatRooms = React.useMemo( + () => [ + { code: `tournament__${tournament.id}`, label: "Tournament" }, + ], + [tournament.ctx.id], +); +useChat({ + rooms: chatRooms, + connected: !tournament.ctx.isFinalized, +}); +``` ### Notifications diff --git a/locales/en/q.json b/locales/en/q.json index f81d0bb3d..8e920d68c 100644 --- a/locales/en/q.json +++ b/locales/en/q.json @@ -67,6 +67,7 @@ "settings.sounds.likeReceived": "Like received", "settings.sounds.groupNewMember": "Group new member", "settings.sounds.matchStarted": "Match started", + "settings.sounds.tournamentMatchStarted": "Tournament match started", "settings.mapPool.notOk": "Pick {{count}} stages per mode that you didn't avoid to save your preferences", "settings.misc.header": "Misc", "settings.banned": "Banned", diff --git a/public/static-assets/sounds/tournament_match.wav b/public/static-assets/sounds/tournament_match.wav new file mode 100644 index 0000000000000000000000000000000000000000..28d596b791fa44746c3c028b57b1b074058f66a5 GIT binary patch literal 247340 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 z z`CdeFDcjVP3=vU&4!?`~LN&iN;)|FLxk?Orj2};fIuw?&^;9|G-_oqp?^Z?n6~l z-ZLvhGh?QA>#)AD zaQ^FlTK zAb3zO%Nlvm<*Enq{9`8Yc~TvY(^su#ica~c!EMp^^P?`{UAjXy;fH=C0vM0C@i>XS zg()f7u*r?`(qW>Y+mip2D=dJi^whCbM#n%91#aOvE5L=WFȴp%YiC4@pzmk+EwS3pT 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

y`TS$>!UN(oi9vVS;P@hV@+t>^PTi0zYM-de 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 CkYD-$ literal 0 HcmV?d00001