import Link from "next/link" import { notFound } from "next/navigation" import { ChevronLeft, ChevronRight, List } from "lucide-react" import { Button } from "@/components/ui/button" import { ReadingSettings } from "@/components/reading-settings" import { CommentSection } from "@/components/comment-section" import { TTSPlayer } from "@/components/tts-player" import { ChapterReaderProgress } from "./chapter-reader-progress" import { prisma } from "@/lib/prisma" import connectToMongoDB from "@/lib/mongoose" import { Chapter as ChapterModel } from "@/lib/models/chapter" export default async function ChapterReaderPage({ params }: { params: Promise<{ slug: string; chapterId: string }> }) { const { slug, chapterId } = await params const chapterNumber = parseInt(chapterId, 10) if (isNaN(chapterNumber)) { notFound() } const novel = await prisma.novel.findUnique({ where: { slug } }) if (!novel) { notFound() } await connectToMongoDB() const chapter = await ChapterModel.findOne({ novelId: novel.id, number: chapterNumber }).lean() if (!chapter) { notFound() } const maxChapter = await ChapterModel.countDocuments({ novelId: novel.id }) const comments: any[] = [] // Temporarily empty const hasPrev = chapterNumber > 1 const hasNext = chapterNumber < maxChapter // Extract paragraphs for TTS const paragraphs = chapter.content.split("\n").map((p: string) => p.trim()).filter(Boolean) return (
{/* Top navigation */}
{novel.title}

Chương {chapter.number}: {chapter.title}

{/* Chapter navigation top */}
{/* Chapter content */}
{paragraphs.map((text: string, idx: number) => (

{text}

))}
{/* Chapter navigation bottom */}
{/* Save reading progress */} {/* Comments */}
{/* TTS Player */}
) }