@taskon/widget-react 0.0.1 → 0.0.2
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 +118 -64
- package/dist/CommunityTaskList.css +2694 -2951
- package/dist/EligibilityInfo.css +2221 -1332
- package/dist/LeaderboardWidget.css +403 -198
- package/dist/PageBuilder.css +57 -0
- package/dist/Quest.css +1347 -1477
- package/dist/TaskOnProvider.css +337 -29
- package/dist/ThemeProvider.css +228 -0
- package/dist/UserCenterWidget.css +168 -0
- package/dist/UserCenterWidget2.css +4917 -0
- package/dist/WidgetShell.css +417 -130
- package/dist/chunks/{CommunityTaskList-CrH6r4Av.js → CommunityTaskList-2nFy6l6m.js} +2612 -2074
- package/dist/chunks/{EligibilityInfo-DesW9-k9.js → EligibilityInfo-CKTl_cdU.js} +2714 -4077
- package/dist/chunks/{LeaderboardWidget-BSGpHKTk.js → LeaderboardWidget-DyoiiNS6.js} +288 -349
- package/dist/chunks/PageBuilder-DHM3Il6f.js +150 -0
- package/dist/chunks/{Quest-uSIVq78I.js → Quest-Dqx4OCat.js} +1380 -726
- package/dist/chunks/TaskOnProvider-CxtFIs3n.js +2072 -0
- package/dist/chunks/{WidgetShell-NlOgn1x5.js → ThemeProvider-CulHkqqY.js} +1397 -103
- package/dist/chunks/UserCenterWidget-SE5hqpnZ.js +8335 -0
- package/dist/chunks/UserCenterWidget-XL6LZRZM.js +3259 -0
- package/dist/chunks/{Table-CWGf2FKV.js → WidgetShell-8xn-Jivw.js} +237 -27
- 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-CZm2CPoV.js +521 -0
- 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-Dyyy0zaw.js +863 -0
- package/dist/chunks/quest-ja-Depog33y.js +863 -0
- package/dist/chunks/quest-ko-BMu3uRQJ.js +863 -0
- package/dist/chunks/quest-ru-xne814Rw.js +863 -0
- package/dist/chunks/taskwidget-es-Do9b3Mqw.js +245 -0
- package/dist/chunks/taskwidget-ja-CqSu-yWA.js +245 -0
- package/dist/chunks/taskwidget-ko-EHgXFV4B.js +245 -0
- package/dist/chunks/taskwidget-ru-CMbLQDK4.js +245 -0
- package/dist/chunks/useIsMobile-D6Ybur-6.js +30 -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 +29 -388
- package/dist/community-task.js +2 -7
- package/dist/core.d.ts +95 -28
- package/dist/core.js +11 -12
- package/dist/index.d.ts +260 -602
- package/dist/index.js +28 -7361
- package/dist/leaderboard.d.ts +5 -496
- package/dist/leaderboard.js +2 -15
- package/dist/page-builder.d.ts +20 -0
- package/dist/page-builder.js +4 -0
- package/dist/quest.d.ts +20 -292
- package/dist/quest.js +2 -5
- package/dist/user-center.d.ts +56 -0
- package/dist/user-center.js +4 -0
- package/package.json +22 -3
- package/dist/Table.css +0 -389
- package/dist/chunks/TaskOnProvider-QMwxGL44.js +0 -1435
- package/dist/chunks/ThemeProvider-Cs8IUVQj.js +0 -1118
- package/dist/chunks/leaderboardwidget-ja-Bj6gz6y1.js +0 -119
- package/dist/chunks/leaderboardwidget-ko-f1cLO9ic.js +0 -119
- package/dist/chunks/useWidgetLocale-BVcopbZS.js +0 -74
- package/dist/chunks/usercenter-ja-DBj_dtuz.js +0 -329
- package/dist/chunks/usercenter-ko-DYTkHAld.js +0 -329
- package/dist/index.css +0 -3662
package/dist/quest.d.ts
CHANGED
|
@@ -1,174 +1,10 @@
|
|
|
1
|
-
import { CampaignStatus } from '@taskon/core';
|
|
2
|
-
import { CampaignStatusInfo } from '@taskon/core';
|
|
3
1
|
import { CampaignWinnerReward } from '@taskon/core';
|
|
4
2
|
import { ChainType } from '@taskon/core';
|
|
5
3
|
import { default as default_2 } from 'react';
|
|
6
|
-
import { EligibilityValueItem } from '@taskon/core';
|
|
7
|
-
import { QuestApi } from '@taskon/core';
|
|
8
4
|
import { QuestCampaignInfo } from '@taskon/core';
|
|
9
|
-
import {
|
|
10
|
-
import { QuestRewardInfo } from '@taskon/core';
|
|
11
|
-
import { QuestRewardInfoSimple } from '@taskon/core';
|
|
5
|
+
import { RewardDisplayMode } from '@taskon/core';
|
|
12
6
|
import { RewardValueInfo } from '@taskon/core';
|
|
13
7
|
import { SnsType } from '@taskon/core';
|
|
14
|
-
import { TaskValueItem } from '@taskon/core';
|
|
15
|
-
import { UserCampaignStatusInfo } from '@taskon/core';
|
|
16
|
-
import { UserTaskStatus } from '@taskon/core';
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Quest Complete Button 组件 Props
|
|
20
|
-
*/
|
|
21
|
-
export declare interface QuestCompleteButtonProps {
|
|
22
|
-
/** Campaign ID */
|
|
23
|
-
campaignId: number;
|
|
24
|
-
/** Campaign 信息 */
|
|
25
|
-
campaign: QuestCampaignInfo;
|
|
26
|
-
/** 用户状态信息 */
|
|
27
|
-
userStatus?: UserCampaignStatusInfo;
|
|
28
|
-
/** 是否禁用 */
|
|
29
|
-
disabled?: boolean;
|
|
30
|
-
/** 提交成功回调 */
|
|
31
|
-
onSuccess?: () => void;
|
|
32
|
-
/** 提交失败回调 */
|
|
33
|
-
onError?: (error: Error) => void;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Quest 资格展示信息
|
|
38
|
-
*/
|
|
39
|
-
export declare interface QuestEligibilityDisplay {
|
|
40
|
-
/** 资格条件列表 */
|
|
41
|
-
eligibilities: EligibilityValueItem[];
|
|
42
|
-
/** 用户是否符合资格 */
|
|
43
|
-
isEligible: boolean;
|
|
44
|
-
/** 各条件的验证结果 */
|
|
45
|
-
eligibilityResults: boolean[];
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Quest Header 组件 Props
|
|
50
|
-
*/
|
|
51
|
-
export declare interface QuestHeaderProps {
|
|
52
|
-
/** Campaign 信息 */
|
|
53
|
-
campaign: QuestCampaignInfo;
|
|
54
|
-
/** 是否显示 Banner */
|
|
55
|
-
showBanner?: boolean;
|
|
56
|
-
/** 是否显示标题 */
|
|
57
|
-
showTitle?: boolean;
|
|
58
|
-
/** 是否显示描述 */
|
|
59
|
-
showDescription?: boolean;
|
|
60
|
-
/** 查看更多描述回调 */
|
|
61
|
-
onViewMore?: () => void;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Quest 奖励展示信息
|
|
66
|
-
*/
|
|
67
|
-
export declare interface QuestRewardDisplay {
|
|
68
|
-
/** 资格者奖励 */
|
|
69
|
-
qualifierRewards: QuestRewardInfo[];
|
|
70
|
-
/** 获奖者奖励(简化信息) */
|
|
71
|
-
winnerRewardsSimple: QuestRewardInfoSimple[];
|
|
72
|
-
/** 是否有资格者奖励 */
|
|
73
|
-
hasQualifierRewards: boolean;
|
|
74
|
-
/** 是否有获奖者奖励 */
|
|
75
|
-
hasWinnerRewards: boolean;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Quest Sidebar 组件 Props
|
|
80
|
-
*/
|
|
81
|
-
export declare interface QuestSidebarProps {
|
|
82
|
-
/** Campaign 信息 */
|
|
83
|
-
campaign: QuestCampaignInfo;
|
|
84
|
-
/** Campaign 状态信息 */
|
|
85
|
-
statusInfo?: CampaignStatusInfo;
|
|
86
|
-
/** 用户状态信息 */
|
|
87
|
-
userStatus?: UserCampaignStatusInfo;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Quest 状态信息(用于展示)
|
|
92
|
-
*/
|
|
93
|
-
export declare interface QuestStatusDisplay {
|
|
94
|
-
/** 状态类型 */
|
|
95
|
-
status: QuestStatusType;
|
|
96
|
-
/** 状态标签(Upcoming / Ongoing / Ended) */
|
|
97
|
-
label: string;
|
|
98
|
-
/** 原始状态枚举 */
|
|
99
|
-
originalStatus: CampaignStatus;
|
|
100
|
-
/** 是否已开始 */
|
|
101
|
-
isStarted: boolean;
|
|
102
|
-
/** 是否已结束 */
|
|
103
|
-
isEnded: boolean;
|
|
104
|
-
/** 是否进行中 */
|
|
105
|
-
isActive: boolean;
|
|
106
|
-
/** 剩余时间(毫秒,仅进行中状态有效) */
|
|
107
|
-
remainingTime?: number;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Quest 状态(简化)
|
|
112
|
-
*/
|
|
113
|
-
export declare type QuestStatusType = "upcoming" | "ongoing" | "ended";
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Quest Task List 组件 Props
|
|
117
|
-
*/
|
|
118
|
-
export declare interface QuestTaskListProps {
|
|
119
|
-
/** 任务列表 */
|
|
120
|
-
tasks: TaskValueItem[];
|
|
121
|
-
/** 用户任务状态 */
|
|
122
|
-
userTaskStatuses?: UserTaskStatus[];
|
|
123
|
-
/** Campaign ID */
|
|
124
|
-
campaignId: number;
|
|
125
|
-
/** 任务点击回调 */
|
|
126
|
-
onTaskClick?: (task: TaskValueItem) => void;
|
|
127
|
-
/** 任务完成回调 */
|
|
128
|
-
onTaskCompleted?: (taskId: number) => void;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Quest 任务进度信息
|
|
133
|
-
*/
|
|
134
|
-
export declare interface QuestTaskProgress {
|
|
135
|
-
/** 必做任务总数 */
|
|
136
|
-
requiredTotal: number;
|
|
137
|
-
/** 必做任务已完成数 */
|
|
138
|
-
requiredCompleted: number;
|
|
139
|
-
/** 选做任务总数 */
|
|
140
|
-
optionalTotal: number;
|
|
141
|
-
/** 选做任务已完成数 */
|
|
142
|
-
optionalCompleted: number;
|
|
143
|
-
/** 最少需要完成的选做任务数 */
|
|
144
|
-
minOptionalRequired: number;
|
|
145
|
-
/** 是否满足提交条件 */
|
|
146
|
-
canSubmit: boolean;
|
|
147
|
-
/** 当前积分 */
|
|
148
|
-
currentPoints: QuestPointsInfo | null;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Quest 用户状态展示信息
|
|
153
|
-
*/
|
|
154
|
-
export declare interface QuestUserStatusDisplay {
|
|
155
|
-
/** 是否为访客 */
|
|
156
|
-
isVisitor: boolean;
|
|
157
|
-
/** 是否为参与者 */
|
|
158
|
-
isParticipant: boolean;
|
|
159
|
-
/** 是否已提交 */
|
|
160
|
-
isSubmitter: boolean;
|
|
161
|
-
/** 是否为资格者 */
|
|
162
|
-
isQualifier: boolean;
|
|
163
|
-
/** 是否为获奖者 */
|
|
164
|
-
isWinner: boolean;
|
|
165
|
-
/** 提交是否失败 */
|
|
166
|
-
submitFailed: boolean;
|
|
167
|
-
/** 用户排名 */
|
|
168
|
-
ranking: number;
|
|
169
|
-
/** 任务进度 */
|
|
170
|
-
taskProgress: QuestTaskProgress;
|
|
171
|
-
}
|
|
172
8
|
|
|
173
9
|
/**
|
|
174
10
|
* Quest Widget 主组件
|
|
@@ -210,6 +46,14 @@ export declare interface QuestWidgetProps {
|
|
|
210
46
|
* 云端配置包含 campaignId、显示选项、自定义分享文案等
|
|
211
47
|
*/
|
|
212
48
|
widgetId?: number;
|
|
49
|
+
/**
|
|
50
|
+
* 手动主题模式(传入后拥有最高优先级)
|
|
51
|
+
* 建议在云端配置为 dual + toggle 时使用,避免与固定模式配置语义冲突。
|
|
52
|
+
* - light: 强制浅色主题
|
|
53
|
+
* - dark: 强制深色主题
|
|
54
|
+
* - auto: 跟随系统主题
|
|
55
|
+
*/
|
|
56
|
+
themeMode?: "light" | "dark" | "auto";
|
|
213
57
|
/**
|
|
214
58
|
* Campaign ID
|
|
215
59
|
* - 如果传入 widgetId,campaignId 可从云端配置获取
|
|
@@ -232,6 +76,8 @@ export declare interface QuestWidgetProps {
|
|
|
232
76
|
showTitle?: boolean;
|
|
233
77
|
/** 是否显示描述 */
|
|
234
78
|
showDescription?: boolean;
|
|
79
|
+
/** 是否显示参与人数 */
|
|
80
|
+
showParticipants?: boolean;
|
|
235
81
|
/** 加载完成回调 */
|
|
236
82
|
onLoaded?: (campaign: QuestCampaignInfo) => void;
|
|
237
83
|
/** 任务完成回调 */
|
|
@@ -242,8 +88,6 @@ export declare interface QuestWidgetProps {
|
|
|
242
88
|
onError?: (error: Error) => void;
|
|
243
89
|
/** 连接钱包回调(未登录时触发) */
|
|
244
90
|
onConnectWallet?: () => void;
|
|
245
|
-
/** 领取 NFT 回调 (NFT/MintedNft/Cap) */
|
|
246
|
-
onClaimNft?: (reward: RewardValueInfo, layer: CampaignWinnerReward) => Promise<void>;
|
|
247
91
|
/** 领取 Discord 角色回调 */
|
|
248
92
|
onClaimDiscordRole?: (reward: RewardValueInfo, layer: CampaignWinnerReward) => Promise<void>;
|
|
249
93
|
/**
|
|
@@ -256,134 +100,18 @@ export declare interface QuestWidgetProps {
|
|
|
256
100
|
* 需要绑定 SNS 时的回调
|
|
257
101
|
*/
|
|
258
102
|
onBindSnsRequired?: (snsTypes: SnsType[]) => void;
|
|
259
|
-
/**
|
|
103
|
+
/** 是否显示分享按钮(默认 true) */
|
|
104
|
+
showShare?: boolean;
|
|
105
|
+
/** 分享链接(未配置时回退到当前页面 URL) */
|
|
260
106
|
shareUrl?: string;
|
|
261
107
|
/** Twitter 分享文案(可选,有默认文案) */
|
|
262
108
|
shareText?: string;
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
* @returns Quest 详情、加载状态、错误信息、重新加载方法
|
|
270
|
-
*/
|
|
271
|
-
export declare function useQuestDetail(options: UseQuestDetailOptions): UseQuestDetailReturn;
|
|
272
|
-
|
|
273
|
-
/**
|
|
274
|
-
* useQuestDetail Hook 参数
|
|
275
|
-
*/
|
|
276
|
-
export declare interface UseQuestDetailOptions {
|
|
277
|
-
/** Quest API 实例(从根组件传入) */
|
|
278
|
-
api: QuestApi | null;
|
|
279
|
-
/** Campaign ID */
|
|
280
|
-
campaignId: number;
|
|
281
|
-
/** 渠道标识(可选) */
|
|
282
|
-
channel?: string;
|
|
283
|
-
/** KOL 标识(可选) */
|
|
284
|
-
kolHandle?: string;
|
|
285
|
-
/** 邀请码(可选) */
|
|
286
|
-
inviteCode?: string;
|
|
287
|
-
/** Boost ID(可选) */
|
|
288
|
-
boostId?: number;
|
|
289
|
-
/** 是否启用(默认 true) */
|
|
290
|
-
enabled?: boolean;
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
/**
|
|
294
|
-
* useQuestDetail Hook 返回值
|
|
295
|
-
*/
|
|
296
|
-
export declare interface UseQuestDetailReturn {
|
|
297
|
-
/** Campaign 详情数据 */
|
|
298
|
-
data: QuestCampaignInfo | null;
|
|
299
|
-
/** 是否加载中 */
|
|
300
|
-
isLoading: boolean;
|
|
301
|
-
/** 错误信息 */
|
|
302
|
-
error: string | null;
|
|
303
|
-
/** 重新加载 */
|
|
304
|
-
refetch: () => void;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
/**
|
|
308
|
-
* 获取 Quest 状态信息 Hook
|
|
309
|
-
*
|
|
310
|
-
* @param options Hook 配置(包含从根组件传入的 api 实例)
|
|
311
|
-
* @returns Quest 状态、加载状态、错误信息、重新加载方法
|
|
312
|
-
*/
|
|
313
|
-
export declare function useQuestStatus(options: UseQuestStatusOptions): UseQuestStatusReturn;
|
|
314
|
-
|
|
315
|
-
/**
|
|
316
|
-
* useQuestStatus Hook 参数
|
|
317
|
-
*/
|
|
318
|
-
export declare interface UseQuestStatusOptions {
|
|
319
|
-
/** Quest API 实例(从根组件传入) */
|
|
320
|
-
api: QuestApi | null;
|
|
321
|
-
/** Campaign ID */
|
|
322
|
-
campaignId: number;
|
|
323
|
-
/** 渠道标识 */
|
|
324
|
-
channel?: string;
|
|
325
|
-
/** KOL 句柄 */
|
|
326
|
-
kolHandle?: string;
|
|
327
|
-
/** 是否启用(默认 true) */
|
|
328
|
-
enabled?: boolean;
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* useQuestStatus Hook 返回值
|
|
333
|
-
*/
|
|
334
|
-
export declare interface UseQuestStatusReturn {
|
|
335
|
-
/** Campaign 状态数据 */
|
|
336
|
-
data: CampaignStatusInfo | null;
|
|
337
|
-
/** 是否加载中 */
|
|
338
|
-
isLoading: boolean;
|
|
339
|
-
/** 错误信息 */
|
|
340
|
-
error: string | null;
|
|
341
|
-
/** 重新加载 */
|
|
342
|
-
refetch: () => void;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* 获取用户 Quest 状态 Hook
|
|
347
|
-
*
|
|
348
|
-
* @param options Hook 配置(包含从根组件传入的 api 实例)
|
|
349
|
-
* @returns 用户状态、加载状态、错误信息、重新加载方法
|
|
350
|
-
*/
|
|
351
|
-
export declare function useQuestUserStatus(options: UseQuestUserStatusOptions): UseQuestUserStatusReturn;
|
|
352
|
-
|
|
353
|
-
/**
|
|
354
|
-
* useQuestUserStatus Hook 参数
|
|
355
|
-
*/
|
|
356
|
-
export declare interface UseQuestUserStatusOptions {
|
|
357
|
-
/** Quest API 实例(从根组件传入) */
|
|
358
|
-
api: QuestApi | null;
|
|
359
|
-
/** Campaign ID */
|
|
360
|
-
campaignId: number;
|
|
361
|
-
/** 渠道标识(可选) */
|
|
362
|
-
channel?: string;
|
|
363
|
-
/** KOL 标识(可选) */
|
|
364
|
-
kolHandle?: string;
|
|
365
|
-
/** 是否启用(默认 true) */
|
|
366
|
-
enabled?: boolean;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* useQuestUserStatus Hook 返回值
|
|
371
|
-
*/
|
|
372
|
-
export declare interface UseQuestUserStatusReturn {
|
|
373
|
-
/** 用户状态数据 */
|
|
374
|
-
data: UserCampaignStatusInfo | null;
|
|
375
|
-
/** 是否加载中 */
|
|
376
|
-
isLoading: boolean;
|
|
377
|
-
/** 错误信息 */
|
|
378
|
-
error: string | null;
|
|
379
|
-
/** 重新加载 */
|
|
380
|
-
refetch: () => void;
|
|
381
|
-
/**
|
|
382
|
-
* 立即更新指定任务的本地状态(乐观更新)
|
|
383
|
-
* @param taskId 任务 ID
|
|
384
|
-
* @param isAsync 是否为异步任务(异步任务只更新 is_submitter)
|
|
385
|
-
*/
|
|
386
|
-
updateTaskStatus: (taskId: number, isAsync?: boolean) => void;
|
|
109
|
+
/** 是否在 Twitter 分享文案末尾自动追加带 utm_source=x 的链接(默认 true) */
|
|
110
|
+
shareAutoAppendLink?: boolean;
|
|
111
|
+
/** 奖励详情展示模式:popup 弹窗 / redirect 跳转(默认 popup) */
|
|
112
|
+
rewardDisplayMode?: RewardDisplayMode;
|
|
113
|
+
/** 跳转 URL(当 rewardDisplayMode 为 'redirect' 时使用) */
|
|
114
|
+
rewardRedirectUrl?: string;
|
|
387
115
|
}
|
|
388
116
|
|
|
389
117
|
export { }
|
package/dist/quest.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import { Q, Q as Q2
|
|
1
|
+
import { Q, Q as Q2 } from "./chunks/Quest-Dqx4OCat.js";
|
|
2
2
|
export {
|
|
3
3
|
Q as Quest,
|
|
4
|
-
Q2 as QuestWidget
|
|
5
|
-
u as useQuestDetail,
|
|
6
|
-
b as useQuestStatus,
|
|
7
|
-
a as useQuestUserStatus
|
|
4
|
+
Q2 as QuestWidget
|
|
8
5
|
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { default as default_2 } from 'react';
|
|
2
|
+
import { UserCenterConfig } from '@taskon/core';
|
|
3
|
+
import { UserCenterRewardCardType } from '@taskon/core';
|
|
4
|
+
import { UserCenterTabType } from '@taskon/core';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* UserCenterWidget 外层组件
|
|
8
|
+
*
|
|
9
|
+
* Handles cloud config loading + ThemeProvider wrapping via WidgetShell.
|
|
10
|
+
* Merges cloud function config with local props, then renders inner component.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Pure props mode (existing behavior)
|
|
15
|
+
* <UserCenterWidget config={tabConfig} />
|
|
16
|
+
*
|
|
17
|
+
* // Pure widgetId mode (config from cloud)
|
|
18
|
+
* <UserCenterWidget widgetId={456} />
|
|
19
|
+
*
|
|
20
|
+
* // Mixed mode (props override cloud)
|
|
21
|
+
* <UserCenterWidget widgetId={456} defaultTab={UserCenterTabType.Identity} />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare function UserCenterWidget(props: UserCenterWidgetProps): default_2.ReactElement;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* UserCenterWidget 属性
|
|
28
|
+
*/
|
|
29
|
+
export declare interface UserCenterWidgetProps {
|
|
30
|
+
/**
|
|
31
|
+
* Widget ID - load configuration (theme + function) from cloud
|
|
32
|
+
* Cloud config provides tab options, display settings, etc.
|
|
33
|
+
*/
|
|
34
|
+
widgetId?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Manual theme mode override (highest priority when provided).
|
|
37
|
+
* Recommended with dual + toggle cloud strategy.
|
|
38
|
+
*/
|
|
39
|
+
themeMode?: "light" | "dark" | "auto";
|
|
40
|
+
/** Widget 配置 */
|
|
41
|
+
config?: UserCenterConfig;
|
|
42
|
+
/** 默认选中的 Tab */
|
|
43
|
+
defaultTab?: UserCenterTabType;
|
|
44
|
+
/** 默认选中的奖励卡片(MyRewards 内部) */
|
|
45
|
+
defaultRewardCard?: UserCenterRewardCardType;
|
|
46
|
+
/** 默认 Points ID(仅当 defaultRewardCard=Points 时使用) */
|
|
47
|
+
defaultPointId?: number;
|
|
48
|
+
/** Tab 切换回调 */
|
|
49
|
+
onTabChange?: (tab: UserCenterTabType) => void;
|
|
50
|
+
/** 自定义类名 */
|
|
51
|
+
className?: string;
|
|
52
|
+
/** 自定义样式 */
|
|
53
|
+
style?: default_2.CSSProperties;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taskon/widget-react",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "TaskOn React Widget Library",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,6 +26,14 @@
|
|
|
26
26
|
"./quest": {
|
|
27
27
|
"types": "./dist/quest.d.ts",
|
|
28
28
|
"import": "./dist/quest.js"
|
|
29
|
+
},
|
|
30
|
+
"./user-center": {
|
|
31
|
+
"types": "./dist/user-center.d.ts",
|
|
32
|
+
"import": "./dist/user-center.js"
|
|
33
|
+
},
|
|
34
|
+
"./page-builder": {
|
|
35
|
+
"types": "./dist/page-builder.d.ts",
|
|
36
|
+
"import": "./dist/page-builder.js"
|
|
29
37
|
}
|
|
30
38
|
},
|
|
31
39
|
"files": [
|
|
@@ -38,6 +46,9 @@
|
|
|
38
46
|
"scripts": {
|
|
39
47
|
"build": "vite build",
|
|
40
48
|
"dev": "vite build --watch",
|
|
49
|
+
"test": "vitest run",
|
|
50
|
+
"test:watch": "vitest",
|
|
51
|
+
"test:coverage": "vitest run --coverage",
|
|
41
52
|
"lint": "eslint . --max-warnings 0",
|
|
42
53
|
"check-types": "tsc --noEmit",
|
|
43
54
|
"prepublishOnly": "node ../../scripts/prepublish.js && pnpm build",
|
|
@@ -53,20 +64,28 @@
|
|
|
53
64
|
"@taskon/core": "workspace:*",
|
|
54
65
|
"@taskon/eslint-config": "workspace:*",
|
|
55
66
|
"@taskon/typescript-config": "workspace:*",
|
|
67
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
68
|
+
"@testing-library/react": "^16.3.2",
|
|
56
69
|
"@types/dompurify": "^3.2.0",
|
|
57
70
|
"@types/node": "^22.15.3",
|
|
58
71
|
"@types/qrcode": "^1.5.5",
|
|
59
72
|
"@types/react": "19.2.2",
|
|
60
73
|
"@types/react-dom": "19.2.2",
|
|
61
74
|
"@vitejs/plugin-react": "^4.5.2",
|
|
75
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
62
76
|
"eslint": "^9.39.1",
|
|
63
77
|
"ethers": "^6.0.0",
|
|
78
|
+
"jsdom": "^22.1.0",
|
|
79
|
+
"postcss-custom-media": "^12.0.1",
|
|
80
|
+
"postcss-import": "^16.1.1",
|
|
81
|
+
"postcss-mixins": "^12.1.2",
|
|
64
82
|
"react": "^19.2.0",
|
|
65
83
|
"react-dom": "^19.2.0",
|
|
66
|
-
"typescript": "5.
|
|
84
|
+
"typescript": "5.8.2",
|
|
67
85
|
"vite": "^6.3.5",
|
|
68
86
|
"vite-plugin-dts": "^4.5.4",
|
|
69
|
-
"vite-plugin-lib-inject-css": "^2.2.2"
|
|
87
|
+
"vite-plugin-lib-inject-css": "^2.2.2",
|
|
88
|
+
"vitest": "^4.0.18"
|
|
70
89
|
},
|
|
71
90
|
"peerDependencies": {
|
|
72
91
|
"@taskon/core": "^0.0.1",
|