diff --git a/src/app/story/columns.tsx b/src/app/story/columns.tsx index 9c9704c..713fcbd 100644 --- a/src/app/story/columns.tsx +++ b/src/app/story/columns.tsx @@ -1,9 +1,9 @@ "use client" import { ColumnDef } from "@tanstack/react-table" -import { Story } from "@prisma/client" +import { Genre, Story } from "@prisma/client" import { ArrowUpDown, MoreHorizontal } from "lucide-react" import { Button } from "@/components/ui/button" -export const columns: ColumnDef[] = [ +export const columns: ColumnDef }>[] = [ // { // accessorKey: "id", // header: "Id", @@ -22,10 +22,34 @@ export const columns: ColumnDef[] = [ ) }, + }, { accessorKey: "word_count", - header: "Word Count", + header: ({ column }) => { + return ( + + ) + }, + enableColumnFilter: false + }, + { + accessorFn: row => { + let unpacked = "" + for (let i = 0; i < row.genres.length; i++) { + unpacked = unpacked + " " + row.genres[i].name + } + return unpacked + }, + header: "Genres" + + }, // { // accessorKey: "deleted", diff --git a/src/app/story/data-table.tsx b/src/app/story/data-table.tsx index f02984e..9c454e7 100644 --- a/src/app/story/data-table.tsx +++ b/src/app/story/data-table.tsx @@ -5,6 +5,8 @@ import { DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuTrigger, + DropdownMenuRadioItem, + DropdownMenuRadioGroup } from "@/components/ui/dropdown-menu" import { Input } from "@/components/ui/input" import { useState } from "react" @@ -39,6 +41,7 @@ export function DataTable({ columns, data, }: DataTableProps) { + console.log(data) //STATE const [sorting, setSorting] = useState([]) const [columnFilters, setColumnFilters] = useState( @@ -64,13 +67,36 @@ export function DataTable({ }, }) + const [filterBy, setFilterBy] = useState(table.getAllColumns()[0]) + console.log(filterBy.id) return (<>
+ + + + + + + {table + .getAllColumns() + .filter((column) => column.getCanFilter()) + .map((column) => { + return ( + + {column.id} + + ) + })} + + + - table.getColumn("email")?.setFilterValue(event.target.value) + table.getColumn(filterBy.id)?.setFilterValue(event.target.value) } className="max-w-sm" />