@johnqh/indexer_client 0.0.1 → 0.0.3
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/index.d.ts +9 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +9 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useCreateNonce.d.ts +10 -0
- package/dist/hooks/useCreateNonce.d.ts.map +1 -0
- package/dist/hooks/useCreateNonce.js +38 -0
- package/dist/hooks/useCreateNonce.js.map +1 -0
- package/dist/hooks/useGetDelegatedFrom.d.ts +10 -0
- package/dist/hooks/useGetDelegatedFrom.d.ts.map +1 -0
- package/dist/hooks/useGetDelegatedFrom.js +38 -0
- package/dist/hooks/useGetDelegatedFrom.js.map +1 -0
- package/dist/hooks/useGetDelegatedTo.d.ts +10 -0
- package/dist/hooks/useGetDelegatedTo.d.ts.map +1 -0
- package/dist/hooks/useGetDelegatedTo.js +38 -0
- package/dist/hooks/useGetDelegatedTo.js.map +1 -0
- package/dist/hooks/useGetEntitlement.d.ts +10 -0
- package/dist/hooks/useGetEntitlement.d.ts.map +1 -0
- package/dist/hooks/useGetEntitlement.js +38 -0
- package/dist/hooks/useGetEntitlement.js.map +1 -0
- package/dist/hooks/useGetNonce.d.ts +10 -0
- package/dist/hooks/useGetNonce.d.ts.map +1 -0
- package/dist/hooks/useGetNonce.js +38 -0
- package/dist/hooks/useGetNonce.js.map +1 -0
- package/dist/hooks/useGetPointsBalance.d.ts +10 -0
- package/dist/hooks/useGetPointsBalance.d.ts.map +1 -0
- package/dist/hooks/useGetPointsBalance.js +38 -0
- package/dist/hooks/useGetPointsBalance.js.map +1 -0
- package/dist/hooks/useGetSigningMessage.d.ts +10 -0
- package/dist/hooks/useGetSigningMessage.d.ts.map +1 -0
- package/dist/hooks/useGetSigningMessage.js +43 -0
- package/dist/hooks/useGetSigningMessage.js.map +1 -0
- package/dist/hooks/useGetWalletAccounts.d.ts +10 -0
- package/dist/hooks/useGetWalletAccounts.d.ts.map +1 -0
- package/dist/hooks/useGetWalletAccounts.js +42 -0
- package/dist/hooks/useGetWalletAccounts.js.map +1 -0
- package/dist/hooks/useIndexerMail.d.ts.map +1 -1
- package/dist/hooks/useIndexerMail.js +258 -125
- package/dist/hooks/useIndexerMail.js.map +1 -1
- package/dist/hooks/useIndexerPoints.d.ts.map +1 -1
- package/dist/hooks/useIndexerPoints.js +59 -66
- package/dist/hooks/useIndexerPoints.js.map +1 -1
- package/dist/hooks/useValidateUsername.d.ts +10 -0
- package/dist/hooks/useValidateUsername.d.ts.map +1 -0
- package/dist/hooks/useValidateUsername.js +38 -0
- package/dist/hooks/useValidateUsername.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
@@ -1,144 +1,277 @@
|
|
1
|
-
import { useCallback } from 'react';
|
1
|
+
import { useCallback, useMemo, useState } from 'react';
|
2
|
+
import { useMutation } from '@tanstack/react-query';
|
2
3
|
import { IndexerClient } from '../network/IndexerClient';
|
3
|
-
import { useApiCall, } from '@johnqh/types';
|
4
4
|
import { IndexerMockData } from './mocks';
|
5
5
|
const useIndexerMail = (endpointUrl, dev = false, devMode = false) => {
|
6
|
-
const
|
7
|
-
const
|
8
|
-
|
6
|
+
const [error, setError] = useState(null);
|
7
|
+
const indexerClient = useMemo(() => new IndexerClient(endpointUrl, dev), [endpointUrl, dev]);
|
8
|
+
const clearError = useCallback(() => {
|
9
|
+
setError(null);
|
10
|
+
}, []);
|
11
|
+
const validateUsernameMutation = useMutation({
|
12
|
+
mutationFn: async (username) => {
|
13
|
+
setError(null);
|
14
|
+
try {
|
15
|
+
return await indexerClient.validateUsername(username);
|
16
|
+
}
|
17
|
+
catch (err) {
|
18
|
+
if (devMode) {
|
19
|
+
console.warn('[DevMode] validateUsername failed, returning mock data:', err);
|
20
|
+
return IndexerMockData.getValidation(username);
|
21
|
+
}
|
22
|
+
const errorMessage = err instanceof Error ? err.message : 'Validation failed';
|
23
|
+
setError(errorMessage);
|
24
|
+
throw err;
|
25
|
+
}
|
26
|
+
},
|
9
27
|
});
|
10
|
-
const
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
if (devMode) {
|
16
|
-
console.warn('[DevMode] validateUsername failed, returning mock data:', err);
|
17
|
-
return IndexerMockData.getValidation(username);
|
28
|
+
const getSigningMessageMutation = useMutation({
|
29
|
+
mutationFn: async ({ walletAddress, chainId, domain, url, }) => {
|
30
|
+
setError(null);
|
31
|
+
try {
|
32
|
+
return await indexerClient.getMessage(chainId, walletAddress, domain, url);
|
18
33
|
}
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
if (devMode) {
|
28
|
-
console.warn('[DevMode] getSigningMessage failed, returning mock data:', err);
|
29
|
-
return IndexerMockData.getSigningMessage(walletAddress, chainId, domain);
|
34
|
+
catch (err) {
|
35
|
+
if (devMode) {
|
36
|
+
console.warn('[DevMode] getSigningMessage failed, returning mock data:', err);
|
37
|
+
return IndexerMockData.getSigningMessage(walletAddress, chainId, domain);
|
38
|
+
}
|
39
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get signing message';
|
40
|
+
setError(errorMessage);
|
41
|
+
throw err;
|
30
42
|
}
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
catch (err) {
|
39
|
-
if (devMode) {
|
40
|
-
console.warn('[DevMode] getPointsLeaderboard failed, returning mock data:', err);
|
41
|
-
return IndexerMockData.getLeaderboard();
|
43
|
+
},
|
44
|
+
});
|
45
|
+
const getPointsLeaderboardMutation = useMutation({
|
46
|
+
mutationFn: async (count = 10) => {
|
47
|
+
setError(null);
|
48
|
+
try {
|
49
|
+
return await indexerClient.getPointsLeaderboard(count);
|
42
50
|
}
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
if (devMode) {
|
52
|
-
console.warn('[DevMode] getPointsSiteStats failed, returning mock data:', err);
|
53
|
-
return IndexerMockData.getSiteStats();
|
51
|
+
catch (err) {
|
52
|
+
if (devMode) {
|
53
|
+
console.warn('[DevMode] getPointsLeaderboard failed, returning mock data:', err);
|
54
|
+
return IndexerMockData.getLeaderboard();
|
55
|
+
}
|
56
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get leaderboard';
|
57
|
+
setError(errorMessage);
|
58
|
+
throw err;
|
54
59
|
}
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
catch (err) {
|
63
|
-
if (devMode) {
|
64
|
-
console.warn('[DevMode] getWalletAccounts failed, returning mock data:', err);
|
65
|
-
return IndexerMockData.getWalletAccounts(walletAddress);
|
60
|
+
},
|
61
|
+
});
|
62
|
+
const getPointsSiteStatsMutation = useMutation({
|
63
|
+
mutationFn: async () => {
|
64
|
+
setError(null);
|
65
|
+
try {
|
66
|
+
return await indexerClient.getPointsSiteStats();
|
66
67
|
}
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
if (devMode) {
|
76
|
-
console.warn('[DevMode] getDelegatedTo failed, returning mock data:', err);
|
77
|
-
return IndexerMockData.getDelegatedTo(walletAddress);
|
68
|
+
catch (err) {
|
69
|
+
if (devMode) {
|
70
|
+
console.warn('[DevMode] getPointsSiteStats failed, returning mock data:', err);
|
71
|
+
return IndexerMockData.getSiteStats();
|
72
|
+
}
|
73
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get site stats';
|
74
|
+
setError(errorMessage);
|
75
|
+
throw err;
|
78
76
|
}
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
catch (err) {
|
87
|
-
if (devMode) {
|
88
|
-
console.warn('[DevMode] getDelegatedFrom failed, returning mock data:', err);
|
89
|
-
return IndexerMockData.getDelegatedFrom(walletAddress);
|
77
|
+
},
|
78
|
+
});
|
79
|
+
const getWalletAccountsMutation = useMutation({
|
80
|
+
mutationFn: async ({ walletAddress, signature, message, referralCode, }) => {
|
81
|
+
setError(null);
|
82
|
+
try {
|
83
|
+
return await indexerClient.getWalletAccounts(walletAddress, signature, message, referralCode);
|
90
84
|
}
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
if (devMode) {
|
100
|
-
console.warn('[DevMode] createNonce failed, returning mock data:', err);
|
101
|
-
return IndexerMockData.createNonce(username);
|
85
|
+
catch (err) {
|
86
|
+
if (devMode) {
|
87
|
+
console.warn('[DevMode] getWalletAccounts failed, returning mock data:', err);
|
88
|
+
return IndexerMockData.getWalletAccounts(walletAddress);
|
89
|
+
}
|
90
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get wallet accounts';
|
91
|
+
setError(errorMessage);
|
92
|
+
throw err;
|
102
93
|
}
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
catch (err) {
|
111
|
-
if (devMode) {
|
112
|
-
console.warn('[DevMode] getNonce failed, returning mock data:', err);
|
113
|
-
return IndexerMockData.getNonce(username);
|
94
|
+
},
|
95
|
+
});
|
96
|
+
const getDelegatedToMutation = useMutation({
|
97
|
+
mutationFn: async ({ walletAddress, signature, message, }) => {
|
98
|
+
setError(null);
|
99
|
+
try {
|
100
|
+
return await indexerClient.getDelegatedTo(walletAddress, signature, message);
|
114
101
|
}
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
if (devMode) {
|
124
|
-
console.warn('[DevMode] getEntitlement failed, returning mock data:', err);
|
125
|
-
return IndexerMockData.getEntitlement(walletAddress);
|
102
|
+
catch (err) {
|
103
|
+
if (devMode) {
|
104
|
+
console.warn('[DevMode] getDelegatedTo failed, returning mock data:', err);
|
105
|
+
return IndexerMockData.getDelegatedTo(walletAddress);
|
106
|
+
}
|
107
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get delegated to';
|
108
|
+
setError(errorMessage);
|
109
|
+
throw err;
|
126
110
|
}
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
111
|
+
},
|
112
|
+
});
|
113
|
+
const getDelegatedFromMutation = useMutation({
|
114
|
+
mutationFn: async ({ walletAddress, signature, message, }) => {
|
115
|
+
setError(null);
|
116
|
+
try {
|
117
|
+
return await indexerClient.getDelegatedFrom(walletAddress, signature, message);
|
118
|
+
}
|
119
|
+
catch (err) {
|
120
|
+
if (devMode) {
|
121
|
+
console.warn('[DevMode] getDelegatedFrom failed, returning mock data:', err);
|
122
|
+
return IndexerMockData.getDelegatedFrom(walletAddress);
|
123
|
+
}
|
124
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get delegated from';
|
125
|
+
setError(errorMessage);
|
126
|
+
throw err;
|
127
|
+
}
|
128
|
+
},
|
129
|
+
});
|
130
|
+
const createNonceMutation = useMutation({
|
131
|
+
mutationFn: async ({ username, signature, message, }) => {
|
132
|
+
setError(null);
|
133
|
+
try {
|
134
|
+
return await indexerClient.createNonce(username, signature, message);
|
135
|
+
}
|
136
|
+
catch (err) {
|
137
|
+
if (devMode) {
|
138
|
+
console.warn('[DevMode] createNonce failed, returning mock data:', err);
|
139
|
+
return IndexerMockData.createNonce(username);
|
140
|
+
}
|
141
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to create nonce';
|
142
|
+
setError(errorMessage);
|
143
|
+
throw err;
|
138
144
|
}
|
139
|
-
|
145
|
+
},
|
146
|
+
});
|
147
|
+
const getNonceMutation = useMutation({
|
148
|
+
mutationFn: async ({ username, signature, message, }) => {
|
149
|
+
setError(null);
|
150
|
+
try {
|
151
|
+
return await indexerClient.getNonce(username, signature, message);
|
152
|
+
}
|
153
|
+
catch (err) {
|
154
|
+
if (devMode) {
|
155
|
+
console.warn('[DevMode] getNonce failed, returning mock data:', err);
|
156
|
+
return IndexerMockData.getNonce(username);
|
157
|
+
}
|
158
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get nonce';
|
159
|
+
setError(errorMessage);
|
160
|
+
throw err;
|
161
|
+
}
|
162
|
+
},
|
163
|
+
});
|
164
|
+
const getEntitlementMutation = useMutation({
|
165
|
+
mutationFn: async ({ walletAddress, signature, message, }) => {
|
166
|
+
setError(null);
|
167
|
+
try {
|
168
|
+
return await indexerClient.getEntitlement(walletAddress, signature, message);
|
169
|
+
}
|
170
|
+
catch (err) {
|
171
|
+
if (devMode) {
|
172
|
+
console.warn('[DevMode] getEntitlement failed, returning mock data:', err);
|
173
|
+
return IndexerMockData.getEntitlement(walletAddress);
|
174
|
+
}
|
175
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get entitlement';
|
176
|
+
setError(errorMessage);
|
177
|
+
throw err;
|
178
|
+
}
|
179
|
+
},
|
180
|
+
});
|
181
|
+
const getPointsBalanceMutation = useMutation({
|
182
|
+
mutationFn: async ({ walletAddress, signature, message, }) => {
|
183
|
+
setError(null);
|
184
|
+
try {
|
185
|
+
return await indexerClient.getPointsBalance(walletAddress, signature, message);
|
186
|
+
}
|
187
|
+
catch (err) {
|
188
|
+
if (devMode) {
|
189
|
+
console.warn('[DevMode] getPointsBalance failed, returning mock data:', err);
|
190
|
+
return IndexerMockData.getPointsBalance(walletAddress);
|
191
|
+
}
|
192
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get points balance';
|
193
|
+
setError(errorMessage);
|
194
|
+
throw err;
|
195
|
+
}
|
196
|
+
},
|
197
|
+
});
|
198
|
+
const validateUsername = useCallback(async (username) => {
|
199
|
+
return await validateUsernameMutation.mutateAsync(username);
|
200
|
+
}, [validateUsernameMutation]);
|
201
|
+
const getSigningMessage = useCallback(async (walletAddress, chainId, domain, url) => {
|
202
|
+
return await getSigningMessageMutation.mutateAsync({
|
203
|
+
walletAddress,
|
204
|
+
chainId,
|
205
|
+
domain,
|
206
|
+
url,
|
207
|
+
});
|
208
|
+
}, [getSigningMessageMutation]);
|
209
|
+
const getPointsLeaderboard = useCallback(async (count = 10) => {
|
210
|
+
return await getPointsLeaderboardMutation.mutateAsync(count);
|
211
|
+
}, [getPointsLeaderboardMutation]);
|
212
|
+
const getPointsSiteStats = useCallback(async () => {
|
213
|
+
return await getPointsSiteStatsMutation.mutateAsync();
|
214
|
+
}, [getPointsSiteStatsMutation]);
|
215
|
+
const getWalletAccounts = useCallback(async (walletAddress, signature, message, referralCode) => {
|
216
|
+
const params = { walletAddress, signature, message };
|
217
|
+
if (referralCode !== undefined) {
|
218
|
+
params.referralCode = referralCode;
|
140
219
|
}
|
141
|
-
|
220
|
+
return await getWalletAccountsMutation.mutateAsync(params);
|
221
|
+
}, [getWalletAccountsMutation]);
|
222
|
+
const getDelegatedTo = useCallback(async (walletAddress, signature, message) => {
|
223
|
+
return await getDelegatedToMutation.mutateAsync({
|
224
|
+
walletAddress,
|
225
|
+
signature,
|
226
|
+
message,
|
227
|
+
});
|
228
|
+
}, [getDelegatedToMutation]);
|
229
|
+
const getDelegatedFrom = useCallback(async (walletAddress, signature, message) => {
|
230
|
+
return await getDelegatedFromMutation.mutateAsync({
|
231
|
+
walletAddress,
|
232
|
+
signature,
|
233
|
+
message,
|
234
|
+
});
|
235
|
+
}, [getDelegatedFromMutation]);
|
236
|
+
const createNonce = useCallback(async (username, signature, message) => {
|
237
|
+
return await createNonceMutation.mutateAsync({
|
238
|
+
username,
|
239
|
+
signature,
|
240
|
+
message,
|
241
|
+
});
|
242
|
+
}, [createNonceMutation]);
|
243
|
+
const getNonce = useCallback(async (username, signature, message) => {
|
244
|
+
return await getNonceMutation.mutateAsync({
|
245
|
+
username,
|
246
|
+
signature,
|
247
|
+
message,
|
248
|
+
});
|
249
|
+
}, [getNonceMutation]);
|
250
|
+
const getEntitlement = useCallback(async (walletAddress, signature, message) => {
|
251
|
+
return await getEntitlementMutation.mutateAsync({
|
252
|
+
walletAddress,
|
253
|
+
signature,
|
254
|
+
message,
|
255
|
+
});
|
256
|
+
}, [getEntitlementMutation]);
|
257
|
+
const getPointsBalance = useCallback(async (walletAddress, signature, message) => {
|
258
|
+
return await getPointsBalanceMutation.mutateAsync({
|
259
|
+
walletAddress,
|
260
|
+
signature,
|
261
|
+
message,
|
262
|
+
});
|
263
|
+
}, [getPointsBalanceMutation]);
|
264
|
+
const isLoading = validateUsernameMutation.isPending ||
|
265
|
+
getSigningMessageMutation.isPending ||
|
266
|
+
getPointsLeaderboardMutation.isPending ||
|
267
|
+
getPointsSiteStatsMutation.isPending ||
|
268
|
+
getWalletAccountsMutation.isPending ||
|
269
|
+
getDelegatedToMutation.isPending ||
|
270
|
+
getDelegatedFromMutation.isPending ||
|
271
|
+
createNonceMutation.isPending ||
|
272
|
+
getNonceMutation.isPending ||
|
273
|
+
getEntitlementMutation.isPending ||
|
274
|
+
getPointsBalanceMutation.isPending;
|
142
275
|
return {
|
143
276
|
isLoading,
|
144
277
|
error,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useIndexerMail.js","sourceRoot":"","sources":["../../src/hooks/useIndexerMail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"useIndexerMail.js","sourceRoot":"","sources":["../../src/hooks/useIndexerMail.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useIndexerPoints.d.ts","sourceRoot":"","sources":["../../src/hooks/useIndexerPoints.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"useIndexerPoints.d.ts","sourceRoot":"","sources":["../../src/hooks/useIndexerPoints.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAe5E,iBAAS,gBAAgB,CACvB,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,OAAe,EACpB,OAAO,GAAE,OAAe;mCAkGR,MAAM,KAAQ,OAAO,CAAC,mBAAmB,CAAC;8BAQlC,OAAO,CAAC,iBAAiB,CAAC;;;;EAoBnD;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { useCallback, useMemo, useState } from 'react';
|
2
|
+
import { useMutation } from '@tanstack/react-query';
|
2
3
|
import { IndexerClient } from '../network/IndexerClient';
|
3
4
|
import { IndexerMockData } from './mocks';
|
4
5
|
function useIndexerPoints(endpointUrl, dev = false, devMode = false) {
|
5
|
-
const [isLoading, setIsLoading] = useState(false);
|
6
6
|
const [error, setError] = useState(null);
|
7
7
|
const indexerClient = useMemo(() => {
|
8
8
|
return new IndexerClient(endpointUrl, dev);
|
@@ -10,84 +10,77 @@ function useIndexerPoints(endpointUrl, dev = false, devMode = false) {
|
|
10
10
|
const clearError = useCallback(() => {
|
11
11
|
setError(null);
|
12
12
|
}, []);
|
13
|
-
const
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
const leaderboardMutation = useMutation({
|
14
|
+
mutationFn: async (count = 10) => {
|
15
|
+
setError(null);
|
16
|
+
if (devMode) {
|
17
|
+
try {
|
18
|
+
const result = await Promise.race([
|
19
|
+
indexerClient.getPointsLeaderboard(count),
|
20
|
+
new Promise((_, reject) => {
|
21
|
+
setTimeout(() => reject(new Error('DevMode timeout')), 2000);
|
22
|
+
}),
|
23
|
+
]);
|
24
|
+
return result;
|
25
|
+
}
|
26
|
+
catch (err) {
|
27
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get leaderboard';
|
28
|
+
console.warn('[DevMode] getPointsLeaderboard failed quickly, returning mock data:', errorMessage);
|
29
|
+
setError(null);
|
30
|
+
return IndexerMockData.getLeaderboard(count);
|
31
|
+
}
|
32
|
+
}
|
17
33
|
try {
|
18
|
-
const
|
19
|
-
const timeoutId = setTimeout(() => controller.abort(), 2000);
|
20
|
-
const result = await Promise.race([
|
21
|
-
indexerClient.getPointsLeaderboard(count),
|
22
|
-
new Promise((_, reject) => {
|
23
|
-
setTimeout(() => reject(new Error('DevMode timeout')), 2000);
|
24
|
-
}),
|
25
|
-
]);
|
26
|
-
clearTimeout(timeoutId);
|
34
|
+
const result = await indexerClient.getPointsLeaderboard(count);
|
27
35
|
return result;
|
28
36
|
}
|
29
37
|
catch (err) {
|
30
38
|
const errorMessage = err instanceof Error ? err.message : 'Failed to get leaderboard';
|
31
|
-
|
32
|
-
|
33
|
-
return IndexerMockData.getLeaderboard(count);
|
39
|
+
setError(errorMessage);
|
40
|
+
throw err;
|
34
41
|
}
|
35
|
-
|
36
|
-
|
42
|
+
},
|
43
|
+
});
|
44
|
+
const siteStatsMutation = useMutation({
|
45
|
+
mutationFn: async () => {
|
46
|
+
setError(null);
|
47
|
+
if (devMode) {
|
48
|
+
try {
|
49
|
+
const result = await Promise.race([
|
50
|
+
indexerClient.getPointsSiteStats(),
|
51
|
+
new Promise((_, reject) => {
|
52
|
+
setTimeout(() => reject(new Error('DevMode timeout')), 2000);
|
53
|
+
}),
|
54
|
+
]);
|
55
|
+
return result;
|
56
|
+
}
|
57
|
+
catch (err) {
|
58
|
+
const errorMessage = err instanceof Error ? err.message : 'Failed to get site stats';
|
59
|
+
console.warn('[DevMode] getPointsSiteStats failed quickly, returning mock data:', errorMessage);
|
60
|
+
setError(null);
|
61
|
+
return IndexerMockData.getSiteStats();
|
62
|
+
}
|
37
63
|
}
|
38
|
-
}
|
39
|
-
try {
|
40
|
-
const result = await indexerClient.getPointsLeaderboard(count);
|
41
|
-
return result;
|
42
|
-
}
|
43
|
-
catch (err) {
|
44
|
-
const errorMessage = err instanceof Error ? err.message : 'Failed to get leaderboard';
|
45
|
-
setError(errorMessage);
|
46
|
-
throw err;
|
47
|
-
}
|
48
|
-
finally {
|
49
|
-
setIsLoading(false);
|
50
|
-
}
|
51
|
-
}, [indexerClient, devMode]);
|
52
|
-
const getPointsSiteStats = useCallback(async () => {
|
53
|
-
setIsLoading(true);
|
54
|
-
setError(null);
|
55
|
-
if (devMode) {
|
56
64
|
try {
|
57
|
-
const
|
58
|
-
const timeoutId = setTimeout(() => controller.abort(), 2000);
|
59
|
-
const result = await Promise.race([
|
60
|
-
indexerClient.getPointsSiteStats(),
|
61
|
-
new Promise((_, reject) => {
|
62
|
-
setTimeout(() => reject(new Error('DevMode timeout')), 2000);
|
63
|
-
}),
|
64
|
-
]);
|
65
|
-
clearTimeout(timeoutId);
|
65
|
+
const result = await indexerClient.getPointsSiteStats();
|
66
66
|
return result;
|
67
67
|
}
|
68
68
|
catch (err) {
|
69
69
|
const errorMessage = err instanceof Error ? err.message : 'Failed to get site stats';
|
70
|
-
|
71
|
-
|
72
|
-
return IndexerMockData.getSiteStats();
|
73
|
-
}
|
74
|
-
finally {
|
75
|
-
setIsLoading(false);
|
70
|
+
setError(errorMessage);
|
71
|
+
throw err;
|
76
72
|
}
|
77
|
-
}
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
setIsLoading(false);
|
89
|
-
}
|
90
|
-
}, [indexerClient, devMode]);
|
73
|
+
},
|
74
|
+
});
|
75
|
+
const getPointsLeaderboard = useCallback(async (count = 10) => {
|
76
|
+
const result = await leaderboardMutation.mutateAsync(count);
|
77
|
+
return result;
|
78
|
+
}, [leaderboardMutation]);
|
79
|
+
const getPointsSiteStats = useCallback(async () => {
|
80
|
+
const result = await siteStatsMutation.mutateAsync();
|
81
|
+
return result;
|
82
|
+
}, [siteStatsMutation]);
|
83
|
+
const isLoading = leaderboardMutation.isPending || siteStatsMutation.isPending;
|
91
84
|
return {
|
92
85
|
getPointsLeaderboard,
|
93
86
|
getPointsSiteStats,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useIndexerPoints.js","sourceRoot":"","sources":["../../src/hooks/useIndexerPoints.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAc1C,SAAS,gBAAgB,CACvB,WAAmB,EACnB,MAAe,KAAK,EACpB,UAAmB,KAAK;IAExB,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"useIndexerPoints.js","sourceRoot":"","sources":["../../src/hooks/useIndexerPoints.ts"],"names":[],"mappings":"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"}
|