+ Выполнено: {completedCount} / {totalCount} (+{bonusPoints} очков) +
+{challenge.description}
+Очки: +{challenge.points}
+ +{assignment.challenge.game.title}
-+ {assignment.is_playthrough ? assignment.game?.title : assignment.challenge?.game.title} +
+{assignment.challenge.description}
++ {assignment.is_playthrough + ? assignment.playthrough_info?.description + : assignment.challenge?.description} +
+ Выполнено: {assignment.bonus_challenges.filter((b: { status: string }) => b.status === 'completed').length} из {assignment.bonus_challenges.length} +
+{bonus.challenge.description}
+ {bonus.status === 'completed' && (bonus.proof_url || bonus.proof_image_url || bonus.proof_comment) && ( +"{bonus.proof_comment}"
+ )} ++ Оспорил: {bonus.dispute.raised_by.nickname} +
+{bonus.dispute.reason}
+ + {bonus.dispute.status === 'open' && ( +Проверьте спорные выполнения
++ {disputeFilter === 'open' ? 'Нет открытых оспариваний' : 'Нет оспариваний'} +
++ {dispute.reason} +
+ {/* Votes & Time */} +{ra.challenge.title}
-{ra.challenge.game.title}
+ {ra.is_playthrough ? ( + <> +Прохождение: {ra.game_title}
+Прохождение игры
+ > + ) : ra.challenge ? ( + <> +{ra.challenge.title}
+{ra.challenge.game.title}
+ > + ) : null}Причина: {ra.dispute_reason} @@ -640,28 +703,28 @@ export function PlayPage() {
Игра
- {eventAssignment.assignment.challenge.game.title} + {eventAssignment.assignment.challenge?.game.title}
Задание
- {eventAssignment.assignment.challenge.title} + {eventAssignment.assignment.challenge?.title}
- {eventAssignment.assignment.challenge.description} + {eventAssignment.assignment.challenge?.description}
Нужно доказательство: {eventAssignment.assignment.challenge.proof_hint} @@ -680,7 +743,7 @@ export function PlayPage() {
Игра
- {currentAssignment.challenge.game.title} + {currentAssignment.is_playthrough + ? currentAssignment.game?.title + : currentAssignment.challenge?.game.title}
Задание
-- {currentAssignment.challenge.title} -
-- {currentAssignment.challenge.description} -
-Задача
++ Пройти игру +
++ {currentAssignment.playthrough_info?.description} +
+- Нужно доказательство: {currentAssignment.challenge.proof_hint} -
-+ Нужно доказательство: {currentAssignment.playthrough_info.proof_hint} +
++ Бонусные челленджи (опционально) — {currentAssignment.bonus_challenges.filter(b => b.status === 'completed').length}/{currentAssignment.bonus_challenges.length} +
+{bonus.challenge.title}
+{bonus.challenge.description}
++ Пруф: {bonus.challenge.proof_hint} +
+ )} + + {/* File upload */} + { + e.stopPropagation() + validateAndSetFile(e.target.files?.[0] || null, setBonusProofFile, bonusFileInputRef) + }} + /> + {bonusProofFile ? ( ++ Нажмите на бонус, чтобы отметить. Очки начислятся при завершении игры. +
+Задание
++ {currentAssignment.challenge?.title} +
++ {currentAssignment.challenge?.description} +
++ Нужно доказательство: {currentAssignment.challenge.proof_hint} +
++ Управление диспутами и проверка пруфов +
++ {filter === 'pending' ? 'Нет оспариваний, ожидающих решения' : + filter === 'open' ? 'Нет оспариваний в стадии голосования' : + 'Нет оспариваний'} +
+Причина:
+{dispute.reason}
+