import { getTranslations } from "next-intl/server"; import { ContentCard, EmptyState } from "@/components/public/ui"; import { prisma } from "@/lib/prisma"; export const dynamic = "force-dynamic"; export const metadata = { title: "Photos" }; type Photo = { id: number; userId: number; roomId: number; timestamp: number; url: string; }; function formatDate(timestamp: number): string { return new Date(timestamp * 1000) .toISOString() .slice(0, 16) .replace("T", " "); } export default async function PhotosPage() { const t = await getTranslations("pages.photos"); let photos: Photo[] = []; try { photos = await prisma.cameraWeb.findMany({ orderBy: { timestamp: "desc" }, take: 48, }); } catch { photos = []; } return (
{photos.length === 0 ? ( {t("noPhotos")} ) : (
{photos.map((p) => (
{/* eslint-disable-next-line @next/next/no-img-element */} {t("photoAlt",

{formatDate(p.timestamp)}

{t("byUser", { id: p.userId })}

))}
)}
); }