puzzle-trainer/sudoku/[date]/page.tsx
2026-05-23 01:05:21 +00:00

31 lines
1.2 KiB
TypeScript

"use client";
import { useState, useEffect } from "react";
import { useParams } from "next/navigation";
import { generateSudoku, SudokuPuzzle } from "@/lib/generators/sudoku";
import SudokuBoard from "@/components/SudokuBoard";
import Link from "next/link";
export default function SudokuDatePage() {
const { date } = useParams<{ date: string }>();
const [puzzle, setPuzzle] = useState<SudokuPuzzle | null>(null);
useEffect(() => { setPuzzle(generateSudoku(date)); }, [date]);
return (
<div className="flex flex-col items-center gap-8">
<div className="text-center">
<h1 className="text-2xl font-bold text-gray-900 tracking-tight">Sudoku</h1>
<p className="text-sm text-gray-400 mt-1">{date}</p>
</div>
{puzzle ? (
<SudokuBoard key={date} puzzle={puzzle} date={date} />
) : (
<div className="py-20 text-gray-300 text-sm">Chargement</div>
)}
<div className="flex gap-4 text-sm">
<Link href="/sudoku" className="text-gray-500 hover:text-gray-900 transition-colors"> Aujourd&apos;hui</Link>
<Link href="/archive?game=sudoku" className="text-gray-400 hover:text-gray-700 transition-colors">Archives</Link>
</div>
</div>
);
}