fix: training runner

This commit is contained in:
rngsurrounded
2025-03-01 19:50:13 +09:00
parent c9ec020756
commit ab002f42f8
3 changed files with 15 additions and 66 deletions
@@ -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);