diff --git a/services/frontend/src/pages/CompetitionSession/index.tsx b/services/frontend/src/pages/CompetitionSession/index.tsx index 09fc40c..c2141d2 100644 --- a/services/frontend/src/pages/CompetitionSession/index.tsx +++ b/services/frontend/src/pages/CompetitionSession/index.tsx @@ -4,6 +4,7 @@ import CompetitionHeader from "./components/CompetitionHeader"; import TaskContent from "./components/TaskContent"; import TaskSolution from "./modules/TaskSolution"; import { getCompetitionTasks, submitTaskSolution } from "@/shared/api/session"; +import { getCompetition } from "@/shared/api/competitions"; import { Loader2 } from "lucide-react"; import { useQuery, useMutation, useQueryClient } from "@tanstack/react-query"; import { TaskType } from "@/shared/types/task"; @@ -15,6 +16,12 @@ const CompetitionSession = () => { const competitionId = id || ""; const queryClient = useQueryClient(); + const competitionQuery = useQuery({ + queryKey: ["competition", competitionId], + queryFn: () => getCompetition(competitionId), + enabled: !!competitionId, + }); + const tasksQuery = useQuery({ queryKey: ["competitionTasks", competitionId], queryFn: () => getCompetitionTasks(competitionId), @@ -46,9 +53,12 @@ const CompetitionSession = () => { } }); + const competition = competitionQuery.data; const tasks = tasksQuery.data || []; - const isLoading = tasksQuery.isLoading; - const error = tasksQuery.error ? "Не удалось загрузить задания. Пожалуйста, попробуйте позже." : null; + const isLoading = tasksQuery.isLoading || competitionQuery.isLoading; + const error = tasksQuery.error || competitionQuery.error + ? "Не удалось загрузить данные. Пожалуйста, попробуйте позже." + : null; const currentTask = tasks.find((t) => t.id === taskId) || null; @@ -77,10 +87,12 @@ const CompetitionSession = () => { submitMutation.mutate(); }; + const competitionTitle = competition?.title || "Загрузка соревнования..."; + return (
@@ -106,6 +118,7 @@ const CompetitionSession = () => { selectedFile={selectedFile} setSelectedFile={setSelectedFile} onSubmit={handleSubmit} + isSubmitting={submitMutation.isPending} />
) : (