diff --git a/src/components/personal/TaskWorkspace.tsx b/src/components/personal/TaskWorkspace.tsx
index fb40aa3..6af8e88 100644
--- a/src/components/personal/TaskWorkspace.tsx
+++ b/src/components/personal/TaskWorkspace.tsx
@@ -3,6 +3,7 @@ import {
Box,
Button,
HStack,
+ Spinner,
Text,
Textarea,
VStack,
@@ -11,8 +12,6 @@ import {
import type { ChallengeTask } from '../../__data__/types'
import { useChallenge } from '../../context/ChallengeContext'
import { useSubmission } from '../../hooks/useSubmission'
-import { CheckStatusView } from './CheckStatusView'
-import { ResultView } from './ResultView'
interface TaskWorkspaceProps {
task: ChallengeTask
@@ -26,6 +25,9 @@ export const TaskWorkspace = ({ task, onTaskComplete }: TaskWorkspaceProps) => {
})
const descriptionBg = 'gray.50'
+ const isChecking = !!queueStatus || isSubmitting
+ const isAccepted = finalSubmission?.status === 'accepted'
+ const needsRevision = finalSubmission?.status === 'needs_revision'
useEffect(() => {
if (finalSubmission) {
@@ -33,18 +35,8 @@ export const TaskWorkspace = ({ task, onTaskComplete }: TaskWorkspaceProps) => {
}
}, [finalSubmission, refreshStats])
- if (queueStatus) {
- return
- }
-
- if (finalSubmission) {
- return (
-
- )
- }
-
return (
-
+
{task.title}
@@ -54,6 +46,75 @@ export const TaskWorkspace = ({ task, onTaskComplete }: TaskWorkspaceProps) => {
+ {/* Статус проверки */}
+ {queueStatus && (
+
+
+
+
+
+ {queueStatus.status === 'waiting' ? 'Ожидание в очереди...' : 'Проверяем решение...'}
+
+ {typeof queueStatus.position === 'number' && queueStatus.position > 0 && (
+
+ Позиция в очереди: {queueStatus.position}
+
+ )}
+
+
+
+ )}
+
+ {/* Результат проверки - успех */}
+ {isAccepted && (
+
+
+ ✅
+
+ Задание принято!
+
+ {finalSubmission?.feedback && (
+
+
+ Комментарий:
+
+
+ {finalSubmission.feedback}
+
+
+ )}
+
+
+
+ )}
+
+ {/* Результат проверки - требуется доработка */}
+ {needsRevision && (
+
+
+ ⚠️
+
+ Требуется доработка
+
+ {finalSubmission?.feedback && (
+
+
+ Комментарий проверяющего:
+
+
+ {finalSubmission.feedback}
+
+
+ )}
+
+ Попытка №{finalSubmission?.attemptNumber}
+
+
+
+ )}
+
Ваше решение
@@ -64,16 +125,24 @@ export const TaskWorkspace = ({ task, onTaskComplete }: TaskWorkspaceProps) => {
placeholder="Напишите ваше решение..."
rows={14}
bg="white"
+ // @ts-expect-error Chakra UI v2 uses isDisabled
+ isDisabled={isChecking || isAccepted}
/>
-
-
-
+
+ {!isAccepted && (
+ <>
+ {/* @ts-expect-error Chakra UI v2 uses isDisabled */}
+
+ {/* @ts-expect-error Chakra UI v2 uses isLoading/isDisabled */}
+
+ >
+ )}
)