import Link from "next/link"; import { redirect } from "next/navigation"; import { asc } from "drizzle-orm"; import { FileImage, FileText } from "lucide-react"; import { db } from "@/db"; import { files } from "@/db/schema"; import SessionBar from "@/components/SessionBar"; import UploadFileForm from "@/components/UploadFileForm"; import { imageFormatFromUrl } from "@/utils/file-kind"; import { formatThaiDate } from "@/utils/date-format"; import { getSessionUser } from "@/lib/session"; export const dynamic = "force-dynamic"; /** badge ชนิดไฟล์ต่อรายการ (N3) */ function kindBadge(pdfUrl: string): string { switch (imageFormatFromUrl(pdfUrl)) { case "jpeg": return "JPG"; case "png": return "PNG"; case "tiff": return "TIFF"; default: return "PDF"; } } export default async function HomePage() { // defense ซ้อน middleware — หน้านี้อ่าน cookie อยู่ดีจึงกันซ้ำไม่ให้ render รายการให้คนไม่มี session const user = getSessionUser(); if (!user) redirect("/login"); const rows = await db.select().from(files).orderBy(asc(files.createdAt)); return (
JN

Judge's Note

ระบบ PDF Annotation สำหรับ e-Court

เพิ่มเอกสาร

เอกสาร

{rows.length > 0 && ( {rows.length} ไฟล์ )}
{rows.length === 0 ? (

ยังไม่มีไฟล์ในระบบ

รัน /sync-db เพื่อ seed ไฟล์ตัวอย่าง

) : ( )}
); }