"use client" import { z } from "zod" import { Button } from "@/components/ui/button" import { useSortable } from "@dnd-kit/sortable" import { ColumnDef, flexRender, Row } from "@tanstack/react-table" import { TableCell, TableRow } from "@/components/ui/table" import { CSS } from "@dnd-kit/utilities" import { schema, schemaType } from "./schema" import { dateToLocaleString } from "@/lib/utils" import { Pencil, Trash } from "lucide-react" import { IconCircleMinus, IconHandClick } from "@tabler/icons-react" export function DraggableRow({ row, selectedIDs }: { row: Row>; selectedIDs: string[] }) { const { transform, transition, setNodeRef, isDragging } = useSortable({ id: row.original._id }) return ( {row.getVisibleCells().map((cell) => ( {flexRender(cell.column.columnDef.cell, cell.getContext())} ))} ) } function getColumns(appendBuildID: (id: string) => void, removeBuildID: (id: string) => void, selectedBuildIDS: string[], defaultSelection: string, setDefaultSelection: (id: string) => void): ColumnDef[] { return [ { accessorKey: "_id", header: "ID", }, { accessorKey: "buildType.token", header: "Token", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.govAddressCode", header: "Gov Address Code", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.buildName", header: "Build Name", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.buildNo", header: "Build No", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.maxFloor", header: "Max Floor", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.undergroundFloor", header: "Underground Floor", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.buildDate", header: "Build Date", cell: ({ getValue }) => getValue() ? dateToLocaleString(getValue() as string) : "-", }, { accessorKey: "info.decisionPeriodDate", header: "Decision Period Date", cell: ({ getValue }) => getValue() ? dateToLocaleString(getValue() as string) : "-", }, { accessorKey: "info.taxNo", header: "Tax No", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.liftCount", header: "Lift Count", cell: ({ getValue }) => getValue() ? (
Yes
) : (
No
), }, { accessorKey: "info.heatingSystem", header: "Heating System", cell: ({ getValue }) => getValue() ? (
Yes
) : (
No
), }, { accessorKey: "info.coolingSystem", header: "Cooling System", cell: ({ getValue }) => getValue() ? (
Yes
) : (
No
), }, { accessorKey: "info.hotWaterSystem", header: "Hot Water System", cell: ({ getValue }) => getValue() ? (
Yes
) : (
No
), }, { accessorKey: "info.blockServiceManCount", header: "Block Service Man Count", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.securityServiceManCount", header: "Security Service Man Count", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.garageCount", header: "Garage Count", cell: ({ getValue }) => getValue(), }, { accessorKey: "info.managementRoomId", header: "Management Room ID", cell: ({ getValue }) => getValue(), }, { id: "actions", header: "Actions", cell: ({ row }) => { return ( selectedBuildIDS.includes(row.original._id) ? (
) :
); }, } ] } export { getColumns };