@taskon/widget-react 0.0.1-beta.5 → 0.0.1-beta.7

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.
Files changed (65) hide show
  1. package/README.md +61 -47
  2. package/dist/CommunityTaskList.css +9 -1
  3. package/dist/EligibilityInfo.css +48 -75
  4. package/dist/LeaderboardWidget.css +73 -71
  5. package/dist/PageBuilder.css +5 -0
  6. package/dist/Quest.css +18 -14
  7. package/dist/TaskOnProvider.css +289 -0
  8. package/dist/ThemeProvider.css +227 -0
  9. package/dist/UserCenterWidget.css +6 -6
  10. package/dist/UserCenterWidget2.css +1388 -1621
  11. package/dist/{dynamic-import-helper.css → WidgetShell.css} +0 -227
  12. package/dist/chunks/{CommunityTaskList-CrMvOB8w.js → CommunityTaskList-D0uVD8wD.js} +393 -208
  13. package/dist/chunks/{EligibilityInfo-Beww12QX.js → EligibilityInfo-Cf6hx9-a.js} +459 -679
  14. package/dist/chunks/{LeaderboardWidget-DwuSpVl0.js → LeaderboardWidget-DyoiiNS6.js} +274 -252
  15. package/dist/chunks/{PageBuilder-DsX6Tv0N.js → PageBuilder-DoAFPm6-.js} +5 -5
  16. package/dist/chunks/{Quest-CuD2LElS.js → Quest-ySZlYd4u.js} +74 -57
  17. package/dist/chunks/TaskOnProvider-CxtFIs3n.js +2072 -0
  18. package/dist/chunks/{dynamic-import-helper-WmIF58Sb.js → ThemeProvider-CulHkqqY.js} +1282 -555
  19. package/dist/chunks/UserCenterWidget-BJsc_GSZ.js +3246 -0
  20. package/dist/chunks/{UserCenterWidget-CvU6K4AC.js → UserCenterWidget-STq8kpV4.js} +1174 -1386
  21. package/dist/chunks/WidgetShell-8xn-Jivw.js +659 -0
  22. package/dist/chunks/communitytask-es-CBNnS4o2.js +521 -0
  23. package/dist/chunks/communitytask-ja-GRf9cbdx.js +521 -0
  24. package/dist/chunks/communitytask-ko-Bf24PQKI.js +521 -0
  25. package/dist/chunks/{communitytask-ru-DhySaZL8.js → communitytask-ru-CZm2CPoV.js} +211 -1
  26. package/dist/chunks/leaderboardwidget-es-vKjrjQaz.js +146 -0
  27. package/dist/chunks/leaderboardwidget-ja-Q6u0HxKG.js +146 -0
  28. package/dist/chunks/leaderboardwidget-ko-CG6SWgxf.js +146 -0
  29. package/dist/chunks/leaderboardwidget-ru-DCcHcJGz.js +146 -0
  30. package/dist/chunks/{quest-es-D-b5xcme.js → quest-es-Dyyy0zaw.js} +8 -93
  31. package/dist/chunks/{quest-ja-Dxd2vqBF.js → quest-ja-Depog33y.js} +8 -93
  32. package/dist/chunks/{quest-ko-CSmRWgK_.js → quest-ko-BMu3uRQJ.js} +8 -93
  33. package/dist/chunks/{quest-ru-CkEKv1_F.js → quest-ru-xne814Rw.js} +8 -93
  34. package/dist/chunks/useIsMobile-D6Ybur-6.js +30 -0
  35. package/dist/chunks/useToast-BGJhd3BX.js +93 -0
  36. package/dist/chunks/usercenter-es-Dz3Wp2vV.js +512 -0
  37. package/dist/chunks/usercenter-ja-CKE4DJC6.js +512 -0
  38. package/dist/chunks/usercenter-ko-Dtpkn2qb.js +512 -0
  39. package/dist/chunks/usercenter-ru-DnBGee45.js +512 -0
  40. package/dist/community-task.d.ts +0 -390
  41. package/dist/community-task.js +2 -7
  42. package/dist/core.d.ts +38 -20
  43. package/dist/core.js +9 -10
  44. package/dist/index.d.ts +86 -709
  45. package/dist/index.js +22 -28
  46. package/dist/leaderboard.d.ts +0 -498
  47. package/dist/leaderboard.js +2 -16
  48. package/dist/page-builder.js +1 -1
  49. package/dist/quest.d.ts +0 -971
  50. package/dist/quest.js +2 -7
  51. package/dist/user-center.d.ts +0 -1610
  52. package/dist/user-center.js +2 -494
  53. package/package.json +2 -2
  54. package/dist/chunks/TaskOnProvider-xUeP2Nro.js +0 -1243
  55. package/dist/chunks/ThemeProvider-Bt4UZ33y.js +0 -1334
  56. package/dist/chunks/UserCenterWidget-CB0hnj-L.js +0 -3230
  57. package/dist/chunks/communitytask-es-1zawvXEX.js +0 -311
  58. package/dist/chunks/communitytask-ja-CmW6nP-L.js +0 -311
  59. package/dist/chunks/communitytask-ko-BD0hzQSi.js +0 -311
  60. package/dist/chunks/createLocaleLoader-BameiEhU.js +0 -65
  61. package/dist/chunks/leaderboardwidget-ja-Bj6gz6y1.js +0 -119
  62. package/dist/chunks/leaderboardwidget-ko-f1cLO9ic.js +0 -119
  63. package/dist/chunks/useToast-CaRkylKe.js +0 -304
  64. package/dist/chunks/usercenter-ja-B2465c1O.js +0 -326
  65. package/dist/chunks/usercenter-ko-xAEYxqLg.js +0 -326
@@ -1,8 +1,8 @@
1
- import { B as Button, T as Table, P as Pagination, D as Dialog, a as useResolvedWidgetConfig, W as WidgetShell, _ as __variableDynamicImportRuntimeHelper, u as usePagination } from "./dynamic-import-helper-WmIF58Sb.js";
2
1
  import { jsx, jsxs } from "react/jsx-runtime";
3
2
  import { useState, useCallback, useEffect, useMemo } from "react";
4
3
  import { createLeaderboardApi, LeaderboardContentType, formatRankRange, RewardsDistributeType, formatRewardText, calculatePrizePool, RewardType, LeaderboardTableColumn, truncateAddress, isAllTimeResponse, isCampaignResponse } from "@taskon/core";
5
- import { d as useTaskOnContext, b as useWidgetLocale } from "./ThemeProvider-Bt4UZ33y.js";
4
+ import { h as useTaskOnContext, c as useTranslation, e as createLocaleLoader, D as Dialog } from "./ThemeProvider-CulHkqqY.js";
5
+ import { B as Button, T as Table, P as Pagination, u as useResolvedWidgetConfig, W as WidgetShell, a as usePagination } from "./WidgetShell-8xn-Jivw.js";
6
6
  import '../LeaderboardWidget.css';function useLeaderboard(options) {
7
7
  const { client } = useTaskOnContext();
8
8
  const [data, setData] = useState(null);
@@ -81,12 +81,12 @@ function useCampaignReward(campaignId) {
81
81
  }, [campaignId, client]);
82
82
  const rewardSummary = useMemo(() => {
83
83
  if (!campaignInfo) return null;
84
- let totalWinners2 = 0;
84
+ let totalWinners = 0;
85
85
  const tiers = [];
86
86
  campaignInfo.winner_rewards.forEach((wr) => {
87
87
  wr.winner_layer_rewards.forEach((wlr, index) => {
88
88
  var _a;
89
- totalWinners2 += wlr.max_winners;
89
+ totalWinners += wlr.max_winners;
90
90
  const { text: rankRangeText, from: rankFrom, to: rankTo } = formatRankRange(wlr, index);
91
91
  const distributeType = ((_a = wlr.rewards[0]) == null ? void 0 : _a.reward_distribute_type) || RewardsDistributeType.Equally;
92
92
  const simpleReward = campaignInfo.winner_rewards_simple[index];
@@ -105,10 +105,10 @@ function useCampaignReward(campaignId) {
105
105
  });
106
106
  });
107
107
  });
108
- const prizePool2 = calculatePrizePool(campaignInfo.winner_rewards_simple);
108
+ const prizePool = calculatePrizePool(campaignInfo.winner_rewards_simple);
109
109
  return {
110
- prizePool: prizePool2,
111
- totalWinners: totalWinners2,
110
+ prizePool,
111
+ totalWinners,
112
112
  tiers,
113
113
  startTime: campaignInfo.start_time,
114
114
  endTime: campaignInfo.end_time,
@@ -125,6 +125,126 @@ function useCampaignReward(campaignId) {
125
125
  refresh: fetchCampaignInfo
126
126
  };
127
127
  }
128
+ const tab_all_time = "All Time";
129
+ const tab_quest = "Quest";
130
+ const tab_event = "Event";
131
+ const tab_sprint = "Sprint";
132
+ const column_rank = "Rank";
133
+ const column_position = "Position";
134
+ const column_user = "User";
135
+ const column_tasks = "Tasks";
136
+ const column_invited_users = "Invited Users";
137
+ const column_current_tier = "Current Tier";
138
+ const column_points = "Points";
139
+ const column_rewards = "Reward";
140
+ const status_ongoing = "Ongoing";
141
+ const status_ended = "Ended";
142
+ const status_upcoming = "Upcoming";
143
+ const participants = "Participants";
144
+ const prize_pool = "Prize Pool";
145
+ const total_winners = "Total Winners";
146
+ const reward_rules = "Reward Rules";
147
+ const reward_rules_title = "Reward Rules";
148
+ const reward_rules_desc = "Rewards will be given based on leaderboard rankings, determined by users' {pointsName} earned during the event.";
149
+ const event_period = "Event Period";
150
+ const reward_details = "Reward Details";
151
+ const each_receives = "Each receives {amount}";
152
+ const randomly_split = "Randomly split {amount}";
153
+ const empty_title = "No Rankings Yet";
154
+ const empty_desc = "Be the first to join and claim the top spot!";
155
+ const page = "Page";
156
+ const of = "of";
157
+ const previous = "Previous";
158
+ const next = "Next";
159
+ const loading = "Loading...";
160
+ const error = "Failed to load leaderboard";
161
+ const retry = "Retry";
162
+ const not_configured = "Not configured";
163
+ const you = "You";
164
+ const unranked = "Unranked";
165
+ const na = "N/A";
166
+ const no_data = "-";
167
+ const whitelist = "Whitelist";
168
+ const reward_type_nft = "NFT:";
169
+ const reward_type_discord_role = "Discord Role:";
170
+ const reward_type_exp = "EXP:";
171
+ const reward_type_token = "Token:";
172
+ const reward_type_cap = "CAP";
173
+ const reward_value_usd_in = "{amount} USD in {symbol}";
174
+ const reward_rank_top = "Top {val}";
175
+ const enMessages = {
176
+ tab_all_time,
177
+ tab_quest,
178
+ tab_event,
179
+ tab_sprint,
180
+ column_rank,
181
+ column_position,
182
+ column_user,
183
+ column_tasks,
184
+ column_invited_users,
185
+ column_current_tier,
186
+ column_points,
187
+ column_rewards,
188
+ status_ongoing,
189
+ status_ended,
190
+ status_upcoming,
191
+ participants,
192
+ prize_pool,
193
+ total_winners,
194
+ reward_rules,
195
+ reward_rules_title,
196
+ reward_rules_desc,
197
+ event_period,
198
+ reward_details,
199
+ each_receives,
200
+ randomly_split,
201
+ empty_title,
202
+ empty_desc,
203
+ page,
204
+ of,
205
+ previous,
206
+ next,
207
+ loading,
208
+ error,
209
+ retry,
210
+ not_configured,
211
+ you,
212
+ unranked,
213
+ na,
214
+ no_data,
215
+ whitelist,
216
+ reward_type_nft,
217
+ reward_type_discord_role,
218
+ reward_type_exp,
219
+ reward_type_token,
220
+ reward_type_cap,
221
+ reward_value_usd_in,
222
+ reward_rank_top
223
+ };
224
+ const loadMessages = createLocaleLoader(
225
+ enMessages,
226
+ {
227
+ ko: () => import("./leaderboardwidget-ko-CG6SWgxf.js").then((module) => ({
228
+ default: module.default
229
+ })),
230
+ ja: () => import("./leaderboardwidget-ja-Q6u0HxKG.js").then((module) => ({
231
+ default: module.default
232
+ })),
233
+ ru: () => import("./leaderboardwidget-ru-DCcHcJGz.js").then((module) => ({
234
+ default: module.default
235
+ })),
236
+ es: () => import("./leaderboardwidget-es-vKjrjQaz.js").then((module) => ({
237
+ default: module.default
238
+ }))
239
+ }
240
+ );
241
+ function useLeaderboardLocale() {
242
+ return useTranslation({
243
+ widgetId: "LeaderboardWidget",
244
+ defaultMessages: enMessages,
245
+ loadMessages
246
+ });
247
+ }
128
248
  function HexagonBadge({
129
249
  rank,
130
250
  colorClass
@@ -152,11 +272,12 @@ function HexagonBadge({
152
272
  ] });
153
273
  }
154
274
  function RankBadge({ rank, isAllTime = false, className = "" }) {
275
+ const { t } = useLeaderboardLocale();
155
276
  if (rank < 0) {
156
- return /* @__PURE__ */ jsx("span", { className: `taskon-leaderboard-rank taskon-leaderboard-rank--na ${className}`, children: "N/A" });
277
+ return /* @__PURE__ */ jsx("span", { className: `taskon-leaderboard-rank taskon-leaderboard-rank--na ${className}`, children: t("na") });
157
278
  }
158
279
  if (rank === 0) {
159
- return /* @__PURE__ */ jsx("span", { className: `taskon-leaderboard-rank taskon-leaderboard-rank--unranked ${className}`, children: "--" });
280
+ return /* @__PURE__ */ jsx("span", { className: `taskon-leaderboard-rank taskon-leaderboard-rank--unranked ${className}`, children: t("unranked") });
160
281
  }
161
282
  if (rank === 1) {
162
283
  return /* @__PURE__ */ jsx("div", { className, children: /* @__PURE__ */ jsx(HexagonBadge, { rank: 1, colorClass: "gold" }) });
@@ -175,10 +296,10 @@ function UserCell({
175
296
  displayName,
176
297
  avatar,
177
298
  isCurrentUser = false,
178
- youLabel = "YOU",
179
299
  onUserClick,
180
300
  className = ""
181
301
  }) {
302
+ const { t } = useLeaderboardLocale();
182
303
  const handleClick = () => {
183
304
  if (onUserClick) {
184
305
  onUserClick(userId, userName);
@@ -186,7 +307,13 @@ function UserCell({
186
307
  };
187
308
  const isClickable = !!onUserClick && !isCurrentUser;
188
309
  if (isCurrentUser) {
189
- return /* @__PURE__ */ jsx("div", { className: `taskon-leaderboard-user taskon-leaderboard-user--current ${className}`, children: /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-user__you-badge", children: youLabel }) });
310
+ return /* @__PURE__ */ jsx(
311
+ "div",
312
+ {
313
+ className: `taskon-leaderboard-user taskon-leaderboard-user--current ${className}`,
314
+ children: /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-user__you-badge", children: t("you") })
315
+ }
316
+ );
190
317
  }
191
318
  return /* @__PURE__ */ jsx(
192
319
  "div",
@@ -204,32 +331,32 @@ function UserCell({
204
331
  }
205
332
  );
206
333
  }
207
- function getRewardTypeLabel(rewardType, rewardPointsName, messages) {
334
+ function getRewardTypeLabel(rewardType, rewardPointsName, t) {
208
335
  if (!rewardType) return null;
209
336
  if (rewardType === RewardType.BMintedNft || rewardType === RewardType.Cap || rewardType === RewardType.Nft) {
210
- return "NFT:";
337
+ return t("reward_type_nft");
211
338
  }
212
339
  if (rewardType === RewardType.DiscordRole) {
213
- return "Discord Role:";
340
+ return t("reward_type_discord_role");
214
341
  }
215
342
  if (rewardType === RewardType.Exp) {
216
- return "EXP:";
343
+ return t("reward_type_exp");
217
344
  }
218
345
  if (rewardType === RewardType.GTCPoints || rewardType === RewardType.Points) {
219
- return `${rewardPointsName || messages.columnPoints}:`;
346
+ return `${rewardPointsName || t("column_points")}:`;
220
347
  }
221
348
  if (rewardType === RewardType.Token) {
222
- return "Token:";
349
+ return t("reward_type_token");
223
350
  }
224
351
  if (rewardType === RewardType.Whitelist) {
225
352
  return null;
226
353
  }
227
354
  return null;
228
355
  }
229
- function getRewardValueLabel(rewardType, rewardAmount, rewardSymbol, chainLabel, isUsdtEqual, messages) {
356
+ function getRewardValueLabel(rewardType, rewardAmount, rewardSymbol, chainLabel, isUsdtEqual, t) {
230
357
  if (!rewardType) {
231
358
  return {
232
- value: rewardAmount ? `${rewardAmount} ${rewardSymbol || ""}` : messages.noData,
359
+ value: rewardAmount ? `${rewardAmount} ${rewardSymbol || ""}` : t("no_data"),
233
360
  showChain: !!chainLabel
234
361
  };
235
362
  }
@@ -237,22 +364,31 @@ function getRewardValueLabel(rewardType, rewardAmount, rewardSymbol, chainLabel,
237
364
  return { value: rewardSymbol || "", showChain: false };
238
365
  }
239
366
  if (rewardType === RewardType.Cap) {
240
- return { value: "CAP", showChain: false };
367
+ return { value: t("reward_type_cap"), showChain: false };
241
368
  }
242
369
  if (rewardType === RewardType.GTCPoints || rewardType === RewardType.Points) {
243
370
  return { value: rewardAmount || "", showChain: false };
244
371
  }
245
372
  if (rewardType === RewardType.Token) {
246
373
  if (isUsdtEqual) {
247
- return { value: `${rewardAmount} USD in ${rewardSymbol}`, showChain: false };
374
+ return {
375
+ value: t("reward_value_usd_in", {
376
+ amount: rewardAmount ?? "",
377
+ symbol: rewardSymbol ?? ""
378
+ }),
379
+ showChain: false
380
+ };
248
381
  }
249
- return { value: `${rewardAmount} ${rewardSymbol}`, showChain: !!chainLabel };
382
+ return {
383
+ value: `${rewardAmount} ${rewardSymbol}`,
384
+ showChain: !!chainLabel
385
+ };
250
386
  }
251
387
  if (rewardType === RewardType.Whitelist) {
252
- return { value: messages.whitelist || "Whitelist", showChain: false };
388
+ return { value: t("whitelist"), showChain: false };
253
389
  }
254
390
  return {
255
- value: rewardAmount ? `${rewardAmount} ${rewardSymbol || ""}` : messages.noData,
391
+ value: rewardAmount ? `${rewardAmount} ${rewardSymbol || ""}` : t("no_data"),
256
392
  showChain: !!chainLabel
257
393
  };
258
394
  }
@@ -263,32 +399,38 @@ function RewardCell({
263
399
  rewardType,
264
400
  rewardPointsName,
265
401
  isUsdtEqual,
266
- messages,
267
402
  isPotential = false,
268
403
  className = ""
269
404
  }) {
405
+ const { t } = useLeaderboardLocale();
270
406
  if (!rewardAmount && !rewardType) {
271
- return /* @__PURE__ */ jsx("span", { className, children: messages.noData });
407
+ return /* @__PURE__ */ jsx("span", { className, children: t("no_data") });
272
408
  }
273
- const typeLabel = getRewardTypeLabel(rewardType, rewardPointsName, messages);
409
+ const typeLabel = getRewardTypeLabel(rewardType, rewardPointsName, t);
274
410
  const { value, showChain } = getRewardValueLabel(
275
411
  rewardType,
276
412
  rewardAmount,
277
413
  rewardSymbol,
278
414
  chainLabel,
279
415
  isUsdtEqual,
280
- messages
416
+ t
281
417
  );
282
418
  const potentialClass = isPotential ? "taskon-leaderboard-table__reward--potential" : "";
283
- return /* @__PURE__ */ jsxs("span", { className: `taskon-leaderboard-table__reward ${potentialClass} ${className}`, children: [
284
- typeLabel && /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-table__reward-type", children: typeLabel }),
285
- /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-table__reward-value", children: value }),
286
- showChain && chainLabel && /* @__PURE__ */ jsxs("span", { className: "taskon-leaderboard-table__reward-chain", children: [
287
- "(",
288
- chainLabel,
289
- ")"
290
- ] })
291
- ] });
419
+ return /* @__PURE__ */ jsxs(
420
+ "span",
421
+ {
422
+ className: `taskon-leaderboard-table__reward ${potentialClass} ${className}`,
423
+ children: [
424
+ typeLabel && /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-table__reward-type", children: typeLabel }),
425
+ /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-table__reward-value", children: value }),
426
+ showChain && chainLabel && /* @__PURE__ */ jsxs("span", { className: "taskon-leaderboard-table__reward-chain", children: [
427
+ "(",
428
+ chainLabel,
429
+ ")"
430
+ ] })
431
+ ]
432
+ }
433
+ );
292
434
  }
293
435
  function LeaderboardTabs({
294
436
  tabs,
@@ -296,6 +438,21 @@ function LeaderboardTabs({
296
438
  onTabChange,
297
439
  className = ""
298
440
  }) {
441
+ const { t } = useLeaderboardLocale();
442
+ const getFallbackTitle = (tab) => {
443
+ switch (tab.type) {
444
+ case LeaderboardContentType.AllTime:
445
+ return t("tab_all_time");
446
+ case LeaderboardContentType.Quest:
447
+ return t("tab_quest");
448
+ case LeaderboardContentType.Event:
449
+ return t("tab_event");
450
+ case LeaderboardContentType.LeaderboardSprint:
451
+ return t("tab_sprint");
452
+ default:
453
+ return "";
454
+ }
455
+ };
299
456
  if (tabs.length <= 1) {
300
457
  return null;
301
458
  }
@@ -309,7 +466,7 @@ function LeaderboardTabs({
309
466
  "aria-controls": `leaderboard-panel-${tab.id}`,
310
467
  className: `taskon-leaderboard-tabs__tab ${isActive ? "taskon-leaderboard-tabs__tab--active" : ""}`,
311
468
  onClick: () => onTabChange(tab.id),
312
- children: tab.title
469
+ children: tab.title || getFallbackTitle(tab)
313
470
  },
314
471
  tab.id
315
472
  );
@@ -335,36 +492,38 @@ function formatTimeRange(startTime, endTime) {
335
492
  const endMinutes = String(end.getMinutes()).padStart(2, "0");
336
493
  return `(${timezone}) ${startYear}-${startMonth}-${startDay} ${startHours}:${startMinutes} ~ ${endYear}-${endMonth}-${endDay} ${endHours}:${endMinutes}`;
337
494
  }
338
- function getEventStatus(startTime, endTime, messages) {
495
+ function getEventStatus(startTime, endTime, t) {
339
496
  if (!startTime || !endTime) return null;
340
497
  const now = Date.now();
341
498
  if (now < startTime) {
342
- return { label: messages.statusUpcoming, status: "upcoming" };
499
+ return { label: t("status_upcoming"), status: "upcoming" };
343
500
  }
344
501
  if (now > endTime) {
345
- return { label: messages.statusEnded, status: "ended" };
502
+ return { label: t("status_ended"), status: "ended" };
346
503
  }
347
- return { label: messages.statusOngoing, status: "ongoing" };
504
+ return { label: t("status_ongoing"), status: "ongoing" };
348
505
  }
349
506
  function LeaderboardHeader({
350
507
  tabConfig,
351
508
  showTitle,
352
509
  rewardSummary,
353
510
  participantsCount,
354
- messages,
355
511
  onOpenRewardRules,
356
512
  className = ""
357
513
  }) {
514
+ const { t } = useLeaderboardLocale();
358
515
  const isSprint = tabConfig.type === LeaderboardContentType.LeaderboardSprint;
359
- const eventStatus = getEventStatus(tabConfig.startTime, tabConfig.endTime, messages);
516
+ const sprintRewardSummary = isSprint ? rewardSummary ?? null : null;
517
+ const eventStatus = getEventStatus(tabConfig.startTime, tabConfig.endTime, t);
360
518
  const hasTimeRange = tabConfig.startTime && tabConfig.endTime;
361
519
  const hasParticipants = typeof participantsCount === "number";
362
- const hasContent = eventStatus || hasTimeRange || hasParticipants;
363
- if (!hasContent && !showTitle && !isSprint) {
520
+ const shouldShowInfo = Boolean(showTitle && (eventStatus || hasTimeRange || hasParticipants));
521
+ const shouldShowRewardInfo = sprintRewardSummary !== null;
522
+ if (!shouldShowInfo && !shouldShowRewardInfo) {
364
523
  return null;
365
524
  }
366
525
  return /* @__PURE__ */ jsxs("div", { className: `taskon-leaderboard-header ${className}`, children: [
367
- (eventStatus || hasTimeRange || hasParticipants) && /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-header__info", children: [
526
+ shouldShowInfo && /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-header__info", children: [
368
527
  eventStatus && /* @__PURE__ */ jsx(
369
528
  "span",
370
529
  {
@@ -375,19 +534,19 @@ function LeaderboardHeader({
375
534
  hasTimeRange && /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__time", children: formatTimeRange(tabConfig.startTime, tabConfig.endTime) }),
376
535
  hasParticipants && (eventStatus || hasTimeRange) && /* @__PURE__ */ jsx("div", { className: "taskon-leaderboard-header__separator" }),
377
536
  hasParticipants && /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-header__participants", children: [
378
- /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__participants-label", children: messages.participants || "Participants" }),
537
+ /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__participants-label", children: t("participants") }),
379
538
  /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__participants-value", children: participantsCount.toLocaleString() })
380
539
  ] })
381
540
  ] }),
382
- isSprint && rewardSummary && /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-header__reward-info", children: [
541
+ shouldShowRewardInfo && /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-header__reward-info", children: [
383
542
  /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-header__reward-item", children: [
384
- /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__reward-label", children: messages.prizePool }),
385
- /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__reward-value", children: rewardSummary.prizePool || "-" })
543
+ /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__reward-label", children: t("prize_pool") }),
544
+ /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__reward-value", children: sprintRewardSummary.prizePool || t("no_data") })
386
545
  ] }),
387
546
  /* @__PURE__ */ jsx("div", { className: "taskon-leaderboard-header__reward-separator" }),
388
547
  /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-header__reward-item", children: [
389
- /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__reward-label", children: messages.totalWinners }),
390
- /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__reward-value", children: rewardSummary.totalWinners })
548
+ /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__reward-label", children: t("total_winners") }),
549
+ /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-header__reward-value", children: sprintRewardSummary.totalWinners })
391
550
  ] }),
392
551
  onOpenRewardRules && /* @__PURE__ */ jsx(
393
552
  Button,
@@ -396,28 +555,28 @@ function LeaderboardHeader({
396
555
  size: "small",
397
556
  onClick: onOpenRewardRules,
398
557
  className: "taskon-leaderboard-header__reward-rules-btn",
399
- children: messages.rewardRules
558
+ children: t("reward_rules")
400
559
  }
401
560
  )
402
561
  ] })
403
562
  ] });
404
563
  }
405
- function getColumnTitle(column, messages, pointsName) {
564
+ function getColumnTitle(column, t, pointsName) {
406
565
  switch (column) {
407
566
  case LeaderboardTableColumn.Rank:
408
- return messages.columnRank;
567
+ return t("column_rank");
409
568
  case LeaderboardTableColumn.User:
410
- return messages.columnUser;
569
+ return t("column_user");
411
570
  case LeaderboardTableColumn.Tasks:
412
- return messages.columnTasks;
571
+ return t("column_tasks");
413
572
  case LeaderboardTableColumn.InvitedUsers:
414
- return messages.columnInvitedUsers;
573
+ return t("column_invited_users");
415
574
  case LeaderboardTableColumn.CurrentTier:
416
- return messages.columnCurrentTier;
575
+ return t("column_current_tier");
417
576
  case LeaderboardTableColumn.Points:
418
- return pointsName || messages.columnPoints;
577
+ return pointsName || t("column_points");
419
578
  case LeaderboardTableColumn.Rewards:
420
- return messages.columnRewards;
579
+ return t("column_rewards");
421
580
  default:
422
581
  return "";
423
582
  }
@@ -474,12 +633,12 @@ function LeaderboardTable({
474
633
  allTimeData,
475
634
  campaignData,
476
635
  currentUserId,
477
- messages,
478
636
  onUserClick,
479
637
  rewardTiers,
480
638
  loading: loading2 = false,
481
639
  className = ""
482
640
  }) {
641
+ const { t } = useLeaderboardLocale();
483
642
  const isAllTime = tabConfig.type === LeaderboardContentType.AllTime;
484
643
  const tableData = useMemo(() => {
485
644
  if (isAllTime && allTimeData) {
@@ -494,7 +653,7 @@ function LeaderboardTable({
494
653
  return tabConfig.columns.map((column) => {
495
654
  const baseColumn = {
496
655
  key: column,
497
- title: getColumnTitle(column, messages, tabConfig.pointsName)
656
+ title: getColumnTitle(column, t, tabConfig.pointsName)
498
657
  };
499
658
  switch (column) {
500
659
  case LeaderboardTableColumn.Rank:
@@ -515,7 +674,6 @@ function LeaderboardTable({
515
674
  displayName: formatUserDisplayName(row.userName),
516
675
  avatar: row.avatar,
517
676
  isCurrentUser: currentUserId === row.userId,
518
- youLabel: messages.you,
519
677
  onUserClick
520
678
  }
521
679
  )
@@ -524,25 +682,25 @@ function LeaderboardTable({
524
682
  return {
525
683
  ...baseColumn,
526
684
  width: 142,
527
- render: (_, row) => row.tasks ?? messages.noData
685
+ render: (_, row) => row.tasks ?? t("no_data")
528
686
  };
529
687
  case LeaderboardTableColumn.InvitedUsers:
530
688
  return {
531
689
  ...baseColumn,
532
690
  width: 142,
533
- render: (_, row) => row.invitedUsers ?? messages.noData
691
+ render: (_, row) => row.invitedUsers ?? t("no_data")
534
692
  };
535
693
  case LeaderboardTableColumn.CurrentTier:
536
694
  return {
537
695
  ...baseColumn,
538
696
  width: 142,
539
- render: (_, row) => row.currentTier ?? messages.noData
697
+ render: (_, row) => row.currentTier ?? t("no_data")
540
698
  };
541
699
  case LeaderboardTableColumn.Points:
542
700
  return {
543
701
  ...baseColumn,
544
702
  width: 142,
545
- render: (_, row) => row.points && row.points > 0 ? row.points.toLocaleString() : messages.noData
703
+ render: (_, row) => row.points && row.points > 0 ? row.points.toLocaleString() : t("no_data")
546
704
  };
547
705
  case LeaderboardTableColumn.Rewards:
548
706
  return {
@@ -559,8 +717,7 @@ function LeaderboardTable({
559
717
  chainLabel: row.chainLabel,
560
718
  rewardType: row.rewardType,
561
719
  rewardPointsName: row.rewardPointsName,
562
- isUsdtEqual: row.isUsdtEqual,
563
- messages
720
+ isUsdtEqual: row.isUsdtEqual
564
721
  }
565
722
  );
566
723
  }
@@ -572,22 +729,28 @@ function LeaderboardTable({
572
729
  rewardAmount: reward.rewardAmount,
573
730
  rewardSymbol: reward.rewardSymbol,
574
731
  chainLabel: reward.chainLabel,
575
- messages,
576
732
  isPotential: true
577
733
  }
578
734
  );
579
735
  }
580
- return messages.noData;
736
+ return t("no_data");
581
737
  }
582
738
  };
583
739
  default:
584
740
  return {
585
741
  ...baseColumn,
586
- render: () => messages.noData
742
+ render: () => t("no_data")
587
743
  };
588
744
  }
589
745
  });
590
- }, [tabConfig.columns, tabConfig.pointsName, messages, currentUserId, onUserClick, rewardTiers]);
746
+ }, [
747
+ tabConfig.columns,
748
+ tabConfig.pointsName,
749
+ t,
750
+ currentUserId,
751
+ onUserClick,
752
+ rewardTiers
753
+ ]);
591
754
  const rowConfig = useMemo(
592
755
  () => ({
593
756
  getRowKey: (row) => row.id,
@@ -597,10 +760,10 @@ function LeaderboardTable({
597
760
  );
598
761
  const emptyConfig = useMemo(
599
762
  () => ({
600
- title: messages.emptyTitle,
601
- description: messages.emptyDesc
763
+ title: t("empty_title"),
764
+ description: t("empty_desc")
602
765
  }),
603
- [messages.emptyTitle, messages.emptyDesc]
766
+ [t]
604
767
  );
605
768
  return /* @__PURE__ */ jsx(
606
769
  Table,
@@ -609,7 +772,7 @@ function LeaderboardTable({
609
772
  data: tableData,
610
773
  rowConfig,
611
774
  loading: loading2,
612
- loadingText: messages.loading,
775
+ loadingText: t("loading"),
613
776
  empty: emptyConfig,
614
777
  striped: true,
615
778
  className
@@ -624,7 +787,6 @@ function LeaderboardPagination({
624
787
  hasNext,
625
788
  onPrevious,
626
789
  onNext,
627
- messages,
628
790
  className = ""
629
791
  }) {
630
792
  if (totalPages <= 1 || total === 0) {
@@ -648,7 +810,7 @@ function LeaderboardPagination({
648
810
  function formatDate(timestamp) {
649
811
  if (!timestamp) return "";
650
812
  const date = new Date(timestamp);
651
- return date.toLocaleDateString("en-US", {
813
+ return date.toLocaleDateString(void 0, {
652
814
  year: "numeric",
653
815
  month: "short",
654
816
  day: "numeric",
@@ -656,26 +818,23 @@ function formatDate(timestamp) {
656
818
  minute: "2-digit"
657
819
  });
658
820
  }
659
- function getDistributeText(distributeType, messages) {
821
+ function getDistributeText(distributeType, t) {
660
822
  switch (distributeType) {
661
823
  case RewardsDistributeType.Equally:
662
- return "Each receives";
824
+ return t("each_receives", { amount: "{amount}" }).replace("{amount}", "").trim();
663
825
  case RewardsDistributeType.Random:
664
- return "Randomly split";
826
+ return t("randomly_split", { amount: "{amount}" }).replace("{amount}", "").trim();
665
827
  default:
666
828
  return "";
667
829
  }
668
830
  }
669
831
  function TierRow({
670
832
  tier,
671
- messages
833
+ t
672
834
  }) {
673
- const distributeText = getDistributeText(tier.distributeType);
835
+ const distributeText = getDistributeText(tier.distributeType, t);
674
836
  return /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-modal__tier", children: [
675
- /* @__PURE__ */ jsxs("span", { className: "taskon-leaderboard-modal__tier-rank", children: [
676
- "Top ",
677
- tier.rankRangeText
678
- ] }),
837
+ /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-modal__tier-rank", children: t("reward_rank_top", { val: tier.rankRangeText }) }),
679
838
  /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-modal__tier-reward", children: [
680
839
  distributeText && /* @__PURE__ */ jsx("span", { className: "taskon-leaderboard-modal__tier-distribute", children: distributeText }),
681
840
  /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-modal__tier-token", children: [
@@ -702,16 +861,15 @@ function RewardRulesModal({
702
861
  isOpen,
703
862
  onClose,
704
863
  rewardSummary,
705
- messages,
706
864
  className = ""
707
865
  }) {
866
+ const { t } = useLeaderboardLocale();
708
867
  if (!rewardSummary) {
709
868
  return null;
710
869
  }
711
- const description = messages.rewardRulesDesc.replace(
712
- "{pointsName}",
713
- rewardSummary.pointsName || "points"
714
- );
870
+ const description = t("reward_rules_desc", {
871
+ pointsName: rewardSummary.pointsName || t("column_points")
872
+ });
715
873
  return /* @__PURE__ */ jsx(
716
874
  Dialog,
717
875
  {
@@ -719,16 +877,16 @@ function RewardRulesModal({
719
877
  onOpenChange: (open) => {
720
878
  if (!open) onClose();
721
879
  },
722
- title: messages.rewardRulesTitle,
880
+ title: t("reward_rules_title"),
723
881
  showCloseButton: true,
724
882
  className,
725
883
  contentClassName: "taskon-leaderboard-modal",
726
884
  maxWidth: 480,
727
885
  children: /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-modal__content", children: [
728
- /* @__PURE__ */ jsx("h2", { className: "taskon-leaderboard-modal__title", children: messages.rewardRulesTitle }),
886
+ /* @__PURE__ */ jsx("h2", { className: "taskon-leaderboard-modal__title", children: t("reward_rules_title") }),
729
887
  /* @__PURE__ */ jsx("p", { className: "taskon-leaderboard-modal__desc", children: description }),
730
888
  /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-modal__section", children: [
731
- /* @__PURE__ */ jsx("h3", { className: "taskon-leaderboard-modal__section-title", children: messages.eventPeriod }),
889
+ /* @__PURE__ */ jsx("h3", { className: "taskon-leaderboard-modal__section-title", children: t("event_period") }),
732
890
  /* @__PURE__ */ jsxs("p", { className: "taskon-leaderboard-modal__period", children: [
733
891
  formatDate(rewardSummary.startTime),
734
892
  " -",
@@ -737,8 +895,8 @@ function RewardRulesModal({
737
895
  ] })
738
896
  ] }),
739
897
  /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard-modal__section", children: [
740
- /* @__PURE__ */ jsx("h3", { className: "taskon-leaderboard-modal__section-title", children: messages.rewardDetails }),
741
- /* @__PURE__ */ jsx("div", { className: "taskon-leaderboard-modal__tiers", children: rewardSummary.tiers.map((tier) => /* @__PURE__ */ jsx(TierRow, { tier, messages }, tier.tierNo)) })
898
+ /* @__PURE__ */ jsx("h3", { className: "taskon-leaderboard-modal__section-title", children: t("reward_details") }),
899
+ /* @__PURE__ */ jsx("div", { className: "taskon-leaderboard-modal__tiers", children: rewardSummary.tiers.map((tier) => /* @__PURE__ */ jsx(TierRow, { tier, t }, tier.tierNo)) })
742
900
  ] })
743
901
  ] })
744
902
  }
@@ -749,131 +907,9 @@ function mergeLeaderboardConfig(props, cloud) {
749
907
  config: props.config ?? cloud ?? null
750
908
  };
751
909
  }
752
- const tabAllTime = "All Time";
753
- const tabQuest = "Quest";
754
- const tabEvent = "Event";
755
- const tabSprint = "Sprint";
756
- const columnRank = "Rank";
757
- const columnPosition = "Position";
758
- const columnUser = "User";
759
- const columnTasks = "Tasks";
760
- const columnInvitedUsers = "Invited Users";
761
- const columnCurrentTier = "Current Tier";
762
- const columnPoints = "Points";
763
- const columnRewards = "Reward";
764
- const statusOngoing = "Ongoing";
765
- const statusEnded = "Ended";
766
- const statusUpcoming = "Upcoming";
767
- const participants = "Participants";
768
- const prizePool = "Prize Pool";
769
- const totalWinners = "Total Winners";
770
- const rewardRules = "Reward Rules";
771
- const rewardRulesTitle = "Reward Rules";
772
- const rewardRulesDesc = "Rewards will be given based on leaderboard rankings, determined by users' {pointsName} earned during the event.";
773
- const eventPeriod = "Event Period";
774
- const rewardDetails = "Reward Details";
775
- const eachReceives = "Each receives {amount}";
776
- const randomlySplit = "Randomly split {amount}";
777
- const emptyTitle = "No Rankings Yet";
778
- const emptyDesc = "Be the first to join and claim the top spot!";
779
- const page = "Page";
780
- const of = "of";
781
- const previous = "Previous";
782
- const next = "Next";
783
- const loading = "Loading...";
784
- const error = "Failed to load leaderboard";
785
- const retry = "Retry";
786
- const you = "You";
787
- const unranked = "Unranked";
788
- const na = "N/A";
789
- const noData = "-";
790
- const whitelist = "Whitelist";
791
- const enMessages = {
792
- tabAllTime,
793
- tabQuest,
794
- tabEvent,
795
- tabSprint,
796
- columnRank,
797
- columnPosition,
798
- columnUser,
799
- columnTasks,
800
- columnInvitedUsers,
801
- columnCurrentTier,
802
- columnPoints,
803
- columnRewards,
804
- statusOngoing,
805
- statusEnded,
806
- statusUpcoming,
807
- participants,
808
- prizePool,
809
- totalWinners,
810
- rewardRules,
811
- rewardRulesTitle,
812
- rewardRulesDesc,
813
- eventPeriod,
814
- rewardDetails,
815
- eachReceives,
816
- randomlySplit,
817
- emptyTitle,
818
- emptyDesc,
819
- page,
820
- of,
821
- previous,
822
- next,
823
- loading,
824
- error,
825
- retry,
826
- you,
827
- unranked,
828
- na,
829
- noData,
830
- whitelist
831
- };
832
- const en = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
833
- __proto__: null,
834
- columnCurrentTier,
835
- columnInvitedUsers,
836
- columnPoints,
837
- columnPosition,
838
- columnRank,
839
- columnRewards,
840
- columnTasks,
841
- columnUser,
842
- default: enMessages,
843
- eachReceives,
844
- emptyDesc,
845
- emptyTitle,
846
- error,
847
- eventPeriod,
848
- loading,
849
- na,
850
- next,
851
- noData,
852
- of,
853
- page,
854
- participants,
855
- previous,
856
- prizePool,
857
- randomlySplit,
858
- retry,
859
- rewardDetails,
860
- rewardRules,
861
- rewardRulesDesc,
862
- rewardRulesTitle,
863
- statusEnded,
864
- statusOngoing,
865
- statusUpcoming,
866
- tabAllTime,
867
- tabEvent,
868
- tabQuest,
869
- tabSprint,
870
- totalWinners,
871
- unranked,
872
- whitelist,
873
- you
874
- }, Symbol.toStringTag, { value: "Module" }));
875
910
  function LeaderboardWidget(props) {
876
911
  const { widgetId, themeMode } = props;
912
+ const { t } = useLeaderboardLocale();
877
913
  const { functionConfig, cloudTheme, isConfigLoading, configError } = useResolvedWidgetConfig(widgetId);
878
914
  const mergedConfig = useMemo(() => {
879
915
  return mergeLeaderboardConfig(
@@ -890,7 +926,7 @@ function LeaderboardWidget(props) {
890
926
  cloudTheme,
891
927
  themeMode,
892
928
  className: "taskon-leaderboard",
893
- errorMessage: configError ?? (!isConfigured ? "未配置" : void 0),
929
+ errorMessage: configError ?? (!isConfigured ? t("not_configured") : void 0),
894
930
  children: isConfigured ? /* @__PURE__ */ jsx(
895
931
  LeaderboardWidgetInner,
896
932
  {
@@ -911,11 +947,7 @@ function LeaderboardWidgetInner({
911
947
  }) {
912
948
  var _a;
913
949
  const { userId } = useTaskOnContext();
914
- const { messages } = useWidgetLocale({
915
- widgetId: "LeaderboardWidget",
916
- defaultMessages: enMessages,
917
- loadMessages: (locale) => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./locales/en.json": () => Promise.resolve().then(() => en), "./locales/ja.json": () => import("./leaderboardwidget-ja-Bj6gz6y1.js"), "./locales/ko.json": () => import("./leaderboardwidget-ko-f1cLO9ic.js") }), `./locales/${locale}.json`, 3)
918
- });
950
+ const { t } = useLeaderboardLocale();
919
951
  const [activeTabId, setActiveTabId] = useState(
920
952
  defaultTabId || ((_a = config.leaderboards[0]) == null ? void 0 : _a.id) || ""
921
953
  );
@@ -923,14 +955,17 @@ function LeaderboardWidgetInner({
923
955
  const currentTab = useMemo(() => {
924
956
  return config.leaderboards.find((tab) => tab.id === activeTabId);
925
957
  }, [config.leaderboards, activeTabId]);
958
+ const [paginationTotal, setPaginationTotal] = useState(0);
926
959
  const {
927
960
  page: page2,
961
+ totalPages: actualTotalPages,
962
+ hasPrevious,
963
+ hasNext,
928
964
  goToPrevious,
929
965
  goToNext,
930
966
  reset: resetPagination
931
967
  } = usePagination({
932
- total: 0,
933
- // 初始值,hasPrevious/hasNext 将根据实际 total 重新计算
968
+ total: paginationTotal,
934
969
  pageSize: config.displayOptions.rows
935
970
  });
936
971
  const {
@@ -944,9 +979,9 @@ function LeaderboardWidgetInner({
944
979
  page: page2,
945
980
  pageSize: config.displayOptions.rows
946
981
  });
947
- const actualTotalPages = Math.max(1, Math.ceil(total / config.displayOptions.rows));
948
- const hasPrevious = page2 > 0;
949
- const hasNext = page2 < actualTotalPages - 1;
982
+ useEffect(() => {
983
+ setPaginationTotal(total);
984
+ }, [total]);
950
985
  const isSprint = (currentTab == null ? void 0 : currentTab.type) === LeaderboardContentType.LeaderboardSprint;
951
986
  const { rewardSummary, loading: rewardLoading } = useCampaignReward(
952
987
  isSprint ? currentTab == null ? void 0 : currentTab.relatedId : void 0
@@ -985,7 +1020,7 @@ function LeaderboardWidgetInner({
985
1020
  }, [leaderboardData]);
986
1021
  if (leaderboardError) {
987
1022
  return /* @__PURE__ */ jsx("div", { className: `taskon-leaderboard taskon-leaderboard--error ${className}`, style, children: /* @__PURE__ */ jsxs("div", { className: "taskon-leaderboard__error", children: [
988
- /* @__PURE__ */ jsx("p", { className: "taskon-leaderboard__error-text", children: messages.error }),
1023
+ /* @__PURE__ */ jsx("p", { className: "taskon-leaderboard__error-text", children: t("error") }),
989
1024
  /* @__PURE__ */ jsx(
990
1025
  Button,
991
1026
  {
@@ -993,7 +1028,7 @@ function LeaderboardWidgetInner({
993
1028
  size: "medium",
994
1029
  onClick: refreshLeaderboard,
995
1030
  className: "taskon-leaderboard__retry-btn",
996
- children: messages.retry
1031
+ children: t("retry")
997
1032
  }
998
1033
  )
999
1034
  ] }) });
@@ -1017,7 +1052,6 @@ function LeaderboardWidgetInner({
1017
1052
  showTitle: config.displayOptions.showTitle,
1018
1053
  rewardSummary,
1019
1054
  participantsCount,
1020
- messages,
1021
1055
  onOpenRewardRules: isSprint ? handleOpenRewardRules : void 0
1022
1056
  }
1023
1057
  ),
@@ -1028,7 +1062,6 @@ function LeaderboardWidgetInner({
1028
1062
  allTimeData,
1029
1063
  campaignData,
1030
1064
  currentUserId: userId,
1031
- messages,
1032
1065
  onUserClick,
1033
1066
  rewardTiers: rewardSummary == null ? void 0 : rewardSummary.tiers,
1034
1067
  loading: leaderboardLoading || rewardLoading,
@@ -1044,8 +1077,7 @@ function LeaderboardWidgetInner({
1044
1077
  hasPrevious,
1045
1078
  hasNext,
1046
1079
  onPrevious: goToPrevious,
1047
- onNext: goToNext,
1048
- messages
1080
+ onNext: goToNext
1049
1081
  }
1050
1082
  ),
1051
1083
  isSprint && /* @__PURE__ */ jsx(
@@ -1053,21 +1085,11 @@ function LeaderboardWidgetInner({
1053
1085
  {
1054
1086
  isOpen: isRewardModalOpen,
1055
1087
  onClose: handleCloseRewardRules,
1056
- rewardSummary,
1057
- messages
1088
+ rewardSummary
1058
1089
  }
1059
1090
  )
1060
1091
  ] });
1061
1092
  }
1062
1093
  export {
1063
- LeaderboardWidget as L,
1064
- RankBadge as R,
1065
- UserCell as U,
1066
- useCampaignReward as a,
1067
- LeaderboardTabs as b,
1068
- LeaderboardHeader as c,
1069
- LeaderboardTable as d,
1070
- LeaderboardPagination as e,
1071
- RewardRulesModal as f,
1072
- useLeaderboard as u
1094
+ LeaderboardWidget as L
1073
1095
  };