This commit is contained in:
2025-12-27 21:03:20 +01:00
parent 29e2f254dd
commit c667deff8b
33 changed files with 701 additions and 100 deletions

View File

@ -0,0 +1,18 @@
import EditCategoryForm from "@/components/categories/EditCategoryForm";
import { prisma } from "@/lib/prisma";
export default async function PortfolioCategoriesEditPage({ params }: { params: { id: string } }) {
const { id } = await params;
const category = await prisma.artCategory.findUnique({
where: {
id,
}
})
return (
<div>
<h1 className="text-2xl font-bold mb-4">Edit Category</h1>
{category && <EditCategoryForm category={category} />}
</div>
);
}

View File

@ -0,0 +1,10 @@
import NewCategoryForm from "@/components/categories/NewCategoryForm";
export default function PortfolioCategoriesNewPage() {
return (
<div>
<h1 className="text-2xl font-bold mb-4">New Category</h1>
<NewCategoryForm />
</div>
);
}

View File

@ -0,0 +1,29 @@
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>
);
}