"use client" import { use } from "react" import { ResourcePage } from "@/shared/data-view/resource-page" import { ColumnHeader } from "@/shared/data-view/table-view" import FormDialog from "@/shared/components/form-dialog" import { TaskForm } from "@/modules/tasks/task-form" import { TASK_ROUTES } from "@garage/api" import type { TasksClient } from "@garage/api" import { Badge } from "@/shared/components/ui/badge" import { useJobCard } from "@/modules/job-cards/job-card-context" import { formatDate, formatEnum } from "@/shared/utils/formatters" export default function JobCardTasksPage({ params, }: { params: Promise<{ id: string }> }) { const { id: jobCardId } = use(params) const jobCard = useJobCard() const defaultJobCard = jobCard ? { value: String((jobCard as any).id), label: (jobCard as any).title || `Job Card` } : null return ( routeKey={TASK_ROUTES.INDEX} getClient={(api) => api.tasks} extraParams={{ job_card_id: jobCardId }} header={null} tableHeader={({ invalidateQuery, selectedItem, closeDialog }) => (
{(resourceId) => ( { closeDialog(); invalidateQuery() }} /> )}
)} columns={({ actionsColumn }) => [ { accessorKey: "task_number", header: ({ column }) => , cell: ({ row }) => (row.original as any).task_number || "—", }, { accessorKey: "subject", header: ({ column }) => , cell: ({ row }) => (row.original as any).subject || "—", }, { accessorKey: "due_date", header: ({ column }) => , cell: ({ row }) => formatDate((row.original as any).due_date), }, { accessorKey: "priority", header: ({ column }) => , }, { accessorKey: "status", header: ({ column }) => , }, actionsColumn(), ]} /> ) }