From a6da2b44a1401b126bea32c7512bf977752f2f24 Mon Sep 17 00:00:00 2001 From: Collin Barrett <6483057+collinbarrett@users.noreply.github.com> Date: Thu, 26 Jun 2025 17:56:52 -0500 Subject: [PATCH] feat(web): add licenses column --- web/src/components/filterlist-table/columns.ts | 15 +++++++++++++-- web/src/components/filterlist-table/index.tsx | 11 +++++++++-- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/web/src/components/filterlist-table/columns.ts b/web/src/components/filterlist-table/columns.ts index fa1c2bedc..6d7cbec71 100644 --- a/web/src/components/filterlist-table/columns.ts +++ b/web/src/components/filterlist-table/columns.ts @@ -1,13 +1,24 @@ +"use client"; + import { FilterList } from "@/services/get-filterlists"; import { createColumnHelper } from "@tanstack/react-table"; +import { FilterListsTableMeta } from "."; const columnHelper = createColumnHelper(); export const columns = [ - columnHelper.accessor("name", { + columnHelper.accessor((row) => row.name, { header: "Name", }), - columnHelper.accessor("description", { + columnHelper.accessor((row) => row.description, { header: "Description", }), + columnHelper.accessor((row) => row.licenseId, { + header: "License", + cell: (info) => { + const meta = info.table.options.meta as FilterListsTableMeta; + const license = meta.licenses.find((l) => l.id === info.getValue()); + return license?.name; + }, + }), ]; diff --git a/web/src/components/filterlist-table/index.tsx b/web/src/components/filterlist-table/index.tsx index 62853e2d5..f24fdd5bc 100644 --- a/web/src/components/filterlist-table/index.tsx +++ b/web/src/components/filterlist-table/index.tsx @@ -6,8 +6,9 @@ import { getCoreRowModel, getPaginationRowModel, flexRender, - AccessorKeyColumnDef, + TableMeta, } from "@tanstack/react-table"; +import { columns } from "./columns"; import { Table, TableBody, @@ -27,8 +28,12 @@ import { Software } from "@/services/get-software"; import { Syntax } from "@/services/get-syntaxes"; import { Tag } from "@/services/get-tags"; +export interface FilterListsTableMeta extends TableMeta { + licenses: License[]; +} + interface FilterListTableProps { - columns: AccessorKeyColumnDef[]; + columns: typeof columns; initialFilterLists: FilterList[]; languages: Language[]; licenses: License[]; @@ -41,6 +46,7 @@ interface FilterListTableProps { export function FilterListTable({ columns, initialFilterLists, + licenses, }: FilterListTableProps) { const [data, setData] = useState(initialFilterLists); const [loading, setLoading] = useState(true); @@ -61,6 +67,7 @@ export function FilterListTable({ columns, getCoreRowModel: getCoreRowModel(), getPaginationRowModel: getPaginationRowModel(), + meta: { licenses: licenses } as FilterListsTableMeta, }); return (