"use client" import { formatMoney } from "@/lib/clientUtils" import { GetInvoicePayload } from "@/lib/types" import { Account, InvoiceStatus } from "@prisma/client" import { ColumnDef, createColumnHelper } from "@tanstack/react-table" import moment, { MomentInput } from "moment" import { ArrowUpDown } from "lucide-react"; import React from "react" // This type is used to define the shape of our data. // You can use a Zod schema here if you want. const columnHelper = createColumnHelper(); export const columns: ColumnDef[] = [ { accessorKey: "invoiceDate", filterFn: "includesString", header: ({ column }) => { return ( ) }, cell: ({ row }) => { return moment(row.getValue("invoiceDate")).format("MM/DD/YYYY"); } }, { accessorFn: (props) => ([props.account.primaryContactFirstName, " " + props.account.primaryContactLastName]), header: "Account", id: "fullName", cell: ({ row }) => { console.log({ row }); return row.getValue("fullName") // const account = row.getValue("account") as Account; // return
{account.primaryContactFirstName} {account.primaryContactLastName}
} }, { accessorKey: "invoiceDueDate", header: ({ column }) => { return ( ) }, cell: ({ row }) => { return moment(row.getValue("invoiceDueDate")).format("MM/DD/YYYY") } }, { accessorKey: "invoiceStartDate", header: "Date Range", cell: ({ row }) => { const invoice = row.original; return (
{moment(invoice.invoiceStartDate).format("MM/DD/YYYY")} - {moment(invoice.invoiceEndDate).format("MM/DD/YYYY")}
); } }, { accessorKey: "invoiceStatus", header: ({ column }) => { return ( ) }, cell: ({ row }) => { const status = row.getValue("invoiceStatus") as InvoiceStatus; if (status === InvoiceStatus.PAID) { return
PAID
} if (status === InvoiceStatus.VOID) { return
VOID
} if (status === InvoiceStatus.CREATED) { return
{InvoiceStatus.CREATED}
} }, }, { accessorKey: "invoiceAmount", header: ({ column }) => { return (
) }, cell: ({ row }) => { return
{formatMoney(parseFloat(row.getValue("invoiceAmount")).toString(), false)}
}, } ]