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

83 lines
1.9 KiB
TypeScript
Raw Normal View History

2024-06-20 09:39:35 +00:00
"use client"
import { ColumnDef, createColumnHelper } from "@tanstack/react-table"
2024-06-26 10:07:03 +00:00
import { ArrowUpDown } from "lucide-react"
2024-06-20 09:39:35 +00:00
import { Button } from "@/components/ui/button"
import { SubComplete } from "./page"
2024-06-22 18:12:05 +00:00
import { actions } from "app/ui/tables/actions"
2024-06-30 21:22:46 +00:00
import { selectCol } from "app/ui/tables/selectColumn"
2024-06-20 09:39:35 +00:00
const columnHelper = createColumnHelper<SubComplete>()
export const columns: ColumnDef<SubComplete>[] = [
2024-06-30 21:22:46 +00:00
selectCol,
2024-06-20 09:39:35 +00:00
{
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() }
},
{
2024-06-25 10:20:41 +00:00
accessorFn: row => row.responded ? new Date(row.responded) : null,
2024-06-20 09:39:35 +00:00
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",
2024-06-25 10:20:41 +00:00
cell: props => props.getValue() ? props.getValue().toLocaleDateString() : '-'
2024-06-20 09:39:35 +00:00
},
{
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"
},
]