@sudobility/sudojo_lib 0.0.49 → 0.0.50
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/hooks/useLearning.d.ts +6 -6
- package/dist/hooks/useLearning.d.ts.map +1 -1
- package/dist/hooks/useLearning.js +11 -11
- package/dist/hooks/useLearning.js.map +1 -1
- package/dist/hooks/useLevelGame.d.ts +4 -4
- package/dist/hooks/useLevelGame.d.ts.map +1 -1
- package/dist/hooks/useLevelGame.js +5 -5
- package/dist/hooks/useLevelGame.js.map +1 -1
- package/dist/hooks/useLevels.d.ts +7 -9
- package/dist/hooks/useLevels.d.ts.map +1 -1
- package/dist/hooks/useLevels.js +12 -17
- package/dist/hooks/useLevels.js.map +1 -1
- package/dist/hooks/useTechniques.d.ts +13 -13
- package/dist/hooks/useTechniques.d.ts.map +1 -1
- package/dist/hooks/useTechniques.js +22 -22
- package/dist/hooks/useTechniques.js.map +1 -1
- package/package.json +5 -5
|
@@ -10,8 +10,8 @@ export interface UseLearningOptions {
|
|
|
10
10
|
baseUrl: string;
|
|
11
11
|
/** Access token for authentication (optional for public data) */
|
|
12
12
|
token?: string;
|
|
13
|
-
/** Optional technique
|
|
14
|
-
|
|
13
|
+
/** Optional technique number (1-37) to filter learning materials */
|
|
14
|
+
technique?: number;
|
|
15
15
|
/** Optional language code to filter learning materials */
|
|
16
16
|
languageCode?: string;
|
|
17
17
|
/** Whether to enable the query */
|
|
@@ -30,8 +30,8 @@ export interface UseLearningResult {
|
|
|
30
30
|
getLearningByUuid: (uuid: string) => Learning | undefined;
|
|
31
31
|
/** Learning materials sorted by index */
|
|
32
32
|
sortedLearning: Learning[];
|
|
33
|
-
/** Group learning materials by technique
|
|
34
|
-
learningByTechnique: Map<
|
|
33
|
+
/** Group learning materials by technique number */
|
|
34
|
+
learningByTechnique: Map<number, Learning[]>;
|
|
35
35
|
/** Group learning materials by language code */
|
|
36
36
|
learningByLanguage: Map<string, Learning[]>;
|
|
37
37
|
}
|
|
@@ -43,11 +43,11 @@ export interface UseLearningResult {
|
|
|
43
43
|
*
|
|
44
44
|
* @example
|
|
45
45
|
* ```tsx
|
|
46
|
-
* function LearningContent({
|
|
46
|
+
* function LearningContent({ technique }: { technique: number }) {
|
|
47
47
|
* const { learningMaterials, isLoading, sortedLearning } = useLearning({
|
|
48
48
|
* networkClient,
|
|
49
49
|
* baseUrl: 'https://api.sudojo.com',
|
|
50
|
-
*
|
|
50
|
+
* technique,
|
|
51
51
|
* languageCode: 'en',
|
|
52
52
|
* });
|
|
53
53
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLearning.d.ts","sourceRoot":"","sources":["../../src/hooks/useLearning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"useLearning.d.ts","sourceRoot":"","sources":["../../src/hooks/useLearning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,mDAAmD;IACnD,iBAAiB,EAAE,QAAQ,EAAE,CAAC;IAC9B,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,iCAAiC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,oCAAoC;IACpC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,GAAG,SAAS,CAAC;IAC1D,yCAAyC;IACzC,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,mDAAmD;IACnD,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7C,gDAAgD;IAChD,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAiF1E;AAED,MAAM,WAAW,sBAAsB;IACrC,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,gCAAgC;IAChC,YAAY,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC9B,uCAAuC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,sBAAsB,GAC9B,qBAAqB,CAgCvB"}
|
|
@@ -11,11 +11,11 @@ import { useSudojoLearning, useSudojoLearningItem, } from '@sudobility/sudojo_cl
|
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```tsx
|
|
14
|
-
* function LearningContent({
|
|
14
|
+
* function LearningContent({ technique }: { technique: number }) {
|
|
15
15
|
* const { learningMaterials, isLoading, sortedLearning } = useLearning({
|
|
16
16
|
* networkClient,
|
|
17
17
|
* baseUrl: 'https://api.sudojo.com',
|
|
18
|
-
*
|
|
18
|
+
* technique,
|
|
19
19
|
* languageCode: 'en',
|
|
20
20
|
* });
|
|
21
21
|
*
|
|
@@ -35,16 +35,16 @@ import { useSudojoLearning, useSudojoLearningItem, } from '@sudobility/sudojo_cl
|
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
37
|
export function useLearning(options) {
|
|
38
|
-
const { networkClient, baseUrl, token = '',
|
|
38
|
+
const { networkClient, baseUrl, token = '', technique, languageCode, enabled = true, } = options;
|
|
39
39
|
const queryParams = useMemo(() => {
|
|
40
40
|
// Only return params if at least one filter is provided
|
|
41
|
-
if (
|
|
41
|
+
if (technique === undefined && !languageCode)
|
|
42
42
|
return undefined;
|
|
43
43
|
return {
|
|
44
|
-
|
|
45
|
-
language_code: languageCode ??
|
|
44
|
+
technique: technique ?? undefined,
|
|
45
|
+
language_code: languageCode ?? undefined,
|
|
46
46
|
};
|
|
47
|
-
}, [
|
|
47
|
+
}, [technique, languageCode]);
|
|
48
48
|
const { data, isLoading, error, refetch } = useSudojoLearning(networkClient, baseUrl, token, queryParams, { enabled });
|
|
49
49
|
const learningMaterials = useMemo(() => {
|
|
50
50
|
if (!data?.success || !data.data)
|
|
@@ -53,9 +53,9 @@ export function useLearning(options) {
|
|
|
53
53
|
}, [data]);
|
|
54
54
|
const sortedLearning = useMemo(() => {
|
|
55
55
|
return [...learningMaterials].sort((a, b) => {
|
|
56
|
-
// First sort by technique
|
|
57
|
-
if (a.
|
|
58
|
-
return (a.
|
|
56
|
+
// First sort by technique number, then by index
|
|
57
|
+
if (a.technique !== b.technique) {
|
|
58
|
+
return (a.technique ?? 0) - (b.technique ?? 0);
|
|
59
59
|
}
|
|
60
60
|
return a.index - b.index;
|
|
61
61
|
});
|
|
@@ -67,7 +67,7 @@ export function useLearning(options) {
|
|
|
67
67
|
const learningByTechnique = useMemo(() => {
|
|
68
68
|
const byTechnique = new Map();
|
|
69
69
|
for (const learning of sortedLearning) {
|
|
70
|
-
const key = learning.
|
|
70
|
+
const key = learning.technique ?? 0;
|
|
71
71
|
const existing = byTechnique.get(key) ?? [];
|
|
72
72
|
existing.push(learning);
|
|
73
73
|
byTechnique.set(key, existing);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLearning.js","sourceRoot":"","sources":["../../src/hooks/useLearning.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EACL,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AAoCnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,UAAU,WAAW,CAAC,OAA2B;IACrD,MAAM,EACJ,aAAa,EACb,OAAO,EACP,KAAK,GAAG,EAAE,EACV,
|
|
1
|
+
{"version":3,"file":"useLearning.js","sourceRoot":"","sources":["../../src/hooks/useLearning.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,8 @@ export interface UseLevelGameOptions {
|
|
|
13
13
|
baseUrl: string;
|
|
14
14
|
/** Access token for authentication */
|
|
15
15
|
token: string;
|
|
16
|
-
/** Level
|
|
17
|
-
|
|
16
|
+
/** Level number (1-12) to fetch game for */
|
|
17
|
+
level: number;
|
|
18
18
|
/** Whether subscription is currently active */
|
|
19
19
|
subscriptionActive?: boolean;
|
|
20
20
|
/** Whether to enable the query */
|
|
@@ -45,12 +45,12 @@ export interface UseLevelGameResult {
|
|
|
45
45
|
*
|
|
46
46
|
* @example
|
|
47
47
|
* ```tsx
|
|
48
|
-
* function LevelPlayPage({
|
|
48
|
+
* function LevelPlayPage({ level }: { level: number }) {
|
|
49
49
|
* const { board, status, refetch, nextPuzzle } = useLevelGame({
|
|
50
50
|
* networkClient,
|
|
51
51
|
* config,
|
|
52
52
|
* auth,
|
|
53
|
-
*
|
|
53
|
+
* level,
|
|
54
54
|
* subscriptionActive: subscription.isActive,
|
|
55
55
|
* });
|
|
56
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLevelGame.d.ts","sourceRoot":"","sources":["../../src/hooks/useLevelGame.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,uDAAuD;AACvD,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,eAAe,GACf,uBAAuB,GACvB,OAAO,CAAC;AAuDZ,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,
|
|
1
|
+
{"version":3,"file":"useLevelGame.d.ts","sourceRoot":"","sources":["../../src/hooks/useLevelGame.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIvD,uDAAuD;AACvD,MAAM,MAAM,eAAe,GACvB,SAAS,GACT,SAAS,GACT,eAAe,GACf,uBAAuB,GACvB,OAAO,CAAC;AAuDZ,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,0BAA0B;IAC1B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,uCAAuC;IACvC,MAAM,EAAE,eAAe,CAAC;IACxB,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,4BAA4B;IAC5B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,6BAA6B;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAmF7E"}
|
|
@@ -44,12 +44,12 @@ function isSubscriptionRequired(response, error) {
|
|
|
44
44
|
*
|
|
45
45
|
* @example
|
|
46
46
|
* ```tsx
|
|
47
|
-
* function LevelPlayPage({
|
|
47
|
+
* function LevelPlayPage({ level }: { level: number }) {
|
|
48
48
|
* const { board, status, refetch, nextPuzzle } = useLevelGame({
|
|
49
49
|
* networkClient,
|
|
50
50
|
* config,
|
|
51
51
|
* auth,
|
|
52
|
-
*
|
|
52
|
+
* level,
|
|
53
53
|
* subscriptionActive: subscription.isActive,
|
|
54
54
|
* });
|
|
55
55
|
*
|
|
@@ -63,15 +63,15 @@ function isSubscriptionRequired(response, error) {
|
|
|
63
63
|
* ```
|
|
64
64
|
*/
|
|
65
65
|
export function useLevelGame(options) {
|
|
66
|
-
const { networkClient, baseUrl, token,
|
|
66
|
+
const { networkClient, baseUrl, token, level, subscriptionActive = false, enabled = true, } = options;
|
|
67
67
|
const queryClient = useQueryClient();
|
|
68
68
|
// Track previous state to detect changes
|
|
69
69
|
const prevStateRef = useRef({
|
|
70
70
|
authToken: token,
|
|
71
71
|
subscriptionActive,
|
|
72
72
|
});
|
|
73
|
-
const queryParams = useMemo(() => ({
|
|
74
|
-
const { data, isLoading, error, refetch } = useSudojoRandomBoard(networkClient, baseUrl, token, queryParams, { enabled: enabled &&
|
|
73
|
+
const queryParams = useMemo(() => ({ level }), [level]);
|
|
74
|
+
const { data, isLoading, error, refetch } = useSudojoRandomBoard(networkClient, baseUrl, token, queryParams, { enabled: enabled && level >= 1 && level <= 12 });
|
|
75
75
|
// Determine status based on response
|
|
76
76
|
// Cast to SudojoApiResponse to check for action field
|
|
77
77
|
const apiResponse = data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLevelGame.js","sourceRoot":"","sources":["../../src/hooks/useLevelGame.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsBvD,mDAAmD;AACnD,SAAS,cAAc,CACrB,QAAgD,EAChD,KAAc;IAEd,IACE,QAAQ,EAAE,OAAO,KAAK,KAAK;QAC3B,QAAQ,CAAC,MAAM,EAAE,IAAI,KAAK,eAAe,EACzC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAA6B,CAAC;QAC1C,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,kBAAkB,CAAC;YAAE,OAAO,IAAI,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2DAA2D;AAC3D,SAAS,sBAAsB,CAC7B,QAAgD,EAChD,KAAc;IAEd,IACE,QAAQ,EAAE,OAAO,KAAK,KAAK;QAC3B,QAAQ,CAAC,MAAM,EAAE,IAAI,KAAK,uBAAuB,EACjD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,KAA6B,CAAC;QAC1C,IACE,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,qBAAqB,CAAC;YAC5C,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC,EACrC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAgCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,YAAY,CAAC,OAA4B;IACvD,MAAM,EACJ,aAAa,EACb,OAAO,EACP,KAAK,EACL,
|
|
1
|
+
{"version":3,"file":"useLevelGame.js","sourceRoot":"","sources":["../../src/hooks/useLevelGame.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,11 +22,9 @@ export interface UseLevelsResult {
|
|
|
22
22
|
error: Error | null;
|
|
23
23
|
/** Refetch levels */
|
|
24
24
|
refetch: () => void;
|
|
25
|
-
/** Get level by
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
getLevelByIndex: (index: number) => Level | undefined;
|
|
29
|
-
/** Levels sorted by index */
|
|
25
|
+
/** Get level by its number (1-12) */
|
|
26
|
+
getLevel: (level: number) => Level | undefined;
|
|
27
|
+
/** Levels sorted by level number */
|
|
30
28
|
sortedLevels: Level[];
|
|
31
29
|
/** Free levels (no subscription required) */
|
|
32
30
|
freeLevels: Level[];
|
|
@@ -52,7 +50,7 @@ export interface UseLevelsResult {
|
|
|
52
50
|
* return (
|
|
53
51
|
* <ul>
|
|
54
52
|
* {sortedLevels.map(level => (
|
|
55
|
-
* <li key={level.
|
|
53
|
+
* <li key={level.level}>{level.title}</li>
|
|
56
54
|
* ))}
|
|
57
55
|
* </ul>
|
|
58
56
|
* );
|
|
@@ -67,8 +65,8 @@ export interface UseLevelOptions {
|
|
|
67
65
|
baseUrl: string;
|
|
68
66
|
/** Access token for authentication (optional for public data) */
|
|
69
67
|
token?: string;
|
|
70
|
-
/** Level
|
|
71
|
-
|
|
68
|
+
/** Level number (1-12) to fetch */
|
|
69
|
+
level: number;
|
|
72
70
|
/** Whether to enable the query */
|
|
73
71
|
enabled?: boolean;
|
|
74
72
|
}
|
|
@@ -83,7 +81,7 @@ export interface UseLevelResult {
|
|
|
83
81
|
refetch: () => void;
|
|
84
82
|
}
|
|
85
83
|
/**
|
|
86
|
-
* Hook for fetching a single level by
|
|
84
|
+
* Hook for fetching a single level by number
|
|
87
85
|
*
|
|
88
86
|
* @param options - Hook options
|
|
89
87
|
* @returns Level data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLevels.d.ts","sourceRoot":"","sources":["../../src/hooks/useLevels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,iCAAiC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,qBAAqB;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,
|
|
1
|
+
{"version":3,"file":"useLevels.d.ts","sourceRoot":"","sources":["../../src/hooks/useLevels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,2BAA2B;IAC3B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,iCAAiC;IACjC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,qBAAqB;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,qCAAqC;IACrC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IAC/C,oCAAoC;IACpC,YAAY,EAAE,KAAK,EAAE,CAAC;IACtB,6CAA6C;IAC7C,UAAU,EAAE,KAAK,EAAE,CAAC;IACpB,6CAA6C;IAC7C,aAAa,EAAE,KAAK,EAAE,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,CA4CpE;AAED,MAAM,WAAW,eAAe;IAC9B,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,+BAA+B;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,oBAAoB;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CA0BjE"}
|
package/dist/hooks/useLevels.js
CHANGED
|
@@ -22,7 +22,7 @@ import { useSudojoLevel, useSudojoLevels } from '@sudobility/sudojo_client';
|
|
|
22
22
|
* return (
|
|
23
23
|
* <ul>
|
|
24
24
|
* {sortedLevels.map(level => (
|
|
25
|
-
* <li key={level.
|
|
25
|
+
* <li key={level.level}>{level.title}</li>
|
|
26
26
|
* ))}
|
|
27
27
|
* </ul>
|
|
28
28
|
* );
|
|
@@ -38,7 +38,7 @@ export function useLevels(options) {
|
|
|
38
38
|
return data.data;
|
|
39
39
|
}, [data]);
|
|
40
40
|
const sortedLevels = useMemo(() => {
|
|
41
|
-
return [...levels].sort((a, b) => a.
|
|
41
|
+
return [...levels].sort((a, b) => a.level - b.level);
|
|
42
42
|
}, [levels]);
|
|
43
43
|
const freeLevels = useMemo(() => {
|
|
44
44
|
return sortedLevels.filter(level => !level.requires_subscription);
|
|
@@ -46,13 +46,9 @@ export function useLevels(options) {
|
|
|
46
46
|
const premiumLevels = useMemo(() => {
|
|
47
47
|
return sortedLevels.filter(level => level.requires_subscription);
|
|
48
48
|
}, [sortedLevels]);
|
|
49
|
-
const
|
|
50
|
-
const levelMap = new Map(levels.map(l => [l.
|
|
51
|
-
return (
|
|
52
|
-
}, [levels]);
|
|
53
|
-
const getLevelByIndex = useMemo(() => {
|
|
54
|
-
const indexMap = new Map(levels.map(l => [l.index, l]));
|
|
55
|
-
return (index) => indexMap.get(index);
|
|
49
|
+
const getLevel = useMemo(() => {
|
|
50
|
+
const levelMap = new Map(levels.map(l => [l.level, l]));
|
|
51
|
+
return (level) => levelMap.get(level);
|
|
56
52
|
}, [levels]);
|
|
57
53
|
return {
|
|
58
54
|
levels,
|
|
@@ -61,31 +57,30 @@ export function useLevels(options) {
|
|
|
61
57
|
refetch: () => {
|
|
62
58
|
refetch();
|
|
63
59
|
},
|
|
64
|
-
|
|
65
|
-
getLevelByIndex,
|
|
60
|
+
getLevel,
|
|
66
61
|
sortedLevels,
|
|
67
62
|
freeLevels,
|
|
68
63
|
premiumLevels,
|
|
69
64
|
};
|
|
70
65
|
}
|
|
71
66
|
/**
|
|
72
|
-
* Hook for fetching a single level by
|
|
67
|
+
* Hook for fetching a single level by number
|
|
73
68
|
*
|
|
74
69
|
* @param options - Hook options
|
|
75
70
|
* @returns Level data
|
|
76
71
|
*/
|
|
77
72
|
export function useLevel(options) {
|
|
78
|
-
const { networkClient, baseUrl, token = '',
|
|
79
|
-
const { data, isLoading, error, refetch } = useSudojoLevel(networkClient, baseUrl, token,
|
|
80
|
-
enabled: enabled &&
|
|
73
|
+
const { networkClient, baseUrl, token = '', level, enabled = true } = options;
|
|
74
|
+
const { data, isLoading, error, refetch } = useSudojoLevel(networkClient, baseUrl, token, level, {
|
|
75
|
+
enabled: enabled && level >= 1 && level <= 12,
|
|
81
76
|
});
|
|
82
|
-
const
|
|
77
|
+
const levelData = useMemo(() => {
|
|
83
78
|
if (!data?.success || !data.data)
|
|
84
79
|
return null;
|
|
85
80
|
return data.data;
|
|
86
81
|
}, [data]);
|
|
87
82
|
return {
|
|
88
|
-
level,
|
|
83
|
+
level: levelData,
|
|
89
84
|
isLoading,
|
|
90
85
|
error: error ?? null,
|
|
91
86
|
refetch: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useLevels.js","sourceRoot":"","sources":["../../src/hooks/useLevels.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"useLevels.js","sourceRoot":"","sources":["../../src/hooks/useLevels.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,8 +10,8 @@ export interface UseTechniquesOptions {
|
|
|
10
10
|
baseUrl: string;
|
|
11
11
|
/** Access token for authentication (optional for public data) */
|
|
12
12
|
token?: string;
|
|
13
|
-
/** Optional level
|
|
14
|
-
|
|
13
|
+
/** Optional level number (1-12) to filter techniques */
|
|
14
|
+
level?: number;
|
|
15
15
|
/** Whether to enable the query */
|
|
16
16
|
enabled?: boolean;
|
|
17
17
|
}
|
|
@@ -24,12 +24,12 @@ export interface UseTechniquesResult {
|
|
|
24
24
|
error: Error | null;
|
|
25
25
|
/** Refetch techniques */
|
|
26
26
|
refetch: () => void;
|
|
27
|
-
/** Get technique by
|
|
28
|
-
|
|
29
|
-
/** Techniques sorted by
|
|
27
|
+
/** Get technique by its number (1-37) */
|
|
28
|
+
getTechniqueByNumber: (technique: number) => Technique | undefined;
|
|
29
|
+
/** Techniques sorted by technique number */
|
|
30
30
|
sortedTechniques: Technique[];
|
|
31
|
-
/** Group techniques by level
|
|
32
|
-
techniquesByLevel: Map<
|
|
31
|
+
/** Group techniques by level number */
|
|
32
|
+
techniquesByLevel: Map<number, Technique[]>;
|
|
33
33
|
}
|
|
34
34
|
/**
|
|
35
35
|
* Hook for fetching and managing solving techniques
|
|
@@ -39,11 +39,11 @@ export interface UseTechniquesResult {
|
|
|
39
39
|
*
|
|
40
40
|
* @example
|
|
41
41
|
* ```tsx
|
|
42
|
-
* function TechniqueList({
|
|
42
|
+
* function TechniqueList({ level }: { level: number }) {
|
|
43
43
|
* const { techniques, isLoading, sortedTechniques } = useTechniques({
|
|
44
44
|
* networkClient,
|
|
45
45
|
* baseUrl: 'https://api.sudojo.com',
|
|
46
|
-
*
|
|
46
|
+
* level,
|
|
47
47
|
* });
|
|
48
48
|
*
|
|
49
49
|
* if (isLoading) return <Loading />;
|
|
@@ -51,7 +51,7 @@ export interface UseTechniquesResult {
|
|
|
51
51
|
* return (
|
|
52
52
|
* <ul>
|
|
53
53
|
* {sortedTechniques.map(technique => (
|
|
54
|
-
* <li key={technique.
|
|
54
|
+
* <li key={technique.technique}>{technique.title}</li>
|
|
55
55
|
* ))}
|
|
56
56
|
* </ul>
|
|
57
57
|
* );
|
|
@@ -66,8 +66,8 @@ export interface UseTechniqueOptions {
|
|
|
66
66
|
baseUrl: string;
|
|
67
67
|
/** Access token for authentication (optional for public data) */
|
|
68
68
|
token?: string;
|
|
69
|
-
/** Technique
|
|
70
|
-
|
|
69
|
+
/** Technique number (1-37) to fetch */
|
|
70
|
+
technique: number;
|
|
71
71
|
/** Whether to enable the query */
|
|
72
72
|
enabled?: boolean;
|
|
73
73
|
}
|
|
@@ -82,7 +82,7 @@ export interface UseTechniqueResult {
|
|
|
82
82
|
refetch: () => void;
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
|
-
* Hook for fetching a single technique by
|
|
85
|
+
* Hook for fetching a single technique by number
|
|
86
86
|
*
|
|
87
87
|
* @param options - Hook options
|
|
88
88
|
* @returns Technique data
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTechniques.d.ts","sourceRoot":"","sources":["../../src/hooks/useTechniques.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf
|
|
1
|
+
{"version":3,"file":"useTechniques.d.ts","sourceRoot":"","sources":["../../src/hooks/useTechniques.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAMvD,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,oDAAoD;IACpD,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,qCAAqC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,yBAAyB;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,yCAAyC;IACzC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,SAAS,GAAG,SAAS,CAAC;IACnE,4CAA4C;IAC5C,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,uCAAuC;IACvC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;CAC7C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,oBAAoB,GAC5B,mBAAmB,CA0DrB;AAED,MAAM,WAAW,mBAAmB;IAClC,mCAAmC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,mCAAmC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,8BAA8B;IAC9B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,wBAAwB;IACxB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB,CAgC7E"}
|
|
@@ -11,11 +11,11 @@ import { useSudojoTechnique, useSudojoTechniques, } from '@sudobility/sudojo_cli
|
|
|
11
11
|
*
|
|
12
12
|
* @example
|
|
13
13
|
* ```tsx
|
|
14
|
-
* function TechniqueList({
|
|
14
|
+
* function TechniqueList({ level }: { level: number }) {
|
|
15
15
|
* const { techniques, isLoading, sortedTechniques } = useTechniques({
|
|
16
16
|
* networkClient,
|
|
17
17
|
* baseUrl: 'https://api.sudojo.com',
|
|
18
|
-
*
|
|
18
|
+
* level,
|
|
19
19
|
* });
|
|
20
20
|
*
|
|
21
21
|
* if (isLoading) return <Loading />;
|
|
@@ -23,7 +23,7 @@ import { useSudojoTechnique, useSudojoTechniques, } from '@sudobility/sudojo_cli
|
|
|
23
23
|
* return (
|
|
24
24
|
* <ul>
|
|
25
25
|
* {sortedTechniques.map(technique => (
|
|
26
|
-
* <li key={technique.
|
|
26
|
+
* <li key={technique.technique}>{technique.title}</li>
|
|
27
27
|
* ))}
|
|
28
28
|
* </ul>
|
|
29
29
|
* );
|
|
@@ -31,12 +31,12 @@ import { useSudojoTechnique, useSudojoTechniques, } from '@sudobility/sudojo_cli
|
|
|
31
31
|
* ```
|
|
32
32
|
*/
|
|
33
33
|
export function useTechniques(options) {
|
|
34
|
-
const { networkClient, baseUrl, token = '',
|
|
34
|
+
const { networkClient, baseUrl, token = '', level, enabled = true } = options;
|
|
35
35
|
const queryParams = useMemo(() => {
|
|
36
|
-
if (
|
|
36
|
+
if (level === undefined)
|
|
37
37
|
return undefined;
|
|
38
|
-
return {
|
|
39
|
-
}, [
|
|
38
|
+
return { level };
|
|
39
|
+
}, [level]);
|
|
40
40
|
const { data, isLoading, error, refetch } = useSudojoTechniques(networkClient, baseUrl, token, queryParams, { enabled });
|
|
41
41
|
const techniques = useMemo(() => {
|
|
42
42
|
if (!data?.success || !data.data)
|
|
@@ -45,21 +45,21 @@ export function useTechniques(options) {
|
|
|
45
45
|
}, [data]);
|
|
46
46
|
const sortedTechniques = useMemo(() => {
|
|
47
47
|
return [...techniques].sort((a, b) => {
|
|
48
|
-
// First sort by level
|
|
49
|
-
if (a.
|
|
50
|
-
return (a.
|
|
48
|
+
// First sort by level, then by technique number
|
|
49
|
+
if (a.level !== b.level) {
|
|
50
|
+
return (a.level ?? 0) - (b.level ?? 0);
|
|
51
51
|
}
|
|
52
|
-
return a.
|
|
52
|
+
return a.technique - b.technique;
|
|
53
53
|
});
|
|
54
54
|
}, [techniques]);
|
|
55
|
-
const
|
|
56
|
-
const techniqueMap = new Map(techniques.map(t => [t.
|
|
57
|
-
return (
|
|
55
|
+
const getTechniqueByNumber = useMemo(() => {
|
|
56
|
+
const techniqueMap = new Map(techniques.map(t => [t.technique, t]));
|
|
57
|
+
return (technique) => techniqueMap.get(technique);
|
|
58
58
|
}, [techniques]);
|
|
59
59
|
const techniquesByLevel = useMemo(() => {
|
|
60
60
|
const byLevel = new Map();
|
|
61
61
|
for (const technique of sortedTechniques) {
|
|
62
|
-
const key = technique.
|
|
62
|
+
const key = technique.level ?? 0;
|
|
63
63
|
const existing = byLevel.get(key) ?? [];
|
|
64
64
|
existing.push(technique);
|
|
65
65
|
byLevel.set(key, existing);
|
|
@@ -73,29 +73,29 @@ export function useTechniques(options) {
|
|
|
73
73
|
refetch: () => {
|
|
74
74
|
refetch();
|
|
75
75
|
},
|
|
76
|
-
|
|
76
|
+
getTechniqueByNumber,
|
|
77
77
|
sortedTechniques,
|
|
78
78
|
techniquesByLevel,
|
|
79
79
|
};
|
|
80
80
|
}
|
|
81
81
|
/**
|
|
82
|
-
* Hook for fetching a single technique by
|
|
82
|
+
* Hook for fetching a single technique by number
|
|
83
83
|
*
|
|
84
84
|
* @param options - Hook options
|
|
85
85
|
* @returns Technique data
|
|
86
86
|
*/
|
|
87
87
|
export function useTechnique(options) {
|
|
88
|
-
const { networkClient, baseUrl, token = '',
|
|
89
|
-
const { data, isLoading, error, refetch } = useSudojoTechnique(networkClient, baseUrl, token,
|
|
90
|
-
enabled: enabled &&
|
|
88
|
+
const { networkClient, baseUrl, token = '', technique, enabled = true, } = options;
|
|
89
|
+
const { data, isLoading, error, refetch } = useSudojoTechnique(networkClient, baseUrl, token, technique, {
|
|
90
|
+
enabled: enabled && technique >= 1 && technique <= 37,
|
|
91
91
|
});
|
|
92
|
-
const
|
|
92
|
+
const techniqueData = useMemo(() => {
|
|
93
93
|
if (!data?.success || !data.data)
|
|
94
94
|
return null;
|
|
95
95
|
return data.data;
|
|
96
96
|
}, [data]);
|
|
97
97
|
return {
|
|
98
|
-
technique,
|
|
98
|
+
technique: techniqueData,
|
|
99
99
|
isLoading,
|
|
100
100
|
error: error ?? null,
|
|
101
101
|
refetch: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTechniques.js","sourceRoot":"","sources":["../../src/hooks/useTechniques.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAGhC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAgCnC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,aAAa,CAC3B,OAA6B;IAE7B,MAAM,
|
|
1
|
+
{"version":3,"file":"useTechniques.js","sourceRoot":"","sources":["../../src/hooks/useTechniques.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/sudojo_lib",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.50",
|
|
4
4
|
"description": "Business logic library for Sudojo app",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"license": "MIT",
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@sudobility/di": "^1.5.30",
|
|
50
|
-
"@sudobility/sudojo_client": "^0.0.
|
|
51
|
-
"@sudobility/sudojo_types": "^1.2.
|
|
50
|
+
"@sudobility/sudojo_client": "^0.0.46",
|
|
51
|
+
"@sudobility/sudojo_types": "^1.2.11",
|
|
52
52
|
"@sudobility/types": "^1.9.48",
|
|
53
53
|
"@tanstack/react-query": "^5.90.11",
|
|
54
54
|
"@testing-library/dom": "^10.4.1",
|
|
@@ -73,8 +73,8 @@
|
|
|
73
73
|
},
|
|
74
74
|
"peerDependencies": {
|
|
75
75
|
"@sudobility/di": "^1.5.30",
|
|
76
|
-
"@sudobility/sudojo_client": "^0.0.
|
|
77
|
-
"@sudobility/sudojo_types": "^1.2.
|
|
76
|
+
"@sudobility/sudojo_client": "^0.0.46",
|
|
77
|
+
"@sudobility/sudojo_types": "^1.2.11",
|
|
78
78
|
"@sudobility/types": "^1.9.48",
|
|
79
79
|
"@tanstack/react-query": ">=5.0.0",
|
|
80
80
|
"react": ">=18.0.0",
|