subman-nextjs/src/app/submission/columns.tsx

83 lines
1.9 KiB
TypeScript

"use client"
import { ColumnDef, createColumnHelper } from "@tanstack/react-table"
import { ArrowUpDown } from "lucide-react"
import { Button } from "@/components/ui/button"
import { SubComplete } from "./page"
import { actions } from "app/ui/tables/actions"
import { selectCol } from "app/ui/tables/selectColumn"
const columnHelper = createColumnHelper<SubComplete>()
export const columns: ColumnDef<SubComplete>[] = [
selectCol,
{
accessorFn: row => new Date(row.submitted),
id: "submitted",
header: ({ column }) => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
>
Date Submitted
<ArrowUpDown className="ml-2 h-4 w-4" />
</Button>
)
},
enableColumnFilter: false,
sortingFn: "datetime",
cell: props => { return props.getValue().toLocaleDateString() }
},
{
accessorFn: row => row.responded ? new Date(row.responded) : null,
id: "responded",
header: ({ column }) => {
return (
<Button
variant="ghost"
onClick={() => column.toggleSorting(column.getIsSorted() === "asc")}
>
Date Responded
<ArrowUpDown className="ml-2 h-4 w-4" />
</Button>
)
},
enableColumnFilter: false,
sortingFn: "datetime",
cell: props => props.getValue() ? props.getValue().toLocaleDateString() : '-'
},
{
accessorFn: row => {
if (row.response) {
return row.response.response
}
return "RECORD DELETED"
},
id: "response",
header: "Response"
},
{
accessorFn: row => {
if (row.pub) {
return row.pub.title
}
return "RECORD DELETED"
},
id: "pub",
header: "Publication"
},
{
accessorFn: row => {
if (row.story) {
return row.story.title
}
return "RECORD DELETED"
},
id: "story",
header: "Story"
},
]