"use client" import { useRouter } from 'next/navigation' import { ResourcePage } from '@/shared/data-view/resource-page' import { ColumnHeader } from '@/shared/data-view/table-view' import FormDialog from '@/shared/components/form-dialog' import { ImportDataButton } from '@/shared/components/import-data-button' import { ExportDataButton } from '@/shared/components/export-data-button' import { useAuthApi } from '@/shared/useApi' import { CustomerForm } from '@/modules/customers/customer-form' import { CUSTOMER_ROUTES } from '@garage/api' import type { CustomersClient } from '@garage/api' import { Building2Icon, UserIcon } from 'lucide-react' export default function CustomersPage() { const router = useRouter() const api = useAuthApi() return ( pageTitle='Customers' routeKey={CUSTOMER_ROUTES.INDEX} getClient={(api) => api.customers} onRowClick={(row) => router.push(`/sales/customers/${(row as any).id}`)} headerProps={({ selectedItem, invalidateQuery }) => ({ actions: (
api.customers.importData(file)} onSuccess={invalidateQuery} /> api.customers.exportData(filters)} fileName='customers' /> {(resourceId) => ( )}
), })} columns={({ actionsColumn }) => [ { accessorKey: "first_name", header: ({ column }) => , cell: ({ row }) => { const customerName = row.original.first_name const isCompany = (row.original as any).customer_type?.name?.toLocaleLowerCase() === "company"; const companyName = row.original.company_name const name = isCompany && companyName ? `${customerName} (${row.original.last_name})` : customerName return (
{isCompany ? : } {name}
) }, }, { accessorKey: "email", header: ({ column }) => , }, { accessorKey: "phone", header: ({ column }) => , }, actionsColumn(), ]} /> ) }