import { useState } from "react"; import { useParams, Navigate } from "react-router-dom"; import { mockSolutions } from "@/shared/mocks/mocks"; import CompetitionHeader from "./components/CompetitionHeader"; import TaskContent from "./components/TaskContent"; import TaskSolution from "./modules/TaskSolution"; import { getCompetitionTasks } from "@/shared/api/session"; import { Loader2 } from "lucide-react"; import { useQuery } from "@tanstack/react-query"; const CompetitionSession = () => { const { id, taskId } = useParams<{ id: string; taskId?: string }>(); const [answer, setAnswer] = useState(""); const competitionId = id || ""; const tasksQuery = useQuery({ queryKey: ["competitionTasks", competitionId], queryFn: () => getCompetitionTasks(competitionId), enabled: !!competitionId, // refetchOnWindowFocus: false, }); const tasks = tasksQuery.data || []; const isLoading = tasksQuery.isLoading; const error = tasksQuery.error ? "Не удалось загрузить задания. Пожалуйста, попробуйте позже." : null; const currentTask = tasks.find((t) => t.id === taskId) || null; if (!taskId && tasks.length > 0 && !isLoading) { return ( ); } const handleSubmit = async () => { if (!currentTask || !competitionId) return; try { console.log("Solution submitted successfully"); } catch (err) { console.error("Failed to submit solution:", err); } }; return (
{isLoading ? (

Загрузка заданий...

) : error ? (

{error}

) : currentTask ? (
) : (

Задание не найдено

)}
); }; export default CompetitionSession;