import type { Metadata } from "next"; import { db, recipes, users, eq, desc } from "@epicure/db"; import { Badge } from "@/components/ui/badge"; import Link from "next/link"; export const metadata: Metadata = {}; const VISIBILITY_COLORS = { public: "default", unlisted: "outline", private: "secondary", } as const; export default async function AdminRecipesPage() { const publicRecipes = await db .select({ id: recipes.id, title: recipes.title, visibility: recipes.visibility, createdAt: recipes.createdAt, authorName: users.name, authorId: users.id, }) .from(recipes) .leftJoin(users, eq(recipes.authorId, users.id)) .where(eq(recipes.visibility, "public")) .orderBy(desc(recipes.createdAt)) .limit(200); return (

Recipe Moderation

Public recipes sorted by newest. Review and decide manually.

{publicRecipes.length === 0 ? ( ) : ( publicRecipes.map((recipe) => ( )) )}
Title Author Visibility Created Link
No public recipes yet.
{recipe.title} {recipe.authorId ? ( {recipe.authorName ?? "Unknown"} ) : ( {recipe.authorName ?? "Unknown"} )} {recipe.visibility} {recipe.createdAt.toLocaleDateString()} View
); }