import { headers } from "next/headers";
import { auth } from "@/lib/auth/server";
import { db, pantryItems, eq, asc } from "@epicure/db";
import { PrintTrigger } from "@/components/recipe/print-trigger";
import { getMessages, formatMessage } from "@/lib/i18n/server";
export default async function PantryPrintPage() {
const session = await auth.api.getSession({ headers: await headers() });
if (!session) return null;
const m = getMessages((session.user as { locale?: string }).locale);
const items = await db.query.pantryItems.findMany({
where: eq(pantryItems.userId, session.user.id),
orderBy: asc(pantryItems.rawName),
});
const now = new Date();
return (
<>
{formatMessage(items.length === 1 ? m.pantry.printItemCountSingular : m.pantry.printItemCountPlural, { count: items.length })}
{items.length === 0 ? ({m.pantry.noItems}
) : (| {m.pantry.colItem} | {m.pantry.colQuantity} | {m.pantry.colExpires} |
|---|---|---|
| {item.rawName} | {[item.quantity, item.unit].filter(Boolean).join(" ") || "—"} | {exp ? daysLeft !== null && daysLeft < 0 ? formatMessage(m.pantry.expiredDaysAgo, { days: Math.abs(daysLeft) }) : exp.toLocaleDateString("en", { month: "short", day: "numeric", year: "numeric" }) : "—"} |