@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
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
const mandatory_tasks = "필수 작업";
|
|
2
|
+
const optional_tasks = "선택 작업";
|
|
3
|
+
const min_required = "(최소 {count}개 필요)";
|
|
4
|
+
const min_points_required = "(최소 {count}포인트 필요)";
|
|
5
|
+
const no_tasks_available = "사용 가능한 작업이 없습니다";
|
|
6
|
+
const task_point_desc = "작업을 완료해 {pointsName}를 획득하세요. {pointsName}는 누적되어 랭킹 또는 추첨에 반영됩니다. {pointsName}가 많을수록 당첨 확률이 높아집니다. 최종 {pointsName}는 퀘스트 종료 시 랭킹 또는 추첨 결과를 결정합니다.";
|
|
7
|
+
const points_per_time = "/회";
|
|
8
|
+
const you_have_earned = "획득한";
|
|
9
|
+
const recurrence_daily = "일간";
|
|
10
|
+
const recurrence_weekly = "주간";
|
|
11
|
+
const recurrence_monthly = "월간";
|
|
12
|
+
const recurrence_unlimited = "무제한";
|
|
13
|
+
const all_steps_completed = "모든 단계를 완료했습니다";
|
|
14
|
+
const steps_completed = "{completed}/{total}단계 완료";
|
|
15
|
+
const please_view_link_before_verifying = "검증 전에 링크를 먼저 확인해 주세요.";
|
|
16
|
+
const link_and_verify = "연결 후 검증";
|
|
17
|
+
const verify = "검증";
|
|
18
|
+
const verifying = "검증 중...";
|
|
19
|
+
const verify_failed_title = "검증 실패";
|
|
20
|
+
const verify_failed_message = "이 작업 검증을 통과하지 못했습니다.";
|
|
21
|
+
const not_eligible_title = "자격 없음";
|
|
22
|
+
const campaign_ineligibility_message = "이 캠페인의 자격 요건을 충족하지 않습니다.";
|
|
23
|
+
const unknown_error = "알 수 없는 오류";
|
|
24
|
+
const quest_api_not_initialized = "Quest API가 초기화되지 않았습니다";
|
|
25
|
+
const invite_not_reach_message = "현재 {invited}명을 초대했으며, 작업 완료까지 {remaining}명이 더 필요합니다.";
|
|
26
|
+
const show_more = "더 보기";
|
|
27
|
+
const show_less = "간단히 보기";
|
|
28
|
+
const between = "기간";
|
|
29
|
+
const dynamic_times_suffix = "/ {minTimes}회";
|
|
30
|
+
const dynamic_max_suffix = "/ 최대 {max}";
|
|
31
|
+
const unlimited = "무제한";
|
|
32
|
+
const max_points_title = "최대 {pointName}";
|
|
33
|
+
const your_points_title = "내 {pointName}";
|
|
34
|
+
const dynamic_tip_max_points = "이 작업에서 획득 가능한 최대 포인트입니다.";
|
|
35
|
+
const dynamic_tip_your_points = "현재까지 획득한 포인트입니다. 최종 보상은 퀘스트 종료 시 계산됩니다.";
|
|
36
|
+
const this_field_required = "이 항목은 필수입니다";
|
|
37
|
+
const submit_param_title = "{paramName} 제출";
|
|
38
|
+
const submit_param_warning = "주의: 정확한 {paramName}를 입력해 주세요. 제출 후에는 변경할 수 없습니다.";
|
|
39
|
+
const submit_param_desc = "검증 완료를 위해 {paramName}를 입력하세요. 시스템이 이 정보를 사용해 작업 완료를 확인합니다.";
|
|
40
|
+
const submit_param_enter_label = "{paramName} 입력";
|
|
41
|
+
const submit_param_enter_placeholder = "{paramName}를 입력하세요";
|
|
42
|
+
const cancel = "취소";
|
|
43
|
+
const confirm = "확인";
|
|
44
|
+
const completed = "완료됨";
|
|
45
|
+
const interact_with_contract = "컨트랙트 상호작용";
|
|
46
|
+
const points = "포인트";
|
|
47
|
+
const proof_of_work = "작업 증명";
|
|
48
|
+
const please_enter_content = "내용을 입력해 주세요";
|
|
49
|
+
const please_enter_valid_url = "유효한 URL을 입력해 주세요";
|
|
50
|
+
const submit_successfully = "제출이 완료되었습니다";
|
|
51
|
+
const submission_failed = "제출에 실패했습니다";
|
|
52
|
+
const please_upload_image_file = "이미지 파일을 업로드해 주세요";
|
|
53
|
+
const image_size_limit = "이미지 크기는 10MB 미만이어야 합니다";
|
|
54
|
+
const upload_api_not_initialized = "업로드 API가 초기화되지 않았습니다";
|
|
55
|
+
const upload_failed = "업로드 실패";
|
|
56
|
+
const resubmit = "다시 제출";
|
|
57
|
+
const submit = "제출";
|
|
58
|
+
const submitting = "제출 중...";
|
|
59
|
+
const pow_title_tip = "이 작업은 제출 후 검증이 필요합니다.";
|
|
60
|
+
const pow_points_tip = "작업이 완료로 검증되면 퀘스트 종료 후 포인트 보상이 지급됩니다.";
|
|
61
|
+
const enter_url = "URL 입력";
|
|
62
|
+
const enter_here = "여기에 입력";
|
|
63
|
+
const uploaded_image_alt = "업로드됨";
|
|
64
|
+
const image_upload_hint = "JPG, PNG, SVG, WEBP, GIF.\n최대 10MB";
|
|
65
|
+
const average_review_default = "{ownerName}에서 작업 검증을 진행합니다.";
|
|
66
|
+
const average_review_minutes = "{ownerName}에서 작업 검증을 진행하며, 제출 후 평균 {minutes}분이 소요됩니다.";
|
|
67
|
+
const average_review_hours = "{ownerName}에서 작업 검증을 진행하며, 제출 후 평균 {hours}시간이 소요됩니다.";
|
|
68
|
+
const rules = "규칙";
|
|
69
|
+
const instructions = "안내";
|
|
70
|
+
const swap_rule_every = "매";
|
|
71
|
+
const swap_rule_will_give = "마다 지급";
|
|
72
|
+
const points_name_fallback = "포인트";
|
|
73
|
+
const fsl_id = "FSL ID";
|
|
74
|
+
const verify_failed_twitter_delay = "보통 X(Twitter) 지연으로 인해 발생합니다.\n30초 후 다시 시도하고, 연결된 X 계정{nameSuffix}을(를) 사용했는지 확인해 주세요.";
|
|
75
|
+
const verify_failed_discord_delay = "보통 Discord 지연으로 인해 발생합니다.\n30초 후 다시 시도하고, 연결된 Discord 계정{nameSuffix}을(를) 사용했는지 확인해 주세요.";
|
|
76
|
+
const verify_failed_telegram_delay = "보통 Telegram 지연으로 인해 발생합니다.\n30초 후 다시 시도하고, 연결된 Telegram 계정{nameSuffix}을(를) 사용했는지 확인해 주세요.";
|
|
77
|
+
const verify_failed_toast_prefix = "앗! 검증 실패!";
|
|
78
|
+
const between_time_range = "{start} - {end} 사이";
|
|
79
|
+
const swap_rule_sentence = "{volume}마다 {points} {pointName} 지급{maxText}";
|
|
80
|
+
const you_have_earned_with_points_name = "{totalPoints} {pointsName}를 획득했습니다";
|
|
81
|
+
const ko = {
|
|
82
|
+
mandatory_tasks,
|
|
83
|
+
optional_tasks,
|
|
84
|
+
min_required,
|
|
85
|
+
min_points_required,
|
|
86
|
+
no_tasks_available,
|
|
87
|
+
task_point_desc,
|
|
88
|
+
points_per_time,
|
|
89
|
+
you_have_earned,
|
|
90
|
+
recurrence_daily,
|
|
91
|
+
recurrence_weekly,
|
|
92
|
+
recurrence_monthly,
|
|
93
|
+
recurrence_unlimited,
|
|
94
|
+
all_steps_completed,
|
|
95
|
+
steps_completed,
|
|
96
|
+
please_view_link_before_verifying,
|
|
97
|
+
link_and_verify,
|
|
98
|
+
verify,
|
|
99
|
+
verifying,
|
|
100
|
+
verify_failed_title,
|
|
101
|
+
verify_failed_message,
|
|
102
|
+
not_eligible_title,
|
|
103
|
+
campaign_ineligibility_message,
|
|
104
|
+
unknown_error,
|
|
105
|
+
quest_api_not_initialized,
|
|
106
|
+
invite_not_reach_message,
|
|
107
|
+
show_more,
|
|
108
|
+
show_less,
|
|
109
|
+
between,
|
|
110
|
+
dynamic_times_suffix,
|
|
111
|
+
dynamic_max_suffix,
|
|
112
|
+
unlimited,
|
|
113
|
+
max_points_title,
|
|
114
|
+
your_points_title,
|
|
115
|
+
dynamic_tip_max_points,
|
|
116
|
+
dynamic_tip_your_points,
|
|
117
|
+
this_field_required,
|
|
118
|
+
submit_param_title,
|
|
119
|
+
submit_param_warning,
|
|
120
|
+
submit_param_desc,
|
|
121
|
+
submit_param_enter_label,
|
|
122
|
+
submit_param_enter_placeholder,
|
|
123
|
+
cancel,
|
|
124
|
+
confirm,
|
|
125
|
+
completed,
|
|
126
|
+
interact_with_contract,
|
|
127
|
+
points,
|
|
128
|
+
proof_of_work,
|
|
129
|
+
please_enter_content,
|
|
130
|
+
please_enter_valid_url,
|
|
131
|
+
submit_successfully,
|
|
132
|
+
submission_failed,
|
|
133
|
+
please_upload_image_file,
|
|
134
|
+
image_size_limit,
|
|
135
|
+
upload_api_not_initialized,
|
|
136
|
+
upload_failed,
|
|
137
|
+
resubmit,
|
|
138
|
+
submit,
|
|
139
|
+
submitting,
|
|
140
|
+
pow_title_tip,
|
|
141
|
+
pow_points_tip,
|
|
142
|
+
enter_url,
|
|
143
|
+
enter_here,
|
|
144
|
+
uploaded_image_alt,
|
|
145
|
+
image_upload_hint,
|
|
146
|
+
average_review_default,
|
|
147
|
+
average_review_minutes,
|
|
148
|
+
average_review_hours,
|
|
149
|
+
rules,
|
|
150
|
+
instructions,
|
|
151
|
+
swap_rule_every,
|
|
152
|
+
swap_rule_will_give,
|
|
153
|
+
points_name_fallback,
|
|
154
|
+
fsl_id,
|
|
155
|
+
verify_failed_twitter_delay,
|
|
156
|
+
verify_failed_discord_delay,
|
|
157
|
+
verify_failed_telegram_delay,
|
|
158
|
+
verify_failed_toast_prefix,
|
|
159
|
+
between_time_range,
|
|
160
|
+
swap_rule_sentence,
|
|
161
|
+
you_have_earned_with_points_name
|
|
162
|
+
};
|
|
163
|
+
export {
|
|
164
|
+
all_steps_completed,
|
|
165
|
+
average_review_default,
|
|
166
|
+
average_review_hours,
|
|
167
|
+
average_review_minutes,
|
|
168
|
+
between,
|
|
169
|
+
between_time_range,
|
|
170
|
+
campaign_ineligibility_message,
|
|
171
|
+
cancel,
|
|
172
|
+
completed,
|
|
173
|
+
confirm,
|
|
174
|
+
ko as default,
|
|
175
|
+
dynamic_max_suffix,
|
|
176
|
+
dynamic_times_suffix,
|
|
177
|
+
dynamic_tip_max_points,
|
|
178
|
+
dynamic_tip_your_points,
|
|
179
|
+
enter_here,
|
|
180
|
+
enter_url,
|
|
181
|
+
fsl_id,
|
|
182
|
+
image_size_limit,
|
|
183
|
+
image_upload_hint,
|
|
184
|
+
instructions,
|
|
185
|
+
interact_with_contract,
|
|
186
|
+
invite_not_reach_message,
|
|
187
|
+
link_and_verify,
|
|
188
|
+
mandatory_tasks,
|
|
189
|
+
max_points_title,
|
|
190
|
+
min_points_required,
|
|
191
|
+
min_required,
|
|
192
|
+
no_tasks_available,
|
|
193
|
+
not_eligible_title,
|
|
194
|
+
optional_tasks,
|
|
195
|
+
please_enter_content,
|
|
196
|
+
please_enter_valid_url,
|
|
197
|
+
please_upload_image_file,
|
|
198
|
+
please_view_link_before_verifying,
|
|
199
|
+
points,
|
|
200
|
+
points_name_fallback,
|
|
201
|
+
points_per_time,
|
|
202
|
+
pow_points_tip,
|
|
203
|
+
pow_title_tip,
|
|
204
|
+
proof_of_work,
|
|
205
|
+
quest_api_not_initialized,
|
|
206
|
+
recurrence_daily,
|
|
207
|
+
recurrence_monthly,
|
|
208
|
+
recurrence_unlimited,
|
|
209
|
+
recurrence_weekly,
|
|
210
|
+
resubmit,
|
|
211
|
+
rules,
|
|
212
|
+
show_less,
|
|
213
|
+
show_more,
|
|
214
|
+
steps_completed,
|
|
215
|
+
submission_failed,
|
|
216
|
+
submit,
|
|
217
|
+
submit_param_desc,
|
|
218
|
+
submit_param_enter_label,
|
|
219
|
+
submit_param_enter_placeholder,
|
|
220
|
+
submit_param_title,
|
|
221
|
+
submit_param_warning,
|
|
222
|
+
submit_successfully,
|
|
223
|
+
submitting,
|
|
224
|
+
swap_rule_every,
|
|
225
|
+
swap_rule_sentence,
|
|
226
|
+
swap_rule_will_give,
|
|
227
|
+
task_point_desc,
|
|
228
|
+
this_field_required,
|
|
229
|
+
unknown_error,
|
|
230
|
+
unlimited,
|
|
231
|
+
upload_api_not_initialized,
|
|
232
|
+
upload_failed,
|
|
233
|
+
uploaded_image_alt,
|
|
234
|
+
verify,
|
|
235
|
+
verify_failed_discord_delay,
|
|
236
|
+
verify_failed_message,
|
|
237
|
+
verify_failed_telegram_delay,
|
|
238
|
+
verify_failed_title,
|
|
239
|
+
verify_failed_toast_prefix,
|
|
240
|
+
verify_failed_twitter_delay,
|
|
241
|
+
verifying,
|
|
242
|
+
you_have_earned,
|
|
243
|
+
you_have_earned_with_points_name,
|
|
244
|
+
your_points_title
|
|
245
|
+
};
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
const mandatory_tasks = "Обязательные задания";
|
|
2
|
+
const optional_tasks = "Дополнительные задания";
|
|
3
|
+
const min_required = "(Мин. требуется: {count})";
|
|
4
|
+
const min_points_required = "(Мин. требуется {count} очков)";
|
|
5
|
+
const no_tasks_available = "Нет доступных заданий";
|
|
6
|
+
const task_point_desc = "Выполняйте задания и зарабатывайте {pointsName}. {pointsName} накапливаются и учитываются в рейтинге или розыгрыше. Чем больше у вас {pointsName}, тем выше шанс на победу. Итоговое количество {pointsName} определит ваш рейтинг или результат розыгрыша в конце квеста.";
|
|
7
|
+
const points_per_time = "/раз";
|
|
8
|
+
const you_have_earned = "Вы заработали";
|
|
9
|
+
const recurrence_daily = "Ежедневно";
|
|
10
|
+
const recurrence_weekly = "Еженедельно";
|
|
11
|
+
const recurrence_monthly = "Ежемесячно";
|
|
12
|
+
const recurrence_unlimited = "Без ограничений";
|
|
13
|
+
const all_steps_completed = "Все шаги выполнены";
|
|
14
|
+
const steps_completed = "Выполнено шагов: {completed}/{total}";
|
|
15
|
+
const please_view_link_before_verifying = "Перед проверкой сначала откройте ссылку.";
|
|
16
|
+
const link_and_verify = "Привязать и проверить";
|
|
17
|
+
const verify = "Проверить";
|
|
18
|
+
const verifying = "Проверка...";
|
|
19
|
+
const verify_failed_title = "Проверка не пройдена";
|
|
20
|
+
const verify_failed_message = "Упс! Вы не прошли это задание.";
|
|
21
|
+
const not_eligible_title = "Недостаточно прав";
|
|
22
|
+
const campaign_ineligibility_message = "Вы не соответствуете требованиям кампании.";
|
|
23
|
+
const unknown_error = "Неизвестная ошибка";
|
|
24
|
+
const quest_api_not_initialized = "Quest API не инициализирован";
|
|
25
|
+
const invite_not_reach_message = "Вы пригласили {invited} пользователей, но для выполнения задания нужно еще {remaining}.";
|
|
26
|
+
const show_more = "Показать больше";
|
|
27
|
+
const show_less = "Скрыть";
|
|
28
|
+
const between = "Период";
|
|
29
|
+
const dynamic_times_suffix = "/ {minTimes} раз";
|
|
30
|
+
const dynamic_max_suffix = "/ Макс. {max}";
|
|
31
|
+
const unlimited = "Без ограничений";
|
|
32
|
+
const max_points_title = "Макс. {pointName}";
|
|
33
|
+
const your_points_title = "Ваши {pointName}";
|
|
34
|
+
const dynamic_tip_max_points = "Максимум очков, доступных для этого задания.";
|
|
35
|
+
const dynamic_tip_your_points = "Очки, которые вы уже заработали. Итоговая награда будет рассчитана после завершения квеста.";
|
|
36
|
+
const this_field_required = "Это поле обязательно";
|
|
37
|
+
const submit_param_title = "Отправить {paramName}";
|
|
38
|
+
const submit_param_warning = "Внимание: убедитесь, что вы ввели корректный {paramName}. После отправки изменить его нельзя.";
|
|
39
|
+
const submit_param_desc = "Введите ваш {paramName}, чтобы завершить проверку. Система использует эти данные для подтверждения выполнения задания.";
|
|
40
|
+
const submit_param_enter_label = "Введите {paramName}";
|
|
41
|
+
const submit_param_enter_placeholder = "Введите ваш {paramName}";
|
|
42
|
+
const cancel = "Отмена";
|
|
43
|
+
const confirm = "Подтвердить";
|
|
44
|
+
const completed = "Завершено";
|
|
45
|
+
const interact_with_contract = "Взаимодействие с контрактом";
|
|
46
|
+
const points = "Очки";
|
|
47
|
+
const proof_of_work = "Proof of Work";
|
|
48
|
+
const please_enter_content = "Пожалуйста, введите содержимое";
|
|
49
|
+
const please_enter_valid_url = "Пожалуйста, введите действительный URL";
|
|
50
|
+
const submit_successfully = "Успешно отправлено";
|
|
51
|
+
const submission_failed = "Ошибка отправки";
|
|
52
|
+
const please_upload_image_file = "Пожалуйста, загрузите файл изображения";
|
|
53
|
+
const image_size_limit = "Размер изображения должен быть меньше 10 МБ";
|
|
54
|
+
const upload_api_not_initialized = "API загрузки не инициализирован";
|
|
55
|
+
const upload_failed = "Ошибка загрузки";
|
|
56
|
+
const resubmit = "Отправить снова";
|
|
57
|
+
const submit = "Отправить";
|
|
58
|
+
const submitting = "Отправка...";
|
|
59
|
+
const pow_title_tip = "Это задание требует проверки после отправки.";
|
|
60
|
+
const pow_points_tip = "Очки будут начислены после завершения квеста, если задание будет подтверждено как выполненное.";
|
|
61
|
+
const enter_url = "Введите URL";
|
|
62
|
+
const enter_here = "Введите здесь";
|
|
63
|
+
const uploaded_image_alt = "Загружено";
|
|
64
|
+
const image_upload_hint = "JPG, PNG, SVG, WEBP, GIF.\nМакс. 10 МБ";
|
|
65
|
+
const average_review_default = "{ownerName} проверяет выполнение задания.";
|
|
66
|
+
const average_review_minutes = "{ownerName} проверяет задание, в среднем это занимает {minutes} мин. после отправки.";
|
|
67
|
+
const average_review_hours = "{ownerName} проверяет задание, в среднем это занимает {hours} ч. после отправки.";
|
|
68
|
+
const rules = "Правила";
|
|
69
|
+
const instructions = "Инструкции";
|
|
70
|
+
const swap_rule_every = "Каждые";
|
|
71
|
+
const swap_rule_will_give = "дадут вам";
|
|
72
|
+
const points_name_fallback = "Очки";
|
|
73
|
+
const fsl_id = "FSL ID";
|
|
74
|
+
const verify_failed_twitter_delay = "Обычно это связано с задержкой X (Twitter).\nПопробуйте снова через 30 секунд и убедитесь, что используется привязанный аккаунт X{nameSuffix}.";
|
|
75
|
+
const verify_failed_discord_delay = "Обычно это связано с задержкой Discord.\nПопробуйте снова через 30 секунд и убедитесь, что используется привязанный аккаунт Discord{nameSuffix}.";
|
|
76
|
+
const verify_failed_telegram_delay = "Обычно это связано с задержкой Telegram.\nПопробуйте снова через 30 секунд и убедитесь, что используется привязанный аккаунт Telegram{nameSuffix}.";
|
|
77
|
+
const verify_failed_toast_prefix = "Упс! Проверка не пройдена!";
|
|
78
|
+
const between_time_range = "Между {start} - {end}";
|
|
79
|
+
const swap_rule_sentence = "За каждые {volume} вы получите {points} {pointName}{maxText}";
|
|
80
|
+
const you_have_earned_with_points_name = "Вы заработали {totalPoints} {pointsName}";
|
|
81
|
+
const ru = {
|
|
82
|
+
mandatory_tasks,
|
|
83
|
+
optional_tasks,
|
|
84
|
+
min_required,
|
|
85
|
+
min_points_required,
|
|
86
|
+
no_tasks_available,
|
|
87
|
+
task_point_desc,
|
|
88
|
+
points_per_time,
|
|
89
|
+
you_have_earned,
|
|
90
|
+
recurrence_daily,
|
|
91
|
+
recurrence_weekly,
|
|
92
|
+
recurrence_monthly,
|
|
93
|
+
recurrence_unlimited,
|
|
94
|
+
all_steps_completed,
|
|
95
|
+
steps_completed,
|
|
96
|
+
please_view_link_before_verifying,
|
|
97
|
+
link_and_verify,
|
|
98
|
+
verify,
|
|
99
|
+
verifying,
|
|
100
|
+
verify_failed_title,
|
|
101
|
+
verify_failed_message,
|
|
102
|
+
not_eligible_title,
|
|
103
|
+
campaign_ineligibility_message,
|
|
104
|
+
unknown_error,
|
|
105
|
+
quest_api_not_initialized,
|
|
106
|
+
invite_not_reach_message,
|
|
107
|
+
show_more,
|
|
108
|
+
show_less,
|
|
109
|
+
between,
|
|
110
|
+
dynamic_times_suffix,
|
|
111
|
+
dynamic_max_suffix,
|
|
112
|
+
unlimited,
|
|
113
|
+
max_points_title,
|
|
114
|
+
your_points_title,
|
|
115
|
+
dynamic_tip_max_points,
|
|
116
|
+
dynamic_tip_your_points,
|
|
117
|
+
this_field_required,
|
|
118
|
+
submit_param_title,
|
|
119
|
+
submit_param_warning,
|
|
120
|
+
submit_param_desc,
|
|
121
|
+
submit_param_enter_label,
|
|
122
|
+
submit_param_enter_placeholder,
|
|
123
|
+
cancel,
|
|
124
|
+
confirm,
|
|
125
|
+
completed,
|
|
126
|
+
interact_with_contract,
|
|
127
|
+
points,
|
|
128
|
+
proof_of_work,
|
|
129
|
+
please_enter_content,
|
|
130
|
+
please_enter_valid_url,
|
|
131
|
+
submit_successfully,
|
|
132
|
+
submission_failed,
|
|
133
|
+
please_upload_image_file,
|
|
134
|
+
image_size_limit,
|
|
135
|
+
upload_api_not_initialized,
|
|
136
|
+
upload_failed,
|
|
137
|
+
resubmit,
|
|
138
|
+
submit,
|
|
139
|
+
submitting,
|
|
140
|
+
pow_title_tip,
|
|
141
|
+
pow_points_tip,
|
|
142
|
+
enter_url,
|
|
143
|
+
enter_here,
|
|
144
|
+
uploaded_image_alt,
|
|
145
|
+
image_upload_hint,
|
|
146
|
+
average_review_default,
|
|
147
|
+
average_review_minutes,
|
|
148
|
+
average_review_hours,
|
|
149
|
+
rules,
|
|
150
|
+
instructions,
|
|
151
|
+
swap_rule_every,
|
|
152
|
+
swap_rule_will_give,
|
|
153
|
+
points_name_fallback,
|
|
154
|
+
fsl_id,
|
|
155
|
+
verify_failed_twitter_delay,
|
|
156
|
+
verify_failed_discord_delay,
|
|
157
|
+
verify_failed_telegram_delay,
|
|
158
|
+
verify_failed_toast_prefix,
|
|
159
|
+
between_time_range,
|
|
160
|
+
swap_rule_sentence,
|
|
161
|
+
you_have_earned_with_points_name
|
|
162
|
+
};
|
|
163
|
+
export {
|
|
164
|
+
all_steps_completed,
|
|
165
|
+
average_review_default,
|
|
166
|
+
average_review_hours,
|
|
167
|
+
average_review_minutes,
|
|
168
|
+
between,
|
|
169
|
+
between_time_range,
|
|
170
|
+
campaign_ineligibility_message,
|
|
171
|
+
cancel,
|
|
172
|
+
completed,
|
|
173
|
+
confirm,
|
|
174
|
+
ru as default,
|
|
175
|
+
dynamic_max_suffix,
|
|
176
|
+
dynamic_times_suffix,
|
|
177
|
+
dynamic_tip_max_points,
|
|
178
|
+
dynamic_tip_your_points,
|
|
179
|
+
enter_here,
|
|
180
|
+
enter_url,
|
|
181
|
+
fsl_id,
|
|
182
|
+
image_size_limit,
|
|
183
|
+
image_upload_hint,
|
|
184
|
+
instructions,
|
|
185
|
+
interact_with_contract,
|
|
186
|
+
invite_not_reach_message,
|
|
187
|
+
link_and_verify,
|
|
188
|
+
mandatory_tasks,
|
|
189
|
+
max_points_title,
|
|
190
|
+
min_points_required,
|
|
191
|
+
min_required,
|
|
192
|
+
no_tasks_available,
|
|
193
|
+
not_eligible_title,
|
|
194
|
+
optional_tasks,
|
|
195
|
+
please_enter_content,
|
|
196
|
+
please_enter_valid_url,
|
|
197
|
+
please_upload_image_file,
|
|
198
|
+
please_view_link_before_verifying,
|
|
199
|
+
points,
|
|
200
|
+
points_name_fallback,
|
|
201
|
+
points_per_time,
|
|
202
|
+
pow_points_tip,
|
|
203
|
+
pow_title_tip,
|
|
204
|
+
proof_of_work,
|
|
205
|
+
quest_api_not_initialized,
|
|
206
|
+
recurrence_daily,
|
|
207
|
+
recurrence_monthly,
|
|
208
|
+
recurrence_unlimited,
|
|
209
|
+
recurrence_weekly,
|
|
210
|
+
resubmit,
|
|
211
|
+
rules,
|
|
212
|
+
show_less,
|
|
213
|
+
show_more,
|
|
214
|
+
steps_completed,
|
|
215
|
+
submission_failed,
|
|
216
|
+
submit,
|
|
217
|
+
submit_param_desc,
|
|
218
|
+
submit_param_enter_label,
|
|
219
|
+
submit_param_enter_placeholder,
|
|
220
|
+
submit_param_title,
|
|
221
|
+
submit_param_warning,
|
|
222
|
+
submit_successfully,
|
|
223
|
+
submitting,
|
|
224
|
+
swap_rule_every,
|
|
225
|
+
swap_rule_sentence,
|
|
226
|
+
swap_rule_will_give,
|
|
227
|
+
task_point_desc,
|
|
228
|
+
this_field_required,
|
|
229
|
+
unknown_error,
|
|
230
|
+
unlimited,
|
|
231
|
+
upload_api_not_initialized,
|
|
232
|
+
upload_failed,
|
|
233
|
+
uploaded_image_alt,
|
|
234
|
+
verify,
|
|
235
|
+
verify_failed_discord_delay,
|
|
236
|
+
verify_failed_message,
|
|
237
|
+
verify_failed_telegram_delay,
|
|
238
|
+
verify_failed_title,
|
|
239
|
+
verify_failed_toast_prefix,
|
|
240
|
+
verify_failed_twitter_delay,
|
|
241
|
+
verifying,
|
|
242
|
+
you_have_earned,
|
|
243
|
+
you_have_earned_with_points_name,
|
|
244
|
+
your_points_title
|
|
245
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useState, useCallback, useEffect } from "react";
|
|
2
|
+
const VIEWPORT_BREAKPOINTS = {
|
|
3
|
+
mobileMax: 750
|
|
4
|
+
};
|
|
5
|
+
const MOBILE_MAX_WIDTH = VIEWPORT_BREAKPOINTS.mobileMax;
|
|
6
|
+
function isMobileViewport(width) {
|
|
7
|
+
return width <= MOBILE_MAX_WIDTH;
|
|
8
|
+
}
|
|
9
|
+
function useIsMobile() {
|
|
10
|
+
const [isMobile, setIsMobile] = useState(() => {
|
|
11
|
+
if (typeof window === "undefined") return false;
|
|
12
|
+
return isMobileViewport(window.innerWidth);
|
|
13
|
+
});
|
|
14
|
+
const handleResize = useCallback(() => {
|
|
15
|
+
setIsMobile(isMobileViewport(window.innerWidth));
|
|
16
|
+
}, []);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (typeof window === "undefined") return;
|
|
19
|
+
handleResize();
|
|
20
|
+
window.addEventListener("resize", handleResize);
|
|
21
|
+
return () => {
|
|
22
|
+
window.removeEventListener("resize", handleResize);
|
|
23
|
+
};
|
|
24
|
+
}, [handleResize]);
|
|
25
|
+
return isMobile;
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
isMobileViewport as i,
|
|
29
|
+
useIsMobile as u
|
|
30
|
+
};
|