From 70501d626b1fbb9e52a79c8b5c709388c845c272 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=B6rdle=20Bot?= Date: Tue, 25 Nov 2025 00:23:05 +0100 Subject: [PATCH] feat: Add genre validation with 404 for inactive genres and filter genre list to active ones. --- app/[genre]/page.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/[genre]/page.tsx b/app/[genre]/page.tsx index 88f0ff4..04c8865 100644 --- a/app/[genre]/page.tsx +++ b/app/[genre]/page.tsx @@ -2,6 +2,7 @@ import Game from '@/components/Game'; import { getOrCreateDailyPuzzle } from '@/lib/dailyPuzzle'; import Link from 'next/link'; import { PrismaClient } from '@prisma/client'; +import { notFound } from 'next/navigation'; export const dynamic = 'force-dynamic'; @@ -14,8 +15,21 @@ interface PageProps { export default async function GenrePage({ params }: PageProps) { const { genre } = await params; const decodedGenre = decodeURIComponent(genre); + + // Check if genre exists and is active + const currentGenre = await prisma.genre.findUnique({ + where: { name: decodedGenre } + }); + + if (!currentGenre || !currentGenre.active) { + notFound(); + } + const dailyPuzzle = await getOrCreateDailyPuzzle(decodedGenre); - const genres = await prisma.genre.findMany({ orderBy: { name: 'asc' } }); + const genres = await prisma.genre.findMany({ + where: { active: true }, + orderBy: { name: 'asc' } + }); const specials = await prisma.special.findMany({ orderBy: { name: 'asc' } }); const now = new Date();