"use client"; import { Eye, Package, Pencil } from "lucide-react"; import { DataTable } from "@/components/admin/data-table"; import Link from "@/components/link"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import type { DataTableColumn, PaginatedResult } from "@/types/common"; export interface ItemsBaseRow { id: number; spriteId: number; publicName: string; itemName: string; type: string; interactionType: string; width: number; length: number; } function getColumns(canEdit: boolean): DataTableColumn[] { return [ { key: "id", label: "ID", sortable: true }, { key: "publicName", label: "Name", sortable: true, render: (_, row) => (
{row.publicName || "—"} {row.itemName}
), }, { key: "spriteId", label: "Sprite", sortable: true, render: (v) => {String(v)}, }, { key: "type", label: "Type", sortable: true, filterKey: "filter_type", filterOptions: [ { label: "Floor (s)", value: "s" }, { label: "Wall (i)", value: "i" }, { label: "Effect (e)", value: "e" }, { label: "Badge (b)", value: "b" }, { label: "Robot (r)", value: "r" }, ], render: (v) => {String(v)}, }, { key: "interactionType", label: "Interaction", sortable: true, render: (v) => ( {String(v || "default")} ), }, { key: "width", label: "Size", render: (_, row) => ( {row.width}×{row.length} ), }, { key: "actions", label: "", render: (_, row) => (
), }, ]; } export function ItemsTable({ data, canEdit, }: { data: PaginatedResult; canEdit: boolean; }) { return ( ); }