import { useMemo } from 'react'; import { TbBuilding, TbCalendar, TbMail, TbMapPin, TbPhone, TbUser, } from 'react-icons/tb'; import { createColumnHelper } from '@tanstack/react-table'; import { EditablePeopleFullName } from '@/people/components/EditablePeopleFullName'; import { PeopleCompanyCell } from '@/people/components/PeopleCompanyCell'; import { Person } from '@/people/interfaces/person.interface'; import { updatePerson } from '@/people/services'; import { EditableDate } from '@/ui/components/editable-cell/types/EditableDate'; import { EditablePhone } from '@/ui/components/editable-cell/types/EditablePhone'; import { EditableText } from '@/ui/components/editable-cell/types/EditableText'; import { ColumnHead } from '@/ui/components/table/ColumnHead'; import { getCheckBoxColumn } from '@/ui/tables/utils/getCheckBoxColumn'; const columnHelper = createColumnHelper(); export const usePeopleColumns = () => { return useMemo(() => { return [ getCheckBoxColumn(), columnHelper.accessor('firstname', { header: () => ( } /> ), cell: (props) => ( <> { const person = props.row.original; person.firstname = firstName; person.lastname = lastName; await updatePerson(person); }} personId={props.row.original.id} /> ), size: 210, }), columnHelper.accessor('email', { header: () => ( } /> ), cell: (props) => ( { const person = props.row.original; person.email = value; updatePerson(person); }} /> ), size: 200, }), columnHelper.accessor('company', { header: () => ( } /> ), cell: (props) => , size: 150, }), columnHelper.accessor('phone', { header: () => ( } /> ), cell: (props) => ( { const person = props.row.original; person.phone = value; updatePerson(person); }} /> ), size: 130, }), columnHelper.accessor('createdAt', { header: () => ( } /> ), cell: (props) => ( { const person = props.row.original; person.createdAt = value; updatePerson(person); }} /> ), size: 100, }), columnHelper.accessor('city', { header: () => ( } /> ), cell: (props) => ( { const person = props.row.original; person.city = value; updatePerson(person); }} /> ), }), ]; }, []); };