import { getTranslations } from "next-intl/server"; import { deletePhoto } from "@/actions/admin-photos"; import { StatusCard } from "@/components/admin/dashboard"; import { prisma } from "@/lib/prisma"; import { Image } from "lucide-react"; export const dynamic = "force-dynamic"; export default async function AdminPhotos() { const t = await getTranslations("pages.admin.photos"); let photos: Awaited> = []; try { photos = await prisma.cameraWeb.findMany({ orderBy: { timestamp: "desc" }, take: 60, }); } catch { photos = []; } const uniqueRooms = new Set(photos.map((p) => p.roomId)).size; const uniqueUsers = new Set(photos.map((p) => p.userId)).size; return (

{t("title")}

{t("subtitle")}

{t("recentPhotos")}

{photos.length === 0 ? (
{t("noPhotos")}
) : (
{photos.map((p) => (
{/* eslint-disable-next-line @next/next/no-img-element */} {t("photoAlt",
#{String(p.id)} {t("colRoom")} {p.roomId}

{t("colUser")} {p.userId} ยท{" "} {new Date(p.timestamp * 1000).toISOString().slice(0, 16).replace("T", " ")}

))}
)}
); }