mirror of
https://gitlab.com/megazordpobeda/DataRush.git
synced 2026-05-23 02:47:10 +00:00
fix: training runner
This commit is contained in:
@@ -42,11 +42,10 @@ const CompetitionRunnerPage = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
|
<div className="sticky top-0 z-10 bg-white">
|
||||||
<div className="sticky top-16 z-10 bg-white border-b border-gray-200 shadow-sm">
|
<div className="max-w-6xl mx-auto px-4">
|
||||||
<div className="container mx-auto px-4">
|
<div className="py-3 text-center">
|
||||||
<div className="py-4">
|
<h1 className="text-lg font-semibold font-hse-sans">{competitionTitle}</h1>
|
||||||
<h1 className="text-xl font-semibold font-hse-sans">{competitionTitle}</h1>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="flex items-center justify-center gap-2 pb-3 overflow-x-auto no-scrollbar">
|
<div className="flex items-center justify-center gap-2 pb-3 overflow-x-auto no-scrollbar">
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { Competition, CompetitionStatus } from "@/shared/types";
|
import { Competition, CompetitionStatus } from "@/shared/types";
|
||||||
import { cn } from "@/shared/lib/utils";
|
import { cn } from "@/shared/lib/utils";
|
||||||
import { Card, CardContent } from "@/components/ui/card";
|
import { Card, CardContent } from "@/components/ui/card";
|
||||||
|
import { useNavigate } from "react-router";
|
||||||
|
|
||||||
interface CompetitionCardProps {
|
interface CompetitionCardProps {
|
||||||
competition: Competition;
|
competition: Competition;
|
||||||
@@ -11,12 +12,19 @@ export function CompetitionCard({
|
|||||||
competition,
|
competition,
|
||||||
className,
|
className,
|
||||||
}: CompetitionCardProps) {
|
}: CompetitionCardProps) {
|
||||||
|
const navigate = useNavigate();
|
||||||
|
|
||||||
|
const handleClick = () => {
|
||||||
|
navigate(`/competition/${competition.id}`);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card
|
<Card
|
||||||
className={cn(
|
className={cn(
|
||||||
"aspect-square h-full max-h-80 w-auto overflow-hidden",
|
"aspect-square h-full max-h-80 w-auto overflow-hidden",
|
||||||
className,
|
className,
|
||||||
)}
|
)}
|
||||||
|
onClick={handleClick}
|
||||||
>
|
>
|
||||||
<div className="relative h-full overflow-hidden">
|
<div className="relative h-full overflow-hidden">
|
||||||
<img
|
<img
|
||||||
|
|||||||
@@ -2,65 +2,7 @@ import { useState, useEffect } from "react";
|
|||||||
import { Competition, CompetitionStatus } from "@/shared/types";
|
import { Competition, CompetitionStatus } from "@/shared/types";
|
||||||
import { CompetitionGrid } from "./modules/CompetitionGrid";
|
import { CompetitionGrid } from "./modules/CompetitionGrid";
|
||||||
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
|
||||||
|
import { mockCompetitions } from "@/shared/mocks/mocks";
|
||||||
const mockCompetitions: Competition[] = [
|
|
||||||
{
|
|
||||||
id: "1",
|
|
||||||
name: "Олимпиада DANO 2025. Индивидуальный этап",
|
|
||||||
imageUrl: "/DANO.png",
|
|
||||||
isOlympics: true,
|
|
||||||
status: CompetitionStatus.InProgress,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "2",
|
|
||||||
name: "Олимпиада DANO 2025. Индивидуальный этап",
|
|
||||||
imageUrl: "/DANO.png",
|
|
||||||
isOlympics: false,
|
|
||||||
status: CompetitionStatus.NotParticipating,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "3",
|
|
||||||
name: "Олимпиада DANO 2025. Индивидуальный этап",
|
|
||||||
imageUrl: "/DANO.png",
|
|
||||||
isOlympics: false,
|
|
||||||
status: CompetitionStatus.InProgress,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "4",
|
|
||||||
name: "Олимпиада DANO 2025. Индивидуальный этап",
|
|
||||||
imageUrl: "/DANO.png",
|
|
||||||
isOlympics: true,
|
|
||||||
status: CompetitionStatus.Completed,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "5",
|
|
||||||
name: "Олимпиада DANO 2025. Индивидуальный этап",
|
|
||||||
imageUrl: "/DANO.png",
|
|
||||||
isOlympics: false,
|
|
||||||
status: CompetitionStatus.Completed,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "6",
|
|
||||||
name: "Олимпиада DANO 2025. Индивидуальный этап",
|
|
||||||
imageUrl: "/DANO.png",
|
|
||||||
isOlympics: true,
|
|
||||||
status: CompetitionStatus.NotParticipating,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "6",
|
|
||||||
name: "Олимпиада DANO 2025. Индивидуальный этап",
|
|
||||||
imageUrl: "/DANO.png",
|
|
||||||
isOlympics: true,
|
|
||||||
status: CompetitionStatus.NotParticipating,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: "6",
|
|
||||||
name: "Олимпиада DANO 2025. Индивидуальный этап",
|
|
||||||
imageUrl: "/DANO.png",
|
|
||||||
isOlympics: true,
|
|
||||||
status: CompetitionStatus.NotParticipating,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const CompetitionsPage = () => {
|
const CompetitionsPage = () => {
|
||||||
const [competitions] = useState<Competition[]>(mockCompetitions);
|
const [competitions] = useState<Competition[]>(mockCompetitions);
|
||||||
|
|||||||
Reference in New Issue
Block a user