diff --git a/web/src/components/filterlist-table/columns.tsx b/web/src/components/filterlist-table/columns.tsx index af4839b98..338401b54 100644 --- a/web/src/components/filterlist-table/columns.tsx +++ b/web/src/components/filterlist-table/columns.tsx @@ -1,26 +1,53 @@ "use client"; -import { createColumnHelper } from "@tanstack/react-table"; +import { createColumnHelper, Column } from "@tanstack/react-table"; import { FilterListsTableMeta } from "."; import { BadgeCloud } from "@/components/badge-cloud"; import { FilterList } from "@/services/get-filterlists"; +import { ArrowUpDown, ArrowUp, ArrowDown } from "lucide-react"; +import { Button } from "@/components/ui/button"; + +const SortableHeader = ({ + column, + children, +}: { + column: Column; + children: React.ReactNode; +}) => { + return ( + + ); +}; const columnHelper = createColumnHelper(); export const columns = [ columnHelper.accessor((row) => row.name, { - header: "Name", - size: 200, + id: "name", + header: ({ column }) => ( + Name + ), cell: (info) => (
{info.getValue()}
), + enableSorting: true, + size: 200, }), columnHelper.accessor((row) => row.description, { header: "Description", - size: 400, cell: (info) => (
{info.getValue()}
), + size: 400, }), columnHelper.accessor((row) => row.syntaxIds, { header: "Syntaxes", @@ -117,6 +144,7 @@ export const columns = [ ) : null; }, + enableSorting: true, size: 150, }), columnHelper.accessor((row) => row.maintainerIds, { diff --git a/web/src/components/filterlist-table/index.tsx b/web/src/components/filterlist-table/index.tsx index 047db0c5b..e4797a27f 100644 --- a/web/src/components/filterlist-table/index.tsx +++ b/web/src/components/filterlist-table/index.tsx @@ -5,6 +5,7 @@ import { useReactTable, getCoreRowModel, getPaginationRowModel, + getSortedRowModel, flexRender, TableMeta, } from "@tanstack/react-table"; @@ -75,6 +76,7 @@ export function FilterListTable({ columnResizeMode: "onChange", getCoreRowModel: getCoreRowModel(), getPaginationRowModel: getPaginationRowModel(), + getSortedRowModel: getSortedRowModel(), meta: { languages, licenses,