Skip to content

Commit 8b7bdbd

Browse files
committed
replay frontend (untested)
1 parent a293b3f commit 8b7bdbd

13 files changed

Lines changed: 1706 additions & 950 deletions

File tree

src/dashboard/src/App.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,20 @@ import { AccessDenied } from '@/features/auth/components/AccessDenied';
44
import { LoginPage } from '@/features/auth/pages/LoginPage';
55
import { ServerSelectionPage } from '@/features/server-selection/pages/ServerSelectionPage';
66
import { PlayerManager } from '@/features/game/components/PlayerManager';
7+
import { ModeSelectionPage } from '@/features/replays/pages/ModeSelectionPage';
8+
import { ReplayListPage } from '@/features/replays/pages/ReplayListPage';
9+
import { ReplayViewPage } from '@/features/replays/pages/ReplayViewPage';
710

811
const App = () => {
912
return (
1013
<Routes>
1114
<Route path="/login" element={<LoginPage />} />
1215
<Route path="/auth/callback" element={<AuthCallback />} />
1316
<Route path="/access-denied" element={<AccessDenied />} />
14-
<Route path="/" element={<ServerSelectionPage />} />
17+
<Route path="/" element={<ModeSelectionPage />} />
18+
<Route path="/manage" element={<ServerSelectionPage />} />
19+
<Route path="/replays" element={<ReplayListPage />} />
20+
<Route path="/replays/:sessionId" element={<ReplayViewPage />} />
1521
<Route path="/server/:guildId/*" element={<PlayerManager />} />
1622
</Routes>
1723
);

src/dashboard/src/api/@tanstack/react-query.gen.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import {
1313
getAllSessions,
1414
getMembers,
1515
getReplay,
16+
getReplays,
1617
getSession,
1718
getUser,
1819
interruptSpeech,
@@ -67,6 +68,9 @@ import type {
6768
GetReplayData,
6869
GetReplayError,
6970
GetReplayResponse,
71+
GetReplaysData,
72+
GetReplaysError,
73+
GetReplaysResponse,
7074
GetSessionData,
7175
GetSessionError,
7276
GetSessionResponse,
@@ -1057,6 +1061,31 @@ export const getMembersOptions = (options: Options<GetMembersData>) =>
10571061
queryKey: getMembersQueryKey(options),
10581062
});
10591063

1064+
export const getReplaysQueryKey = (options?: Options<GetReplaysData>) =>
1065+
createQueryKey('getReplays', options);
1066+
1067+
/**
1068+
* List replays for current user
1069+
*/
1070+
export const getReplaysOptions = (options?: Options<GetReplaysData>) =>
1071+
queryOptions<
1072+
GetReplaysResponse,
1073+
AxiosError<GetReplaysError>,
1074+
GetReplaysResponse,
1075+
ReturnType<typeof getReplaysQueryKey>
1076+
>({
1077+
queryFn: async ({ queryKey, signal }) => {
1078+
const { data } = await getReplays({
1079+
...options,
1080+
...queryKey[0],
1081+
signal,
1082+
throwOnError: true,
1083+
});
1084+
return data;
1085+
},
1086+
queryKey: getReplaysQueryKey(options),
1087+
});
1088+
10601089
/**
10611090
* Delete replay (Judges only)
10621091
*/

src/dashboard/src/api/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export {
99
getAllSessions,
1010
getMembers,
1111
getReplay,
12+
getReplays,
1213
getSession,
1314
getUser,
1415
interruptSpeech,
@@ -87,6 +88,11 @@ export type {
8788
GetReplayErrors,
8889
GetReplayResponse,
8990
GetReplayResponses,
91+
GetReplaysData,
92+
GetReplaysError,
93+
GetReplaysErrors,
94+
GetReplaysResponse,
95+
GetReplaysResponses,
9096
GetSessionData,
9197
GetSessionError,
9298
GetSessionErrors,
@@ -147,6 +153,7 @@ export type {
147153
Replay,
148154
ReplayDay,
149155
ReplayEvent,
156+
ReplayListResponse,
150157
ReplayPlayer,
151158
ReplayResponse,
152159
ResetGameData,

src/dashboard/src/api/sdk.gen.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ import type {
2525
GetReplayData,
2626
GetReplayErrors,
2727
GetReplayResponses,
28+
GetReplaysData,
29+
GetReplaysErrors,
30+
GetReplaysResponses,
2831
GetSessionData,
2932
GetSessionErrors,
3033
GetSessionResponses,
@@ -579,6 +582,17 @@ export const getMembers = <ThrowOnError extends boolean = false>(
579582
...options,
580583
});
581584

585+
/**
586+
* List replays for current user
587+
*/
588+
export const getReplays = <ThrowOnError extends boolean = false>(
589+
options?: Options<GetReplaysData, ThrowOnError>
590+
) =>
591+
(options?.client ?? client).get<GetReplaysResponses, GetReplaysErrors, ThrowOnError>({
592+
url: '/api/replays',
593+
...options,
594+
});
595+
582596
/**
583597
* Delete replay (Judges only)
584598
*/

0 commit comments

Comments
 (0)