@gamepark/react-client 7.1.0 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Chat/ChatChannel.d.ts +1 -1
- package/dist/Chat/index.d.ts +0 -1
- package/dist/Chat/index.js +0 -1
- package/dist/Chat/index.js.map +1 -1
- package/dist/Deckbuilding/useDeleteDeck.d.ts +5 -5
- package/dist/Deckbuilding/useDeleteDeck.js +9 -8
- package/dist/Deckbuilding/useDeleteDeck.js.map +1 -1
- package/dist/Deckbuilding/useMyDecks.d.ts +5 -5
- package/dist/Deckbuilding/useMyDecks.js +3 -6
- package/dist/Deckbuilding/useMyDecks.js.map +1 -1
- package/dist/Deckbuilding/useSaveDeck.d.ts +12 -7
- package/dist/Deckbuilding/useSaveDeck.js +16 -8
- package/dist/Deckbuilding/useSaveDeck.js.map +1 -1
- package/dist/Hooks/useChatMessages.d.ts +12 -2
- package/dist/Hooks/useChatMessages.js +30 -26
- package/dist/Hooks/useChatMessages.js.map +1 -1
- package/dist/Hooks/useMessageAuthor.js +5 -6
- package/dist/Hooks/useMessageAuthor.js.map +1 -1
- package/dist/Hooks/useRematch.d.ts +59 -5
- package/dist/Hooks/useRematch.js +5 -7
- package/dist/Hooks/useRematch.js.map +1 -1
- package/dist/Hooks/useSendMessage.d.ts +2 -4
- package/dist/Hooks/useSendMessage.js +2 -4
- package/dist/Hooks/useSendMessage.js.map +1 -1
- package/dist/Rematch/RematchQueries.d.ts +4 -4
- package/dist/User/User.d.ts +1 -1
- package/dist/User/useMe.js +4 -6
- package/dist/User/useMe.js.map +1 -1
- package/dist/api/Client/GameClientAPI.d.ts +6 -7
- package/dist/api/Client/GameClientAPI.js +32 -35
- package/dist/api/Client/GameClientAPI.js.map +1 -1
- package/dist/api/Client/GameNotificationsListener.js +15 -18
- package/dist/api/Client/GameNotificationsListener.js.map +1 -1
- package/dist/api/Client/RemoteGameLoader.js +45 -45
- package/dist/api/Client/RemoteGameLoader.js.map +1 -1
- package/dist/api/Client/apollo-client.js +0 -19
- package/dist/api/Client/apollo-client.js.map +1 -1
- package/dist/api/Client/index.d.ts +0 -1
- package/dist/api/Client/index.js +0 -1
- package/dist/api/Client/index.js.map +1 -1
- package/dist/api/boardGameCredits.d.ts +17 -0
- package/dist/api/boardGameCredits.js +127 -0
- package/dist/api/boardGameCredits.js.map +1 -0
- package/dist/api/boardGameNames.d.ts +9 -0
- package/dist/api/boardGameNames.js +119 -0
- package/dist/api/boardGameNames.js.map +1 -0
- package/dist/api/index.d.ts +3 -0
- package/dist/api/index.js +3 -0
- package/dist/api/index.js.map +1 -1
- package/dist/api/trpc/TRPCProvider.d.ts +3 -0
- package/dist/api/trpc/TRPCProvider.js +19 -0
- package/dist/api/trpc/TRPCProvider.js.map +1 -0
- package/dist/api/trpc/client.d.ts +6 -0
- package/dist/api/trpc/client.js +34 -0
- package/dist/api/trpc/client.js.map +1 -0
- package/dist/api/trpc/index.d.ts +2 -0
- package/dist/api/trpc/index.js +3 -0
- package/dist/api/trpc/index.js.map +1 -0
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/package.json +69 -63
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameClientAPI.js","sourceRoot":"","sources":["../../../src/api/Client/GameClientAPI.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"GameClientAPI.js","sourceRoot":"","sources":["../../../src/api/Client/GameClientAPI.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,29 @@
|
|
|
1
|
-
import { gql } from '@apollo/client';
|
|
2
|
-
import { useApolloClient } from '@apollo/client/react';
|
|
3
1
|
import { useEffect, useRef } from 'react';
|
|
4
2
|
import { receiveNotifications, setGameOver } from '../../Actions';
|
|
5
3
|
import { removePlayer } from '../../Actions/removePlayer';
|
|
6
4
|
import { useGameDispatch } from '../../Store';
|
|
7
|
-
import {
|
|
5
|
+
import { trpcClient } from '../trpc';
|
|
8
6
|
import { pusherClient } from './pusher';
|
|
9
|
-
const GET_NOTIFICATIONS = gql `
|
|
10
|
-
query GameNotifications($gameId: String!, $start: Int) {
|
|
11
|
-
time
|
|
12
|
-
gameNotifications(gameId: $gameId, start: $start) { ...Notifications }
|
|
13
|
-
game(id: $gameId) {
|
|
14
|
-
id players { id ...PlayerTime }
|
|
15
|
-
}
|
|
16
|
-
} ${NOTIFICATIONS} ${PLAYERS_TIME}
|
|
17
|
-
`;
|
|
18
7
|
export function GameNotificationsListener({ gameId, channelName, notificationsCount }) {
|
|
19
|
-
const client = useApolloClient();
|
|
20
8
|
const dispatch = useGameDispatch();
|
|
21
9
|
const notificationsCountRef = useRef(notificationsCount);
|
|
22
10
|
const getNotifications = async (start) => {
|
|
23
|
-
const
|
|
24
|
-
query: GET_NOTIFICATIONS,
|
|
25
|
-
variables: { gameId, start }
|
|
26
|
-
});
|
|
11
|
+
const data = await trpcClient.game.getNotifications.query({ gameId, start });
|
|
27
12
|
if (!data)
|
|
28
13
|
return console.error('Failed to collect game data');
|
|
29
|
-
dispatch(receiveNotifications({
|
|
14
|
+
dispatch(receiveNotifications({
|
|
15
|
+
notifications: data.gameNotifications,
|
|
16
|
+
notificationsIndex: start,
|
|
17
|
+
players: data.game.players.map(p => ({
|
|
18
|
+
id: p.id,
|
|
19
|
+
time: p.time ? {
|
|
20
|
+
...p.time,
|
|
21
|
+
lastChange: p.time.lastChange.toISOString(),
|
|
22
|
+
availableTime: p.time.availableTime ?? null
|
|
23
|
+
} : undefined
|
|
24
|
+
})),
|
|
25
|
+
serverTime: data.time
|
|
26
|
+
}));
|
|
30
27
|
if (data.gameNotifications.length > 0) {
|
|
31
28
|
notificationsCountRef.current = Math.max(notificationsCountRef.current, start + data.gameNotifications.length);
|
|
32
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameNotificationsListener.js","sourceRoot":"","sources":["../../../src/api/Client/GameNotificationsListener.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"GameNotificationsListener.js","sourceRoot":"","sources":["../../../src/api/Client/GameNotificationsListener.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,15 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { gql } from '@apollo/client';
|
|
3
|
-
import { useLazyQuery } from '@apollo/client/react';
|
|
4
2
|
import { useEffect, useState } from 'react';
|
|
5
3
|
import { loadGameState } from '../../Actions/loadGameState';
|
|
6
4
|
import { useGameDispatch, useGameSelector } from '../../Store';
|
|
7
|
-
import {
|
|
5
|
+
import { GameSpeed } from '../../Types';
|
|
6
|
+
import { trpc } from '../trpc';
|
|
8
7
|
import { GameNotificationsListener } from './GameNotificationsListener';
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
id
|
|
15
|
-
players {
|
|
16
|
-
id userId name avatar {...AvatarInfo} quit quitReason gamePointsDelta tournamentPoints ...PlayerTime
|
|
17
|
-
}
|
|
18
|
-
options {
|
|
19
|
-
speed maxSpareTime maxExceedTime
|
|
20
|
-
}
|
|
21
|
-
notificationsChannel mode setup state myPlayerId endDate
|
|
22
|
-
tournament {
|
|
23
|
-
number signedUp
|
|
24
|
-
}
|
|
25
|
-
version
|
|
26
|
-
}
|
|
27
|
-
} ${PLAYERS_TIME} ${AVATAR_INFO} ${NOTIFICATIONS}
|
|
28
|
-
`;
|
|
8
|
+
const DEFAULT_OPTIONS = {
|
|
9
|
+
speed: GameSpeed.Disabled,
|
|
10
|
+
maxSpareTime: 180000,
|
|
11
|
+
maxExceedTime: 60000
|
|
12
|
+
};
|
|
29
13
|
export function RemoteGameLoader({ gameId, version = 1 }) {
|
|
30
14
|
const dispatch = useGameDispatch();
|
|
31
15
|
const isOver = useGameSelector(state => state.gameOver);
|
|
@@ -35,30 +19,46 @@ export function RemoteGameLoader({ gameId, version = 1 }) {
|
|
|
35
19
|
setTimeout(() => setIsOverForLongEnough(isOver), 10000);
|
|
36
20
|
}
|
|
37
21
|
}, [isOver]);
|
|
38
|
-
const
|
|
22
|
+
const { data } = trpc.game.getGame.useQuery(gameId, {
|
|
23
|
+
refetchOnMount: false,
|
|
24
|
+
refetchOnWindowFocus: false
|
|
25
|
+
});
|
|
39
26
|
useEffect(() => {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
window.location.href = url.href;
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
dispatch(loadGameState({
|
|
52
|
-
...({ ...game, notifications: gameNotifications }),
|
|
53
|
-
playerId: { ...game, notifications: gameNotifications }.myPlayerId ?? undefined,
|
|
54
|
-
serverTime: time,
|
|
55
|
-
endDate: { ...game, notifications: gameNotifications }.endDate ?? undefined,
|
|
56
|
-
tournament: { ...game, notifications: gameNotifications }.tournament ?? undefined
|
|
57
|
-
}));
|
|
58
|
-
}
|
|
27
|
+
if (data) {
|
|
28
|
+
const { game, time, gameNotifications } = data;
|
|
29
|
+
const remoteVersion = game.version;
|
|
30
|
+
if (remoteVersion && remoteVersion !== version) {
|
|
31
|
+
const url = new URL(window.location.href);
|
|
32
|
+
const path = url.hostname.split('.');
|
|
33
|
+
url.hostname = `${path[0]}.v${remoteVersion}.${path[path.length - 2]}.${path[path.length - 1]}`;
|
|
34
|
+
window.location.href = url.href;
|
|
59
35
|
}
|
|
60
|
-
|
|
61
|
-
|
|
36
|
+
else {
|
|
37
|
+
dispatch(loadGameState({
|
|
38
|
+
...game,
|
|
39
|
+
mode: game.mode,
|
|
40
|
+
options: game.options ? {
|
|
41
|
+
speed: game.options.speed ?? GameSpeed.Disabled,
|
|
42
|
+
maxSpareTime: game.options.maxSpareTime ?? DEFAULT_OPTIONS.maxSpareTime,
|
|
43
|
+
maxExceedTime: game.options.maxExceedTime ?? DEFAULT_OPTIONS.maxExceedTime
|
|
44
|
+
} : DEFAULT_OPTIONS,
|
|
45
|
+
players: game.players.map(p => ({
|
|
46
|
+
...p,
|
|
47
|
+
time: p.time ? {
|
|
48
|
+
...p.time,
|
|
49
|
+
lastChange: p.time.lastChange.toISOString(),
|
|
50
|
+
availableTime: p.time.availableTime ?? null
|
|
51
|
+
} : undefined
|
|
52
|
+
})),
|
|
53
|
+
notifications: gameNotifications,
|
|
54
|
+
playerId: game.myPlayerId ?? undefined,
|
|
55
|
+
serverTime: time,
|
|
56
|
+
endDate: game.endDate ?? undefined,
|
|
57
|
+
tournament: game.tournament ?? undefined
|
|
58
|
+
}));
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}, [data]);
|
|
62
62
|
if (!data || data.game.endDate || isOverForLongEnough)
|
|
63
63
|
return null;
|
|
64
64
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteGameLoader.js","sourceRoot":"","sources":["../../../src/api/Client/RemoteGameLoader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RemoteGameLoader.js","sourceRoot":"","sources":["../../../src/api/Client/RemoteGameLoader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC9D,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,MAAM,eAAe,GAAG;IACtB,KAAK,EAAE,SAAS,CAAC,QAAQ;IACzB,YAAY,EAAE,MAAM;IACpB,aAAa,EAAE,KAAK;CACrB,CAAA;AAED,MAAM,UAAU,gBAAgB,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAwC;IAC5F,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAA;IAClC,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACvD,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IACtE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAE,KAAK,CAAC,CAAA;QACzD,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACZ,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE;QAClD,cAAc,EAAE,KAAK;QACrB,oBAAoB,EAAE,KAAK;KAC5B,CAAC,CAAA;IACF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAA;YAC9C,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAA;YAClC,IAAI,aAAa,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;gBAC/C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;gBACzC,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBACpC,GAAG,CAAC,QAAQ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAA;gBAC/F,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,aAAa,CAAC;oBACrB,GAAG,IAAI;oBACP,IAAI,EAAE,IAAI,CAAC,IAAgB;oBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;wBACtB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAkB,IAAI,SAAS,CAAC,QAAQ;wBAC5D,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,eAAe,CAAC,YAAY;wBACvE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,eAAe,CAAC,aAAa;qBAC3E,CAAC,CAAC,CAAC,eAAe;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAC9B,GAAG,CAAC;wBACJ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;4BACb,GAAG,CAAC,CAAC,IAAI;4BACT,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;4BAC3C,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI;yBAC5C,CAAC,CAAC,CAAC,SAAS;qBACd,CAAC,CAAC;oBACH,aAAa,EAAE,iBAAiB;oBAChC,QAAQ,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;oBACtC,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,SAAS;oBAClC,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,SAAS;iBACzC,CAAC,CAAC,CAAA;YACL,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IACV,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,mBAAmB;QAAE,OAAO,IAAI,CAAA;;QAC7D,OAAO,KAAC,yBAAyB,IAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,IAAI,QAAQ,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EACjF,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAA;AAC7F,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ApolloClient, ApolloLink, HttpLink, InMemoryCache } from '@apollo/client';
|
|
2
2
|
import { RetryLink } from '@apollo/client/link/retry';
|
|
3
|
-
import dayjs from 'dayjs';
|
|
4
3
|
import { PLATFORM_URI } from './GameClientAPI';
|
|
5
4
|
let apolloClient;
|
|
6
5
|
export function getApolloClient() {
|
|
@@ -14,24 +13,6 @@ function initApolloClient() {
|
|
|
14
13
|
return new ApolloClient({
|
|
15
14
|
link: ApolloLink.from([new RetryLink(), httpLink]),
|
|
16
15
|
cache: new InMemoryCache({
|
|
17
|
-
typePolicies: {
|
|
18
|
-
ChatChannel: {
|
|
19
|
-
keyFields: ['name'],
|
|
20
|
-
fields: {
|
|
21
|
-
messages: {
|
|
22
|
-
keyArgs: false,
|
|
23
|
-
merge(existing = [], incoming = []) {
|
|
24
|
-
return [...incoming, ...existing]
|
|
25
|
-
.sort((m1, m2) => dayjs(m2.date).unix() - dayjs(m1.date).unix())
|
|
26
|
-
.filter((message, index, messages) => index === 0 || message.id !== messages[index - 1].id);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
},
|
|
31
|
-
Message: {
|
|
32
|
-
keyFields: false
|
|
33
|
-
}
|
|
34
|
-
},
|
|
35
16
|
possibleTypes: {
|
|
36
17
|
GameNotification: ['MovePlayedNotification', 'MoveUndoneNotification']
|
|
37
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apollo-client.js","sourceRoot":"","sources":["../../../src/api/Client/apollo-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"apollo-client.js","sourceRoot":"","sources":["../../../src/api/Client/apollo-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,IAAI,YAAsC,CAAA;AAE1C,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,GAAG,gBAAgB,EAAE,CAAA;IACnC,CAAC;IACD,OAAO,YAAY,CAAA;AACrB,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,EAAE,GAAG,EAAE,YAAY,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAA;IACtI,OAAO,IAAI,YAAY,CAAC;QACtB,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,EAAE,EAAE,QAAQ,CAAC,CAAC;QAClD,KAAK,EAAE,IAAI,aAAa,CAAC;YACvB,aAAa,EAAE;gBACb,gBAAgB,EAAE,CAAC,wBAAwB,EAAE,wBAAwB,CAAC;aACvE;SACF,CAAC;KACH,CAAC,CAAA;AACJ,CAAC"}
|
package/dist/api/Client/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/Client/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/api/Client/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface BoardGameCredits {
|
|
2
|
+
authors: string[];
|
|
3
|
+
illustrators: string[];
|
|
4
|
+
graphics: string[];
|
|
5
|
+
musicians: string[];
|
|
6
|
+
publishers: string[];
|
|
7
|
+
developers: string[];
|
|
8
|
+
}
|
|
9
|
+
export declare function getBoardGameCreditsFromCache(boardGameId: string): BoardGameCredits | null;
|
|
10
|
+
export declare function getBoardGameCredits(boardGameId: string): Promise<BoardGameCredits>;
|
|
11
|
+
export declare function clearBoardGameCreditsCache(): void;
|
|
12
|
+
export declare function useGetBoardGameCredits(boardGameId: string): {
|
|
13
|
+
credits: BoardGameCredits | undefined;
|
|
14
|
+
loading: boolean;
|
|
15
|
+
error: Error | undefined;
|
|
16
|
+
};
|
|
17
|
+
export declare function useGetBoardGameCreditsFn(): (boardGameId: string) => Promise<BoardGameCredits>;
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { PLATFORM_URI } from './Client';
|
|
2
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
|
+
const CACHE_KEY_PREFIX = 'boardGameCredits:';
|
|
4
|
+
const CACHE_VERSION = 'v1';
|
|
5
|
+
const CACHE_DURATION_MS = 7 * 24 * 60 * 60 * 1000;
|
|
6
|
+
function getCacheKey(boardGameId) {
|
|
7
|
+
return `${CACHE_KEY_PREFIX}${boardGameId}`;
|
|
8
|
+
}
|
|
9
|
+
export function getBoardGameCreditsFromCache(boardGameId) {
|
|
10
|
+
const cacheKey = getCacheKey(boardGameId);
|
|
11
|
+
return getFromCache(cacheKey);
|
|
12
|
+
}
|
|
13
|
+
export async function getBoardGameCredits(boardGameId) {
|
|
14
|
+
const cacheKey = getCacheKey(boardGameId);
|
|
15
|
+
const cached = getFromCache(cacheKey);
|
|
16
|
+
if (cached) {
|
|
17
|
+
return cached;
|
|
18
|
+
}
|
|
19
|
+
const url = `${PLATFORM_URI}/api/board-game-credits?id=${encodeURIComponent(boardGameId)}`;
|
|
20
|
+
const response = await fetch(url, {
|
|
21
|
+
credentials: 'include'
|
|
22
|
+
});
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error(`Failed to fetch board game credits: ${response.status}`);
|
|
25
|
+
}
|
|
26
|
+
const data = await response.json();
|
|
27
|
+
if (!data || typeof data !== 'object') {
|
|
28
|
+
throw new Error('Invalid response: expected object');
|
|
29
|
+
}
|
|
30
|
+
const credits = {
|
|
31
|
+
authors: Array.isArray(data.authors) ? data.authors : [],
|
|
32
|
+
illustrators: Array.isArray(data.illustrators) ? data.illustrators : [],
|
|
33
|
+
graphics: Array.isArray(data.graphics) ? data.graphics : [],
|
|
34
|
+
musicians: Array.isArray(data.musicians) ? data.musicians : [],
|
|
35
|
+
publishers: Array.isArray(data.publishers) ? data.publishers : [],
|
|
36
|
+
developers: Array.isArray(data.developers) ? data.developers : []
|
|
37
|
+
};
|
|
38
|
+
saveToCache(cacheKey, credits);
|
|
39
|
+
return credits;
|
|
40
|
+
}
|
|
41
|
+
function getFromCache(key) {
|
|
42
|
+
if (typeof localStorage === 'undefined') {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
const item = localStorage.getItem(key);
|
|
47
|
+
if (!item) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const entry = JSON.parse(item);
|
|
51
|
+
if (entry.version !== CACHE_VERSION) {
|
|
52
|
+
localStorage.removeItem(key);
|
|
53
|
+
return null;
|
|
54
|
+
}
|
|
55
|
+
const now = Date.now();
|
|
56
|
+
if (now - entry.timestamp > CACHE_DURATION_MS) {
|
|
57
|
+
localStorage.removeItem(key);
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return entry.credits;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
localStorage.removeItem(key);
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function saveToCache(key, credits) {
|
|
68
|
+
if (typeof localStorage === 'undefined') {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
try {
|
|
72
|
+
const entry = {
|
|
73
|
+
credits,
|
|
74
|
+
timestamp: Date.now(),
|
|
75
|
+
version: CACHE_VERSION
|
|
76
|
+
};
|
|
77
|
+
localStorage.setItem(key, JSON.stringify(entry));
|
|
78
|
+
}
|
|
79
|
+
catch (error) {
|
|
80
|
+
console.warn('Failed to cache board game credits:', error);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export function clearBoardGameCreditsCache() {
|
|
84
|
+
if (typeof localStorage === 'undefined') {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const keys = Object.keys(localStorage);
|
|
89
|
+
for (const key of keys) {
|
|
90
|
+
if (key.startsWith(CACHE_KEY_PREFIX)) {
|
|
91
|
+
localStorage.removeItem(key);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
console.warn('Failed to clear board game credits cache:', error);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
export function useGetBoardGameCredits(boardGameId) {
|
|
100
|
+
const cachedCredits = useMemo(() => getBoardGameCreditsFromCache(boardGameId), [boardGameId]);
|
|
101
|
+
const [credits, setCredits] = useState(cachedCredits ?? undefined);
|
|
102
|
+
const [loading, setLoading] = useState(!cachedCredits);
|
|
103
|
+
const [error, setError] = useState();
|
|
104
|
+
useEffect(() => {
|
|
105
|
+
if (cachedCredits) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
setLoading(true);
|
|
109
|
+
setError(undefined);
|
|
110
|
+
getBoardGameCredits(boardGameId)
|
|
111
|
+
.then((result) => {
|
|
112
|
+
setCredits(result);
|
|
113
|
+
setLoading(false);
|
|
114
|
+
})
|
|
115
|
+
.catch((err) => {
|
|
116
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
117
|
+
setLoading(false);
|
|
118
|
+
});
|
|
119
|
+
}, [boardGameId, cachedCredits]);
|
|
120
|
+
return { credits, loading, error };
|
|
121
|
+
}
|
|
122
|
+
export function useGetBoardGameCreditsFn() {
|
|
123
|
+
return useCallback(async (boardGameId) => {
|
|
124
|
+
return getBoardGameCredits(boardGameId);
|
|
125
|
+
}, []);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=boardGameCredits.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boardGameCredits.js","sourceRoot":"","sources":["../../src/api/boardGameCredits.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function getBoardGameNameFromCache(boardGameId: string, locale: string): string | null;
|
|
2
|
+
export declare function getBoardGameName(boardGameId: string, locale: string): Promise<string>;
|
|
3
|
+
export declare function clearBoardGameNameCache(): void;
|
|
4
|
+
export declare function useGetBoardGameName(boardGameId: string, locale: string): {
|
|
5
|
+
name: string | undefined;
|
|
6
|
+
loading: boolean;
|
|
7
|
+
error: Error | undefined;
|
|
8
|
+
};
|
|
9
|
+
export declare function useGetBoardGameNameFn(): (boardGameId: string, locale: string) => Promise<string>;
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { PLATFORM_URI } from './Client';
|
|
2
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
3
|
+
const CACHE_KEY_PREFIX = 'boardGameName:';
|
|
4
|
+
const CACHE_VERSION = 'v1';
|
|
5
|
+
const CACHE_DURATION_MS = 7 * 24 * 60 * 60 * 1000;
|
|
6
|
+
function getCacheKey(boardGameId, locale) {
|
|
7
|
+
return `${CACHE_KEY_PREFIX}${boardGameId}:${locale}`;
|
|
8
|
+
}
|
|
9
|
+
export function getBoardGameNameFromCache(boardGameId, locale) {
|
|
10
|
+
const cacheKey = getCacheKey(boardGameId, locale);
|
|
11
|
+
return getFromCache(cacheKey);
|
|
12
|
+
}
|
|
13
|
+
export async function getBoardGameName(boardGameId, locale) {
|
|
14
|
+
const cacheKey = getCacheKey(boardGameId, locale);
|
|
15
|
+
const cached = getFromCache(cacheKey);
|
|
16
|
+
if (cached) {
|
|
17
|
+
return cached;
|
|
18
|
+
}
|
|
19
|
+
const url = `${PLATFORM_URI}/api/board-game-name?id=${encodeURIComponent(boardGameId)}&locale=${encodeURIComponent(locale)}`;
|
|
20
|
+
const response = await fetch(url, {
|
|
21
|
+
credentials: 'include'
|
|
22
|
+
});
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
throw new Error(`Failed to fetch board game name: ${response.status}`);
|
|
25
|
+
}
|
|
26
|
+
const data = await response.json();
|
|
27
|
+
if (!data.name) {
|
|
28
|
+
throw new Error('Invalid response: missing name field');
|
|
29
|
+
}
|
|
30
|
+
saveToCache(cacheKey, data.name);
|
|
31
|
+
return data.name;
|
|
32
|
+
}
|
|
33
|
+
function getFromCache(key) {
|
|
34
|
+
if (typeof localStorage === 'undefined') {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
const item = localStorage.getItem(key);
|
|
39
|
+
if (!item) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const entry = JSON.parse(item);
|
|
43
|
+
if (entry.version !== CACHE_VERSION) {
|
|
44
|
+
localStorage.removeItem(key);
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const now = Date.now();
|
|
48
|
+
if (now - entry.timestamp > CACHE_DURATION_MS) {
|
|
49
|
+
localStorage.removeItem(key);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return entry.name;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
localStorage.removeItem(key);
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function saveToCache(key, name) {
|
|
60
|
+
if (typeof localStorage === 'undefined') {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const entry = {
|
|
65
|
+
name,
|
|
66
|
+
timestamp: Date.now(),
|
|
67
|
+
version: CACHE_VERSION
|
|
68
|
+
};
|
|
69
|
+
localStorage.setItem(key, JSON.stringify(entry));
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
console.warn('Failed to cache board game name:', error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export function clearBoardGameNameCache() {
|
|
76
|
+
if (typeof localStorage === 'undefined') {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
const keys = Object.keys(localStorage);
|
|
81
|
+
for (const key of keys) {
|
|
82
|
+
if (key.startsWith(CACHE_KEY_PREFIX)) {
|
|
83
|
+
localStorage.removeItem(key);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
console.warn('Failed to clear board game name cache:', error);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export function useGetBoardGameName(boardGameId, locale) {
|
|
92
|
+
const cachedName = useMemo(() => getBoardGameNameFromCache(boardGameId, locale), [boardGameId, locale]);
|
|
93
|
+
const [name, setName] = useState(cachedName ?? undefined);
|
|
94
|
+
const [loading, setLoading] = useState(!cachedName);
|
|
95
|
+
const [error, setError] = useState();
|
|
96
|
+
useEffect(() => {
|
|
97
|
+
if (cachedName) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
setLoading(true);
|
|
101
|
+
setError(undefined);
|
|
102
|
+
getBoardGameName(boardGameId, locale)
|
|
103
|
+
.then((result) => {
|
|
104
|
+
setName(result);
|
|
105
|
+
setLoading(false);
|
|
106
|
+
})
|
|
107
|
+
.catch((err) => {
|
|
108
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
109
|
+
setLoading(false);
|
|
110
|
+
});
|
|
111
|
+
}, [boardGameId, locale, cachedName]);
|
|
112
|
+
return { name, loading, error };
|
|
113
|
+
}
|
|
114
|
+
export function useGetBoardGameNameFn() {
|
|
115
|
+
return useCallback(async (boardGameId, locale) => {
|
|
116
|
+
return getBoardGameName(boardGameId, locale);
|
|
117
|
+
}, []);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=boardGameNames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boardGameNames.js","sourceRoot":"","sources":["../../src/api/boardGameNames.ts"],"names":[],"mappings":"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"}
|
package/dist/api/index.d.ts
CHANGED
package/dist/api/index.js
CHANGED
package/dist/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,QAAQ,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { getTRPCLinks, trpc } from './client';
|
|
5
|
+
export function TRPCProvider({ children }) {
|
|
6
|
+
const [queryClient] = useState(() => new QueryClient({
|
|
7
|
+
defaultOptions: {
|
|
8
|
+
queries: {
|
|
9
|
+
staleTime: 5000,
|
|
10
|
+
retry: 1
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
}));
|
|
14
|
+
const [trpcClient] = useState(() => trpc.createClient({
|
|
15
|
+
links: getTRPCLinks()
|
|
16
|
+
}));
|
|
17
|
+
return (_jsx(trpc.Provider, { client: trpcClient, queryClient: queryClient, children: _jsx(QueryClientProvider, { client: queryClient, children: children }) }));
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=TRPCProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TRPCProvider.js","sourceRoot":"","sources":["../../../src/api/trpc/TRPCProvider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAqB7C,MAAM,UAAU,YAAY,CAAC,EAAE,QAAQ,EAAiC;IACtE,MAAM,CAAC,WAAW,CAAC,GAAG,QAAQ,CAC5B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;QACd,cAAc,EAAE;YACd,OAAO,EAAE;gBACP,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,CAAC;aACT;SACF;KACF,CAAC,CACL,CAAA;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CACjC,IAAI,CAAC,YAAY,CAAC;QAChB,KAAK,EAAE,YAAY,EAAE;KACtB,CAAC,CACH,CAAA;IAED,OAAO,CACL,KAAC,IAAI,CAAC,QAAQ,IAAC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,YACzD,KAAC,mBAAmB,IAAC,MAAM,EAAE,WAAW,YAAG,QAAQ,GAAuB,GAC5D,CACjB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type TRPCClient } from '@trpc/client';
|
|
2
|
+
import { type CreateTRPCReact } from '@trpc/react-query';
|
|
3
|
+
import type { GameApiRouter } from '@gamepark/api-types';
|
|
4
|
+
export declare const trpc: CreateTRPCReact<GameApiRouter, unknown>;
|
|
5
|
+
export declare const trpcClient: TRPCClient<GameApiRouter>;
|
|
6
|
+
export declare function getTRPCLinks(): import("@trpc/client").TRPCLink<import("@trpc/server").AnyRouter>[];
|