29 lines
1.1 KiB
TypeScript
29 lines
1.1 KiB
TypeScript
import CategoryTable from "@/components/categories/CategoryTable";
|
|
import { prisma } from "@/lib/prisma";
|
|
import { PlusCircleIcon } from "lucide-react";
|
|
import Link from "next/link";
|
|
|
|
export default async function CategoriesPage() {
|
|
const items = await prisma.artCategory.findMany({
|
|
include: {
|
|
_count: { select: { artworks: true, tags: true } },
|
|
},
|
|
orderBy: [{ sortIndex: "asc" }, { name: "asc" }],
|
|
});
|
|
|
|
return (
|
|
<div>
|
|
<div className="flex gap-4 justify-between pb-8">
|
|
<h1 className="text-2xl font-bold mb-4">Art Categories</h1>
|
|
<Link href="/categories/new" className="flex gap-2 items-center cursor-pointer bg-primary hover:bg-primary/90 text-primary-foreground px-4 py-2 rounded">
|
|
<PlusCircleIcon className="h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all text-primary-foreground" /> Add new category
|
|
</Link>
|
|
</div>
|
|
{items.length > 0 ? (
|
|
<CategoryTable categories={items} />
|
|
) : (
|
|
<p>There are no categories yet. Consider adding some!</p>
|
|
)}
|
|
</div>
|
|
);
|
|
} |