@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.
- package/README.md +61 -47
- package/dist/CommunityTaskList.css +9 -1
- package/dist/EligibilityInfo.css +48 -75
- package/dist/LeaderboardWidget.css +73 -71
- package/dist/PageBuilder.css +5 -0
- package/dist/Quest.css +18 -14
- package/dist/TaskOnProvider.css +289 -0
- package/dist/ThemeProvider.css +227 -0
- package/dist/UserCenterWidget.css +6 -6
- package/dist/UserCenterWidget2.css +1388 -1621
- package/dist/{dynamic-import-helper.css → WidgetShell.css} +0 -227
- package/dist/chunks/{CommunityTaskList-CrMvOB8w.js → CommunityTaskList-D0uVD8wD.js} +393 -208
- package/dist/chunks/{EligibilityInfo-Beww12QX.js → EligibilityInfo-Cf6hx9-a.js} +459 -679
- package/dist/chunks/{LeaderboardWidget-DwuSpVl0.js → LeaderboardWidget-DyoiiNS6.js} +274 -252
- package/dist/chunks/{PageBuilder-DsX6Tv0N.js → PageBuilder-DoAFPm6-.js} +5 -5
- package/dist/chunks/{Quest-CuD2LElS.js → Quest-ySZlYd4u.js} +74 -57
- package/dist/chunks/TaskOnProvider-CxtFIs3n.js +2072 -0
- package/dist/chunks/{dynamic-import-helper-WmIF58Sb.js → ThemeProvider-CulHkqqY.js} +1282 -555
- package/dist/chunks/UserCenterWidget-BJsc_GSZ.js +3246 -0
- package/dist/chunks/{UserCenterWidget-CvU6K4AC.js → UserCenterWidget-STq8kpV4.js} +1174 -1386
- package/dist/chunks/WidgetShell-8xn-Jivw.js +659 -0
- package/dist/chunks/communitytask-es-CBNnS4o2.js +521 -0
- package/dist/chunks/communitytask-ja-GRf9cbdx.js +521 -0
- package/dist/chunks/communitytask-ko-Bf24PQKI.js +521 -0
- package/dist/chunks/{communitytask-ru-DhySaZL8.js → communitytask-ru-CZm2CPoV.js} +211 -1
- package/dist/chunks/leaderboardwidget-es-vKjrjQaz.js +146 -0
- package/dist/chunks/leaderboardwidget-ja-Q6u0HxKG.js +146 -0
- package/dist/chunks/leaderboardwidget-ko-CG6SWgxf.js +146 -0
- package/dist/chunks/leaderboardwidget-ru-DCcHcJGz.js +146 -0
- package/dist/chunks/{quest-es-D-b5xcme.js → quest-es-Dyyy0zaw.js} +8 -93
- package/dist/chunks/{quest-ja-Dxd2vqBF.js → quest-ja-Depog33y.js} +8 -93
- package/dist/chunks/{quest-ko-CSmRWgK_.js → quest-ko-BMu3uRQJ.js} +8 -93
- package/dist/chunks/{quest-ru-CkEKv1_F.js → quest-ru-xne814Rw.js} +8 -93
- package/dist/chunks/useIsMobile-D6Ybur-6.js +30 -0
- package/dist/chunks/useToast-BGJhd3BX.js +93 -0
- package/dist/chunks/usercenter-es-Dz3Wp2vV.js +512 -0
- package/dist/chunks/usercenter-ja-CKE4DJC6.js +512 -0
- package/dist/chunks/usercenter-ko-Dtpkn2qb.js +512 -0
- package/dist/chunks/usercenter-ru-DnBGee45.js +512 -0
- package/dist/community-task.d.ts +0 -390
- package/dist/community-task.js +2 -7
- package/dist/core.d.ts +38 -20
- package/dist/core.js +9 -10
- package/dist/index.d.ts +86 -709
- package/dist/index.js +22 -28
- package/dist/leaderboard.d.ts +0 -498
- package/dist/leaderboard.js +2 -16
- package/dist/page-builder.js +1 -1
- package/dist/quest.d.ts +0 -971
- package/dist/quest.js +2 -7
- package/dist/user-center.d.ts +0 -1610
- package/dist/user-center.js +2 -494
- package/package.json +2 -2
- package/dist/chunks/TaskOnProvider-xUeP2Nro.js +0 -1243
- package/dist/chunks/ThemeProvider-Bt4UZ33y.js +0 -1334
- package/dist/chunks/UserCenterWidget-CB0hnj-L.js +0 -3230
- package/dist/chunks/communitytask-es-1zawvXEX.js +0 -311
- package/dist/chunks/communitytask-ja-CmW6nP-L.js +0 -311
- package/dist/chunks/communitytask-ko-BD0hzQSi.js +0 -311
- package/dist/chunks/createLocaleLoader-BameiEhU.js +0 -65
- package/dist/chunks/leaderboardwidget-ja-Bj6gz6y1.js +0 -119
- package/dist/chunks/leaderboardwidget-ko-f1cLO9ic.js +0 -119
- package/dist/chunks/useToast-CaRkylKe.js +0 -304
- package/dist/chunks/usercenter-ja-B2465c1O.js +0 -326
- package/dist/chunks/usercenter-ko-xAEYxqLg.js +0 -326
package/dist/community-task.d.ts
CHANGED
|
@@ -1,253 +1,5 @@
|
|
|
1
|
-
import { ChainType } from '@taskon/core';
|
|
2
|
-
import { CommunityTaskInfo } from '@taskon/core';
|
|
3
1
|
import { default as default_2 } from 'react';
|
|
4
|
-
import { RecurrenceType } from '@taskon/core';
|
|
5
2
|
import { RewardDisplayMode } from '@taskon/core';
|
|
6
|
-
import { SnsType } from '@taskon/core';
|
|
7
|
-
import { TaskReviewResult } from '@taskon/core';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* BaseTask 组件
|
|
11
|
-
* @description 基础任务卡片,职责:
|
|
12
|
-
* - 卡片布局(flex 容器)
|
|
13
|
-
* - 周期标签显示
|
|
14
|
-
* - 任务标题显示
|
|
15
|
-
* - 有效时间显示
|
|
16
|
-
* - 按钮区域管理
|
|
17
|
-
* - 完成状态样式
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```tsx
|
|
21
|
-
* <BaseTask
|
|
22
|
-
* title="Follow @TaskOn_xyz"
|
|
23
|
-
* isWon={false}
|
|
24
|
-
* isCompleted={false}
|
|
25
|
-
* isPeriodic={true}
|
|
26
|
-
* recurrenceLabel="Daily"
|
|
27
|
-
* taskId={123}
|
|
28
|
-
* actionLabel="Follow"
|
|
29
|
-
* actionLink="https://twitter.com/TaskOn_xyz"
|
|
30
|
-
* reward={{ type: 'points', amount: 100, name: 'Points', icon: '/icon.png' }}
|
|
31
|
-
* onClick={() => console.log('卡片被点击')}
|
|
32
|
-
* onClaim={() => console.log('Claim 按钮被点击')}
|
|
33
|
-
* >
|
|
34
|
-
* <div>额外的任务描述内容</div>
|
|
35
|
-
* </BaseTask>
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
declare function BaseTask(props: BaseTaskProps): default_2.ReactElement;
|
|
39
|
-
export { BaseTask }
|
|
40
|
-
export { BaseTask as CommunityTask }
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* 任务卡片基础 Props(最小知识原则)
|
|
44
|
-
* BaseTask 只需要知道这些信息
|
|
45
|
-
*/
|
|
46
|
-
declare interface BaseTaskProps {
|
|
47
|
-
/** 任务名称/标题(字符串或自定义渲染节点) */
|
|
48
|
-
title: string | React.ReactNode;
|
|
49
|
-
/** 是否已中奖/完成 */
|
|
50
|
-
isWon: boolean;
|
|
51
|
-
/** 是否已提交(可能未中奖) */
|
|
52
|
-
isCompleted: boolean;
|
|
53
|
-
/** 是否是周期任务 */
|
|
54
|
-
isPeriodic: boolean;
|
|
55
|
-
/** 操作按钮文案(如 "Follow"、"Join") */
|
|
56
|
-
actionLabel?: string;
|
|
57
|
-
/** 操作按钮链接(默认在新标签页打开) */
|
|
58
|
-
actionLink?: string;
|
|
59
|
-
/** 点击操作按钮后是否自动验证 */
|
|
60
|
-
actionAutoVerify?: boolean;
|
|
61
|
-
/**
|
|
62
|
-
* 点击 Action 按钮时自动打开弹窗
|
|
63
|
-
* 用于 PowTask、InviteFriends 等需要在弹窗中填写内容的任务
|
|
64
|
-
*/
|
|
65
|
-
actionAutoDialog?: boolean;
|
|
66
|
-
/** 是否总是显示操作按钮(即使已完成) */
|
|
67
|
-
alwaysShowAction?: boolean;
|
|
68
|
-
/**
|
|
69
|
-
* 标题跳转链接
|
|
70
|
-
* 如果提供,标题将变成可点击的链接,在新标签页打开
|
|
71
|
-
*/
|
|
72
|
-
targetLink?: string;
|
|
73
|
-
/** 是否隐藏 Claim 按钮 */
|
|
74
|
-
noClaim?: boolean;
|
|
75
|
-
/**
|
|
76
|
-
* 是否需要验证后才能 Claim
|
|
77
|
-
* - true: 显示 "Verify & Claim"
|
|
78
|
-
* - false: 显示 "Claim"
|
|
79
|
-
*/
|
|
80
|
-
verifyClaim?: boolean;
|
|
81
|
-
/**
|
|
82
|
-
* 点击 Claim 仅打开弹窗(不提交)
|
|
83
|
-
* 用于 QuizTask、SurveyTask 等需要在弹窗中选择答案的任务
|
|
84
|
-
*/
|
|
85
|
-
claimDialog?: boolean;
|
|
86
|
-
/**
|
|
87
|
-
* 社交账号类型(用于 OAuth 绑定)
|
|
88
|
-
* 决定 Claim 时需要绑定哪种社交账号
|
|
89
|
-
*/
|
|
90
|
-
snsType?: SnsType;
|
|
91
|
-
/**
|
|
92
|
-
* 链类型(用于钱包绑定)
|
|
93
|
-
* 决定 Claim 时需要绑定哪种链的钱包
|
|
94
|
-
*/
|
|
95
|
-
chainType?: ChainType;
|
|
96
|
-
/** 周期标签文本(如 "Daily"、"Weekly") */
|
|
97
|
-
recurrenceLabel?: string;
|
|
98
|
-
/** 任务重复类型(用于 Claim 按钮文案逻辑) */
|
|
99
|
-
recurrence?: RecurrenceType;
|
|
100
|
-
/** 是否隐藏周期标签 */
|
|
101
|
-
noRecurrence?: boolean;
|
|
102
|
-
/**
|
|
103
|
-
* Unlimited 任务是否显示大的 Claim 按钮
|
|
104
|
-
* - true: 显示正常大小的 Claim 按钮
|
|
105
|
-
* - false: 显示小的 Update 按钮(已有积分)
|
|
106
|
-
* @default true
|
|
107
|
-
*/
|
|
108
|
-
showUnlimitedClaim?: boolean;
|
|
109
|
-
/** 任务 ID */
|
|
110
|
-
taskId: number;
|
|
111
|
-
/** 有效时间相关 */
|
|
112
|
-
validTime?: {
|
|
113
|
-
/** 开始时间(格式化字符串) */
|
|
114
|
-
startTime?: string;
|
|
115
|
-
/** 结束时间(格式化字符串) */
|
|
116
|
-
endTime?: string;
|
|
117
|
-
/** 是否已过期 */
|
|
118
|
-
isExpired?: boolean;
|
|
119
|
-
};
|
|
120
|
-
/**
|
|
121
|
-
* 验证时间范围(OnChain 任务专用)
|
|
122
|
-
* 显示 "This task only verify action during {start} - {end}(UTC)"
|
|
123
|
-
*/
|
|
124
|
-
validationTimeFrame?: {
|
|
125
|
-
/** 开始时间(毫秒或秒时间戳) */
|
|
126
|
-
start_time: number;
|
|
127
|
-
/** 结束时间(毫秒或秒时间戳) */
|
|
128
|
-
end_time: number;
|
|
129
|
-
};
|
|
130
|
-
/** 奖励信息 */
|
|
131
|
-
reward?: {
|
|
132
|
-
/** 奖励类型 */
|
|
133
|
-
type: "points" | "token" | "none";
|
|
134
|
-
/** 积分数量(points 类型,单次奖励) */
|
|
135
|
-
amount?: number;
|
|
136
|
-
/** 积分名称(points 类型) */
|
|
137
|
-
name?: string;
|
|
138
|
-
/** 积分图标(points 类型) */
|
|
139
|
-
icon?: string;
|
|
140
|
-
/** 累计积分(周期任务完成时显示) */
|
|
141
|
-
totalAmount?: number;
|
|
142
|
-
/** Token 信息(token 类型) */
|
|
143
|
-
token?: {
|
|
144
|
-
/** Token 名称 */
|
|
145
|
-
name: string;
|
|
146
|
-
/** 每次奖励数量 */
|
|
147
|
-
amount: string;
|
|
148
|
-
/** Token 图标 */
|
|
149
|
-
icon?: string;
|
|
150
|
-
/** 链名称 */
|
|
151
|
-
chain?: string;
|
|
152
|
-
/** 链图标 */
|
|
153
|
-
chainIcon?: string;
|
|
154
|
-
/** 总奖励单位数 */
|
|
155
|
-
totalUnit?: number;
|
|
156
|
-
/** 可用单位数 */
|
|
157
|
-
availableUnit?: number;
|
|
158
|
-
};
|
|
159
|
-
};
|
|
160
|
-
/** 卡片内容(由具体任务组件提供,用于展示任务特定内容) */
|
|
161
|
-
children?: React.ReactNode;
|
|
162
|
-
/**
|
|
163
|
-
* 自定义 Action 按钮区域
|
|
164
|
-
* 如果提供,将替换默认的 Action 按钮
|
|
165
|
-
* @example
|
|
166
|
-
* ```tsx
|
|
167
|
-
* <BaseTask
|
|
168
|
-
* actionSlot={<CustomActionButton onClick={handleAction} />}
|
|
169
|
-
* />
|
|
170
|
-
* ```
|
|
171
|
-
*/
|
|
172
|
-
actionSlot?: React.ReactNode;
|
|
173
|
-
/**
|
|
174
|
-
* 自定义奖励展示(已完成状态)
|
|
175
|
-
* 如果提供,将替换默认的 Won 奖励显示
|
|
176
|
-
* @example
|
|
177
|
-
* ```tsx
|
|
178
|
-
* <BaseTask
|
|
179
|
-
* rewardSlot={<CustomRewardDisplay amount={100} />}
|
|
180
|
-
* />
|
|
181
|
-
* ```
|
|
182
|
-
*/
|
|
183
|
-
rewardSlot?: React.ReactNode;
|
|
184
|
-
/**
|
|
185
|
-
* 是否已登录
|
|
186
|
-
* - true: 正常显示卡片
|
|
187
|
-
* - false/undefined: 显示登录遮层,点击触发 onLogin
|
|
188
|
-
* @default true
|
|
189
|
-
*/
|
|
190
|
-
isLoggedIn?: boolean;
|
|
191
|
-
/** 点击卡片回调(用于打开弹窗) */
|
|
192
|
-
onClick?: () => void;
|
|
193
|
-
/**
|
|
194
|
-
* 点击 Claim 按钮回调
|
|
195
|
-
* @param token - 可选的 OAuth token(reAuth 成功后传入)
|
|
196
|
-
* @returns 可选返回 Promise,包含结果信息用于 reAuth 判断和 coolDown 更新
|
|
197
|
-
*/
|
|
198
|
-
onClaim?: (token?: string) => void | Promise<{
|
|
199
|
-
successful: boolean;
|
|
200
|
-
errorCode?: string;
|
|
201
|
-
cool_down?: number;
|
|
202
|
-
}>;
|
|
203
|
-
/**
|
|
204
|
-
* 点击登录遮层回调
|
|
205
|
-
* 未登录时(isLoggedIn=false)点击卡片会触发此回调
|
|
206
|
-
*/
|
|
207
|
-
onLogin?: () => void;
|
|
208
|
-
/** 是否正在提交 */
|
|
209
|
-
isSubmitting?: boolean;
|
|
210
|
-
/** 冷却时间(毫秒) */
|
|
211
|
-
coolDown?: number;
|
|
212
|
-
/** 冷却结束回调(用于重置 coolDown 状态) */
|
|
213
|
-
onCoolDownComplete?: () => void;
|
|
214
|
-
/**
|
|
215
|
-
* 周期任务倒计时结束回调
|
|
216
|
-
* 用于在 next_time 到期后刷新单个任务卡片状态
|
|
217
|
-
*/
|
|
218
|
-
onDoneCountdownComplete?: (taskId: number) => void | Promise<void>;
|
|
219
|
-
/** 是否禁用交互 */
|
|
220
|
-
disabled?: boolean;
|
|
221
|
-
/**
|
|
222
|
-
* 审核结果状态
|
|
223
|
-
* - Passed: 审核通过
|
|
224
|
-
* - Failed: 审核失败(显示 "Oops! Failed")
|
|
225
|
-
* - UnReviewed: 审核中(显示 "Under Review")
|
|
226
|
-
*/
|
|
227
|
-
reviewResult?: TaskReviewResult;
|
|
228
|
-
/**
|
|
229
|
-
* CheckProgressTip 需要的社区信息
|
|
230
|
-
* 用于显示 "Contact {name} to check your progress"
|
|
231
|
-
*/
|
|
232
|
-
communityInfo?: {
|
|
233
|
-
/** 社区名称 */
|
|
234
|
-
name?: string;
|
|
235
|
-
/** 社区联系链接(Discord/Telegram/Twitter) */
|
|
236
|
-
contactLink?: string;
|
|
237
|
-
};
|
|
238
|
-
/**
|
|
239
|
-
* 周期任务:当前周期是否已完成
|
|
240
|
-
* 配合 nextTime 用于显示 DoneCountdown
|
|
241
|
-
*/
|
|
242
|
-
currentCompleted?: boolean;
|
|
243
|
-
/**
|
|
244
|
-
* 周期任务:下次可完成的时间戳(毫秒)
|
|
245
|
-
* 用于显示 DoneCountdown 倒计时
|
|
246
|
-
*/
|
|
247
|
-
nextTime?: number;
|
|
248
|
-
}
|
|
249
|
-
export { BaseTaskProps }
|
|
250
|
-
export { BaseTaskProps as CommunityTaskProps }
|
|
251
3
|
|
|
252
4
|
/**
|
|
253
5
|
* CommunityTaskList outer wrapper
|
|
@@ -337,146 +89,4 @@ export declare interface CommunityTaskListProps {
|
|
|
337
89
|
rewardRedirectUrl?: string;
|
|
338
90
|
}
|
|
339
91
|
|
|
340
|
-
/** 奖励信息(统一格式) */
|
|
341
|
-
declare interface RewardInfo {
|
|
342
|
-
/** 奖励类型 */
|
|
343
|
-
type: "points" | "token" | "none";
|
|
344
|
-
/** 积分数量(仅 points 类型) */
|
|
345
|
-
amount?: number;
|
|
346
|
-
/** 积分名称(仅 points 类型) */
|
|
347
|
-
name?: string;
|
|
348
|
-
/** 积分图标(仅 points 类型) */
|
|
349
|
-
icon?: string;
|
|
350
|
-
/** 积分 ID(仅 points 类型) */
|
|
351
|
-
pointsId?: number;
|
|
352
|
-
/** 代币信息(仅 token 类型) */
|
|
353
|
-
token?: {
|
|
354
|
-
name: string;
|
|
355
|
-
amount: string;
|
|
356
|
-
address: string;
|
|
357
|
-
chain: string;
|
|
358
|
-
icon?: string;
|
|
359
|
-
/** 链图标 URL */
|
|
360
|
-
chainIcon?: string;
|
|
361
|
-
/** 总奖励单位数 */
|
|
362
|
-
totalUnit?: number;
|
|
363
|
-
/** 可用单位数 */
|
|
364
|
-
availableUnit?: number;
|
|
365
|
-
};
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* useSubmitTask Hook
|
|
370
|
-
* @description 处理任务提交逻辑
|
|
371
|
-
* @module widgets/CommunityTask/hooks/useSubmitTask
|
|
372
|
-
*/
|
|
373
|
-
/** 任务提交返回值 */
|
|
374
|
-
declare interface SubmitTaskResult {
|
|
375
|
-
/** 是否成功 */
|
|
376
|
-
successful: boolean;
|
|
377
|
-
/** 冷却时间(毫秒) */
|
|
378
|
-
cool_down?: number;
|
|
379
|
-
/** 错误信息 */
|
|
380
|
-
error?: string;
|
|
381
|
-
/** 错误码(用于判断是否是 UNAUTHORIZED 等特殊错误) */
|
|
382
|
-
errorCode?: string;
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
/** 时间信息返回值 */
|
|
386
|
-
declare interface TimeInfo {
|
|
387
|
-
/** 开始时间(格式化后的字符串) */
|
|
388
|
-
startTime: string;
|
|
389
|
-
/** 结束时间(格式化后的字符串) */
|
|
390
|
-
endTime: string;
|
|
391
|
-
/** 开始时间戳 */
|
|
392
|
-
startTimestamp: number | null;
|
|
393
|
-
/** 结束时间戳 */
|
|
394
|
-
endTimestamp: number | null;
|
|
395
|
-
/** 是否即将开始(未到开始时间) */
|
|
396
|
-
isUpcoming: boolean;
|
|
397
|
-
/** 是否已过期(超过结束时间) */
|
|
398
|
-
isExpired: boolean;
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
/**
|
|
402
|
-
* useSubmitTask Hook
|
|
403
|
-
* @description 提供任务提交功能,处理提交状态和错误
|
|
404
|
-
*
|
|
405
|
-
* @param taskId 任务 ID
|
|
406
|
-
* @param onSuccess 提交成功回调(用于刷新任务状态)
|
|
407
|
-
* @param platform 任务平台类型(用于显示平台相关的错误提示)
|
|
408
|
-
* @param options 配置选项
|
|
409
|
-
* @returns 提交函数和提交状态
|
|
410
|
-
*
|
|
411
|
-
* @example
|
|
412
|
-
* ```tsx
|
|
413
|
-
* const { submitTask, isSubmitting, error } = useSubmitTask(task.id, () => {
|
|
414
|
-
* console.log('任务提交成功,刷新状态');
|
|
415
|
-
* onUpdate();
|
|
416
|
-
* }, 'Twitter');
|
|
417
|
-
*
|
|
418
|
-
* // 提交任务
|
|
419
|
-
* const result = await submitTask();
|
|
420
|
-
* if (result.successful) {
|
|
421
|
-
* // 成功处理
|
|
422
|
-
* }
|
|
423
|
-
* ```
|
|
424
|
-
*/
|
|
425
|
-
export declare function useSubmitTask(taskId: number, onSuccess?: () => void, platform?: string, options?: UseSubmitTaskOptions): {
|
|
426
|
-
/** 提交任务函数 */
|
|
427
|
-
submitTask: (taskValue?: string) => Promise<SubmitTaskResult>;
|
|
428
|
-
/** 是否正在提交 */
|
|
429
|
-
isSubmitting: boolean;
|
|
430
|
-
/** 错误信息 */
|
|
431
|
-
error: string | null;
|
|
432
|
-
};
|
|
433
|
-
|
|
434
|
-
/**
|
|
435
|
-
* useSubmitTask Hook 配置选项
|
|
436
|
-
*/
|
|
437
|
-
declare interface UseSubmitTaskOptions {
|
|
438
|
-
/**
|
|
439
|
-
* 验证失败时是否也刷新数据
|
|
440
|
-
* 用于 SwapDex 等任务:用户完成了链上操作(times 增加),但还没达到要求次数
|
|
441
|
-
* 此时验证返回 false,但需要刷新以显示更新后的 times
|
|
442
|
-
*/
|
|
443
|
-
refreshOnFail?: boolean;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
/**
|
|
447
|
-
* useTaskReward Hook
|
|
448
|
-
* @description 根据任务信息计算奖励信息
|
|
449
|
-
*
|
|
450
|
-
* @param task 任务完整信息(可选,为 undefined 时返回无奖励)
|
|
451
|
-
* @returns 奖励信息对象
|
|
452
|
-
*
|
|
453
|
-
* @example
|
|
454
|
-
* ```tsx
|
|
455
|
-
* const reward = useTaskReward(task);
|
|
456
|
-
* if (reward.type === 'points') {
|
|
457
|
-
* console.log(reward.amount); // 100
|
|
458
|
-
* console.log(reward.name); // "TaskOn Points"
|
|
459
|
-
* }
|
|
460
|
-
* ```
|
|
461
|
-
*/
|
|
462
|
-
export declare function useTaskReward(task: CommunityTaskInfo | undefined): RewardInfo;
|
|
463
|
-
|
|
464
|
-
/**
|
|
465
|
-
* useTaskTime Hook
|
|
466
|
-
* @description 根据任务信息计算时间相关状态
|
|
467
|
-
*
|
|
468
|
-
* @param task 任务完整信息
|
|
469
|
-
* @returns 时间信息对象
|
|
470
|
-
*
|
|
471
|
-
* @example
|
|
472
|
-
* ```tsx
|
|
473
|
-
* const timeInfo = useTaskTime(task);
|
|
474
|
-
* if (timeInfo.isExpired) {
|
|
475
|
-
* console.log('任务已过期');
|
|
476
|
-
* }
|
|
477
|
-
* console.log(timeInfo.endTime); // "03/05/2026 02:18:52 UTC"
|
|
478
|
-
* ```
|
|
479
|
-
*/
|
|
480
|
-
export declare function useTaskTime(task: CommunityTaskInfo): TimeInfo;
|
|
481
|
-
|
|
482
92
|
export { }
|
package/dist/community-task.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { C } from "./chunks/CommunityTaskList-D0uVD8wD.js";
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
B2 as CommunityTask,
|
|
5
|
-
a as CommunityTaskList,
|
|
6
|
-
c as useSubmitTask,
|
|
7
|
-
u as useTaskReward,
|
|
8
|
-
b as useTaskTime
|
|
3
|
+
C as CommunityTaskList
|
|
9
4
|
};
|
package/dist/core.d.ts
CHANGED
|
@@ -293,9 +293,21 @@ export declare interface TaskOnContextValue {
|
|
|
293
293
|
*/
|
|
294
294
|
client: TaskOnClient | null;
|
|
295
295
|
/**
|
|
296
|
-
* Whether the provider is
|
|
296
|
+
* Whether the provider is in full initialization flow.
|
|
297
|
+
*
|
|
298
|
+
* Notes:
|
|
299
|
+
* - Includes session restore and token validation.
|
|
300
|
+
* - When a stored token exists, this stays true until user info validation completes.
|
|
297
301
|
*/
|
|
298
302
|
isInitializing: boolean;
|
|
303
|
+
/**
|
|
304
|
+
* Whether session prerequisites are ready for data requests.
|
|
305
|
+
* True means client is created and auth token has been loaded
|
|
306
|
+
* (or no token exists, anonymous mode).
|
|
307
|
+
*
|
|
308
|
+
* This can become true earlier than `isInitializing === false`.
|
|
309
|
+
*/
|
|
310
|
+
isSessionReady: boolean;
|
|
299
311
|
/**
|
|
300
312
|
* Resolved locale
|
|
301
313
|
*/
|
|
@@ -340,7 +352,7 @@ export declare interface TaskOnContextValue {
|
|
|
340
352
|
*/
|
|
341
353
|
chains: ChainInfo[];
|
|
342
354
|
/**
|
|
343
|
-
* Community info (auto-loaded on init based on
|
|
355
|
+
* Community info (auto-loaded on init based on clientId)
|
|
344
356
|
* Used for displaying community logo and name in reward cards
|
|
345
357
|
*/
|
|
346
358
|
communityInfo: CommunityInfo | null;
|
|
@@ -353,7 +365,7 @@ export declare interface TaskOnContextValue {
|
|
|
353
365
|
* - TaskOn client management (based on @taskon/core)
|
|
354
366
|
* - User authentication (login/logout)
|
|
355
367
|
* - Locale configuration
|
|
356
|
-
* - Wallet management (
|
|
368
|
+
* - Wallet management (host adapter or built-in wallet picker)
|
|
357
369
|
* - Widget locale preloading (optional)
|
|
358
370
|
* - Toast notifications (internal, user-transparent)
|
|
359
371
|
*/
|
|
@@ -364,10 +376,10 @@ export declare function TaskOnProvider({ config, children, preloadLocales, }: Ta
|
|
|
364
376
|
*/
|
|
365
377
|
export declare interface TaskOnProviderConfig {
|
|
366
378
|
/**
|
|
367
|
-
*
|
|
368
|
-
* Note:
|
|
379
|
+
* Client ID for authentication (X-API-Key header)
|
|
380
|
+
* Note: clientId already contains community info, no need to configure communityId/communityKey separately
|
|
369
381
|
*/
|
|
370
|
-
|
|
382
|
+
clientId: string;
|
|
371
383
|
/**
|
|
372
384
|
* API base URL (optional)
|
|
373
385
|
* @default https://white-label-api.taskon.xyz
|
|
@@ -381,8 +393,8 @@ export declare interface TaskOnProviderConfig {
|
|
|
381
393
|
/**
|
|
382
394
|
* Wallet configuration for blockchain interactions
|
|
383
395
|
*
|
|
384
|
-
* When not provided, TaskOn will use built-in
|
|
385
|
-
* for EVM wallet connections
|
|
396
|
+
* When not provided, TaskOn will use SDK built-in wallet picker adapter
|
|
397
|
+
* for EVM wallet connections.
|
|
386
398
|
*/
|
|
387
399
|
walletConfig?: WalletConfig;
|
|
388
400
|
/**
|
|
@@ -395,7 +407,7 @@ export declare interface TaskOnProviderConfig {
|
|
|
395
407
|
* ```tsx
|
|
396
408
|
* <TaskOnProvider
|
|
397
409
|
* config={{
|
|
398
|
-
*
|
|
410
|
+
* clientId: 'your-client-id',
|
|
399
411
|
* onRequestLogin: () => {
|
|
400
412
|
* setShowLoginModal(true);
|
|
401
413
|
* },
|
|
@@ -418,10 +430,13 @@ export declare interface TaskOnProviderConfig {
|
|
|
418
430
|
/**
|
|
419
431
|
* WalletConnect Project ID
|
|
420
432
|
*
|
|
421
|
-
*
|
|
422
|
-
*
|
|
433
|
+
* Only needed when you design Web3 wallet login or wallet-based reward flows.
|
|
434
|
+
* (e.g. wallet binding, on-chain verification, NFT/token claiming)
|
|
423
435
|
*
|
|
424
|
-
* If not provided,
|
|
436
|
+
* Optional. If not provided, SDK built-in default project ID will be used.
|
|
437
|
+
* For production, it is strongly recommended to set your own project ID.
|
|
438
|
+
*
|
|
439
|
+
* Get your project ID at https://cloud.walletconnect.com
|
|
425
440
|
*/
|
|
426
441
|
walletConnectProjectId?: string;
|
|
427
442
|
}
|
|
@@ -555,7 +570,15 @@ export { UserInfo }
|
|
|
555
570
|
*
|
|
556
571
|
* @example
|
|
557
572
|
* ```tsx
|
|
558
|
-
* const {
|
|
573
|
+
* const {
|
|
574
|
+
* login,
|
|
575
|
+
* logout,
|
|
576
|
+
* userId,
|
|
577
|
+
* isLoggedIn,
|
|
578
|
+
* isInitializing,
|
|
579
|
+
* isSessionReady,
|
|
580
|
+
* requestLogin,
|
|
581
|
+
* } = useTaskOnAuth();
|
|
559
582
|
*
|
|
560
583
|
* // EVM wallet login
|
|
561
584
|
* await login({ method: 'evm_wallet', value: '0x...', sign, timestamp });
|
|
@@ -574,6 +597,7 @@ export declare function useTaskOnAuth(): {
|
|
|
574
597
|
userId: number | null;
|
|
575
598
|
isLoggedIn: boolean;
|
|
576
599
|
isInitializing: boolean;
|
|
600
|
+
isSessionReady: boolean;
|
|
577
601
|
login: (params: LoginParams) => Promise<void>;
|
|
578
602
|
logout: () => void;
|
|
579
603
|
requestLogin: () => void;
|
|
@@ -813,15 +837,9 @@ export declare interface WalletAdapter {
|
|
|
813
837
|
export declare interface WalletConfig {
|
|
814
838
|
/**
|
|
815
839
|
* Custom EVM wallet adapter
|
|
816
|
-
* If not provided, uses built-in
|
|
840
|
+
* If not provided, uses SDK built-in wallet picker adapter
|
|
817
841
|
*/
|
|
818
842
|
evmAdapter?: WalletAdapter;
|
|
819
|
-
/**
|
|
820
|
-
* Disable auto-detection of wallet providers
|
|
821
|
-
* When true, only uses adapter explicitly provided above
|
|
822
|
-
* @default false
|
|
823
|
-
*/
|
|
824
|
-
disableAutoDetect?: boolean;
|
|
825
843
|
}
|
|
826
844
|
|
|
827
845
|
/**
|
package/dist/core.js
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import { T,
|
|
1
|
+
import { T, d, e, f, i, g, u, a, c, b } from "./chunks/ThemeProvider-CulHkqqY.js";
|
|
2
2
|
import { RewardType } from "@taskon/core";
|
|
3
|
-
import { T as T2, u as u2 } from "./chunks/TaskOnProvider-
|
|
4
|
-
import { a as a2, u as u3 } from "./chunks/useToast-
|
|
5
|
-
import { c as c2, a as a3, i as i2, u as u4 } from "./chunks/createLocaleLoader-BameiEhU.js";
|
|
3
|
+
import { T as T2, u as u2 } from "./chunks/TaskOnProvider-CxtFIs3n.js";
|
|
4
|
+
import { a as a2, u as u3 } from "./chunks/useToast-BGJhd3BX.js";
|
|
6
5
|
export {
|
|
7
6
|
RewardType,
|
|
8
7
|
T2 as TaskOnProvider,
|
|
9
8
|
T as ThemeProvider,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
d as clearLocaleCache,
|
|
10
|
+
e as createLocaleLoader,
|
|
11
|
+
f as createT,
|
|
12
|
+
i as interpolate,
|
|
13
|
+
g as isSupportedLocale,
|
|
15
14
|
u2 as useCommonLocale,
|
|
16
15
|
a2 as useEvmWallet,
|
|
17
16
|
u as useTaskOnAuth,
|
|
18
17
|
a as useTaskOnTheme,
|
|
19
|
-
|
|
18
|
+
c as useTranslation,
|
|
20
19
|
u3 as useWallet,
|
|
21
20
|
b as useWidgetLocale
|
|
22
21
|
};
|