From 7b994ec06edd65d781082aeaebe6ae1c6eecc7ec Mon Sep 17 00:00:00 2001 From: andrzej Date: Wed, 19 Jun 2024 13:14:12 +0200 Subject: [PATCH] add genre badges --- src/app/story/columns.tsx | 48 +++++++++++++++++------------- src/app/ui/forms/genresTrigger.tsx | 4 +-- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/src/app/story/columns.tsx b/src/app/story/columns.tsx index 713fcbd..c1a8879 100644 --- a/src/app/story/columns.tsx +++ b/src/app/story/columns.tsx @@ -1,14 +1,15 @@ "use client" -import { ColumnDef } from "@tanstack/react-table" -import { Genre, Story } from "@prisma/client" +import { ColumnDef, createColumnHelper } from "@tanstack/react-table" +import { StoryWithGenres } from "./page" import { ArrowUpDown, MoreHorizontal } from "lucide-react" import { Button } from "@/components/ui/button" -export const columns: ColumnDef }>[] = [ - // { - // accessorKey: "id", - // header: "Id", - // enableHiding: true, - // }, +import { Badge } from "@/components/ui/badge" + + + +const columnHelper = createColumnHelper() + +export const columns: ColumnDef[] = [ { accessorKey: "title", header: ({ column }) => { @@ -39,18 +40,25 @@ export const columns: ColumnDef }>[] = [ }, 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" - - - }, + // { + // accessorFn: row => { + // let unpacked = "" + // for (let i = 0; i < row.genres.length; i++) { + // unpacked = unpacked + " " + row.genres[i].name + // } + // return unpacked + // }, + // header: "Genres" + // + // + // }, + columnHelper.accessor("genres", { + cell: props => { + const genres = props.getValue() + .map(e => {e.name}) + return genres + } + }) // { // accessorKey: "deleted", // header: "Deleted" diff --git a/src/app/ui/forms/genresTrigger.tsx b/src/app/ui/forms/genresTrigger.tsx index cd2d3d2..3e457be 100644 --- a/src/app/ui/forms/genresTrigger.tsx +++ b/src/app/ui/forms/genresTrigger.tsx @@ -3,6 +3,7 @@ import { Popover, PopoverContent, PopoverTrigger } from "@radix-ui/react-popover import { Checkbox } from "@radix-ui/react-checkbox" import { Button } from "@/components/ui/button" import { cn } from "@/lib/utils" +import { Badge } from "@/components/ui/badge" export default function GenresTrigger({ value, genres }) { return ( <> @@ -15,8 +16,7 @@ export default function GenresTrigger({ value, genres }) { )} > {value.length !== 0 ? ( - value.map((e, i) => genres.find(f => e === f.id).name + - (i < value.length - 1 ? ', ' : '')) + value.map((e, i) => ({genres.find(f => e === f.id).name})) ) : ( Genres )}