import { useMemo } from 'react'; import { CellContext, createColumnHelper } from '@tanstack/react-table'; import { Person } from '../../interfaces/entities/person.interface'; import { updatePerson } from '../../services/api/people'; import ColumnHead from '../../components/table/ColumnHead'; import Checkbox from '../../components/form/Checkbox'; import { SelectAllCheckbox } from '../../components/table/SelectAllCheckbox'; import EditablePhone from '../../components/editable-cell/EditablePhone'; import { EditablePeopleFullName } from '../../components/people/EditablePeopleFullName'; import EditableDate from '../../components/editable-cell/EditableDate'; import EditableText from '../../components/editable-cell/EditableText'; import { TbBuilding, TbCalendar, TbMail, TbMapPin, TbPhone, TbUser, } from 'react-icons/tb'; import { PeopleCompanyCell } from '../../components/people/PeopleCompanyCell'; const columnHelper = createColumnHelper(); export const usePeopleColumns = () => { return useMemo(() => { return [ { id: 'select', header: ({ table }: any) => ( ), cell: (props: CellContext) => ( ), size: 25, }, columnHelper.accessor('firstname', { header: () => ( } /> ), cell: (props) => ( { const person = props.row.original; person.firstname = firstName; person.lastname = lastName; await updatePerson(person); }} /> ), size: 200, }), 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('creationDate', { header: () => ( } /> ), cell: (props) => ( { const person = props.row.original; person.creationDate = value; updatePerson(person); }} /> ), size: 100, }), columnHelper.accessor('city', { header: () => ( } /> ), cell: (props) => ( { const person = props.row.original; person.city = value; updatePerson(person); }} /> ), }), ]; }, []); };