import { useMemo } from 'react'; import { createColumnHelper } from '@tanstack/react-table'; import { CompanyAccountOwnerCell } from '@/companies/components/CompanyAccountOwnerCell'; import { CompanyEditableNameChipCell } from '@/companies/components/CompanyEditableNameCell'; import { EditableDate } from '@/ui/components/editable-cell/types/EditableDate'; import { EditableTextCell } from '@/ui/components/editable-cell/types/EditableTextCell'; import { ColumnHead } from '@/ui/components/table/ColumnHead'; import { IconBuildingSkyscraper, IconCalendarEvent, IconLink, IconMap, IconUser, IconUsers, } from '@/ui/icons/index'; import { getCheckBoxColumn } from '@/ui/tables/utils/getCheckBoxColumn'; import { GetCompaniesQuery, useUpdateCompanyMutation, } from '~/generated/graphql'; const columnHelper = createColumnHelper(); export const useCompaniesColumns = () => { const [updateCompany] = useUpdateCompanyMutation(); return useMemo(() => { return [ getCheckBoxColumn(), columnHelper.accessor('name', { header: () => ( } /> ), cell: (props) => ( ), size: 180, }), columnHelper.accessor('domainName', { header: () => ( } /> ), cell: (props) => ( { const company = { ...props.row.original }; company.domainName = value; updateCompany({ variables: { ...company, accountOwnerId: company.accountOwner?.id, }, }); }} /> ), size: 100, }), columnHelper.accessor('employees', { header: () => ( } /> ), cell: (props) => ( { const company = { ...props.row.original }; updateCompany({ variables: { ...company, employees: value === '' ? null : Number(value), accountOwnerId: company.accountOwner?.id, }, }); }} /> ), size: 150, }), columnHelper.accessor('address', { header: () => ( } /> ), cell: (props) => ( { const company = { ...props.row.original }; company.address = value; updateCompany({ variables: { ...company, accountOwnerId: company.accountOwner?.id, }, }); }} /> ), size: 170, }), columnHelper.accessor('createdAt', { header: () => ( } /> ), cell: (props) => ( { const company = { ...props.row.original }; company.createdAt = value.toISOString(); updateCompany({ variables: { ...company, accountOwnerId: company.accountOwner?.id, }, }); }} /> ), size: 150, }), columnHelper.accessor('accountOwner', { header: () => ( } /> ), cell: (props) => ( ), }), ]; }, [updateCompany]); };