From 1a52901b90d59bc401132609add9aa4d648fc62b Mon Sep 17 00:00:00 2001 From: Primakov Alexandr Date: Sun, 14 Dec 2025 14:06:18 +0300 Subject: [PATCH] Enhance task navigation and progress tracking across components. Update TaskWorkspace to improve task completion handling and button interactions. Refactor ChainsPage to select the furthest accessible task based on user progress. Implement storage functions for managing furthest task indices, ensuring users can only navigate to available tasks. Update TaskPage to check task accessibility and redirect users appropriately, improving overall user experience. --- src/components/personal/TaskWorkspace.tsx | 16 ++-- src/pages/chains/ChainsPage.tsx | 16 +++- src/pages/task/TaskPage.tsx | 105 +++++++++++++++++----- src/utils/storage.ts | 26 ++++++ 4 files changed, 135 insertions(+), 28 deletions(-) diff --git a/src/components/personal/TaskWorkspace.tsx b/src/components/personal/TaskWorkspace.tsx index fcea615..084e297 100644 --- a/src/components/personal/TaskWorkspace.tsx +++ b/src/components/personal/TaskWorkspace.tsx @@ -21,7 +21,7 @@ interface TaskWorkspaceProps { export const TaskWorkspace = ({ task, onTaskComplete }: TaskWorkspaceProps) => { const { refreshStats } = useChallenge() - const { result, setResult, submit, reset, queueStatus, finalSubmission, isSubmitting } = useSubmission({ + const { result, setResult, submit, queueStatus, finalSubmission, isSubmitting } = useSubmission({ taskId: task.id, }) @@ -364,12 +364,18 @@ export const TaskWorkspace = ({ task, onTaskComplete }: TaskWorkspaceProps) => { /> - + {!isAccepted && ( <> - {/* @ts-expect-error Chakra UI v2 uses isDisabled */} - {/* @ts-expect-error Chakra UI v2 uses isLoading/isDisabled */} - ))} + {chain.tasks.map((t, index) => { + const isAccessible = isTaskAccessible(index) + const isCurrent = t.id === taskId + + return ( + + ) + })}