-
{row.original.albumsCount}
- {row.original.albums.length ?
:
—}
+
+ {row.original.albumsCount}
+
+ {row.original.albums.length ? (
+
+ ) : (
+
—
+ )}
),
},
{
id: "categories",
- header: ({ column }) =>
-
{row.original.categoriesCount}
+
+ {row.original.categoriesCount}
+
{row.original.categories.length ? (
) : (
@@ -321,25 +357,26 @@ export function ArtworksTable() {
},
{
accessorKey: "published",
- header: ({ column }) =>
,
+ header: ({ column }) => (
+
+ ),
cell: ({ row }) =>
,
},
- {
- accessorKey: "nsfw",
- header: ({ column }) =>
,
- cell: ({ row }) =>
,
- },
{
accessorKey: "needsWork",
- header: ({ column }) =>
,
- cell: ({ row }) =>
,
+ header: ({ column }) => (
+
+ ),
+ cell: ({ row }) => (
+
+ ),
},
{
- accessorKey: "createdAt",
- header: ({ column }) =>
,
+ accessorKey: "updatedAt",
+ header: ({ column }) =>
,
cell: ({ row }) => (
- {new Date(row.original.createdAt).toLocaleDateString()}
+ {new Date(row.original.updatedAt).toLocaleDateString()}
),
},
@@ -362,7 +399,10 @@ export function ArtworksTable() {
-
+
Edit
@@ -397,7 +437,9 @@ export function ArtworksTable() {
manualSorting: true,
pageCount,
onSortingChange: (updater) => {
- setSorting((prev) => (typeof updater === "function" ? updater(prev) : updater));
+ setSorting((prev) =>
+ typeof updater === "function" ? updater(prev) : updater,
+ );
setPageIndex(0);
},
getCoreRowModel: getCoreRowModel(),
@@ -412,10 +454,11 @@ export function ArtworksTable() {
name: debouncedName || undefined,
slug: debouncedSlug || undefined,
published: filters.published,
- nsfw: filters.nsfw,
needsWork: filters.needsWork,
albumIds: filters.albumIds.length ? filters.albumIds : undefined,
- categoryIds: filters.categoryIds.length ? filters.categoryIds : undefined,
+ categoryIds: filters.categoryIds.length
+ ? filters.categoryIds
+ : undefined,
},
});
@@ -429,7 +472,6 @@ export function ArtworksTable() {
debouncedName,
debouncedSlug,
filters.published,
- filters.nsfw,
filters.needsWork,
filters.albumIds,
filters.categoryIds,
@@ -453,7 +495,10 @@ export function ArtworksTable() {
>
{header.isPlaceholder
? null
- : flexRender(header.column.columnDef.header, header.getContext())}
+ : flexRender(
+ header.column.columnDef.header,
+ header.getContext(),
+ )}
))}
@@ -464,7 +509,10 @@ export function ArtworksTable() {
const colId = header.column.id;
return (
-
+
{colId === "name" ? (
- ) : colId === "nsfw" ? (
- {
- setFilters((f) => ({ ...f, nsfw: v }));
- setPageIndex(0);
- }}
- />
) : colId === "needsWork" ? (
{rows.length === 0 ? (
-
+
{isPending ? "Loading…" : "No results."}
@@ -561,8 +604,14 @@ export function ArtworksTable() {
].join(" ")}
>
{r.getVisibleCells().map((cell) => (
-
- {flexRender(cell.column.columnDef.cell, cell.getContext())}
+
+ {flexRender(
+ cell.column.columnDef.cell,
+ cell.getContext(),
+ )}
))}
@@ -645,7 +694,9 @@ export function ArtworksTable() {
Delete artwork?
- This will delete {deleteTarget?.name}. This action cannot be undone.
+ This will delete{" "}
+ {deleteTarget?.name}. This
+ action cannot be undone.
@@ -670,10 +721,13 @@ export function ArtworksTable() {
name: debouncedName || undefined,
slug: debouncedSlug || undefined,
published: filters.published,
- nsfw: filters.nsfw,
needsWork: filters.needsWork,
- albumIds: filters.albumIds.length ? filters.albumIds : undefined,
- categoryIds: filters.categoryIds.length ? filters.categoryIds : undefined,
+ albumIds: filters.albumIds.length
+ ? filters.albumIds
+ : undefined,
+ categoryIds: filters.categoryIds.length
+ ? filters.categoryIds
+ : undefined,
},
});
setRows(res.rows);
diff --git a/src/components/global/Sidebar.tsx b/src/components/global/Sidebar.tsx
index 729be55..48210bd 100644
--- a/src/components/global/Sidebar.tsx
+++ b/src/components/global/Sidebar.tsx
@@ -2,6 +2,7 @@
import Link from "next/link";
import { usePathname } from "next/navigation";
+import { ChevronDown } from "lucide-react";
import { Button } from "@/components/ui/button";
import {
@@ -43,7 +44,12 @@ export default function AdminSidebar() {
key={entry.href}
asChild
variant={active ? "secondary" : "ghost"}
- className={cn("justify-start")}
+ className={cn(
+ "justify-start border border-transparent",
+ "hover:bg-muted/60 dark:hover:bg-muted/40",
+ active &&
+ "bg-primary/10 text-primary border-primary/30 dark:bg-primary/20"
+ )}
>
{entry.title}
@@ -65,11 +71,14 @@ export default function AdminSidebar() {
@@ -83,7 +92,12 @@ export default function AdminSidebar() {
asChild
variant={active ? "secondary" : "ghost"}
size="sm"
- className="justify-start"
+ className={cn(
+ "justify-start border border-transparent",
+ "hover:bg-muted/60 dark:hover:bg-muted/40",
+ active &&
+ "bg-primary/10 text-primary border-primary/30 dark:bg-primary/20"
+ )}
>
{item.title}
diff --git a/src/components/global/nav.ts b/src/components/global/nav.ts
index b6f244d..17b536b 100644
--- a/src/components/global/nav.ts
+++ b/src/components/global/nav.ts
@@ -17,54 +17,41 @@ export type AdminNavGroup =
export const adminNav: AdminNavGroup[] = [
{ type: "link", title: "Home", href: "/" },
-
{
type: "group",
- title: "Upload",
+ title: "Uploads",
items: [
{ title: "Single Image", href: "/uploads/single" },
{ title: "Multiple Images", href: "/uploads/bulk" },
],
},
-
- { type: "link", title: "Artworks", href: "/artworks" },
-
{
type: "group",
- title: "Artwork Management",
+ title: "Artworks",
items: [
+ { title: "Artwork List", href: "/artworks" },
{ title: "Categories", href: "/categories" },
],
},
-
{
type: "group",
- title: "Topics",
+ title: "General",
items: [{ title: "Tags", href: "/tags" }],
},
-
{
type: "group",
title: "Commissions",
items: [
{ title: "Requests", href: "/commissions/requests" },
{ title: "Board", href: "/commissions/kanban" },
+
{ title: "Types", href: "/commissions/types" },
- { title: "Custom Cards", href: "/commissions/custom-cards" },
+ { title: "Custom (YCH)", href: "/commissions/custom-cards" },
{ title: "TypeOptions", href: "/commissions/types/options" },
{ title: "TypeExtras", href: "/commissions/types/extras" },
{ title: "Guidelines", href: "/commissions/guidelines" },
],
},
-
{ type: "link", title: "Terms of Service", href: "/tos" },
-
- {
- type: "group",
- title: "Users",
- items: [
- { title: "Users", href: "/users" },
- { title: "New User", href: "/users/new" },
- ],
- },
+ { type: "link", title: "Users", href: "/users" },
];