import type { CSSProperties, MouseEvent } from 'react'; import { FaSortAmountDown, FaSortAmountUp } from 'react-icons/fa'; interface TableCellEvent { onClick: (e: MouseEvent) => void; } interface ReactTableHeaderProps extends TableCellEvent { headerGroups: any; } const sortIconStyle: CSSProperties = { position: 'absolute', top: '50%', transform: 'translateY(-50%)', left: '2px', }; function ReactTableHeader({ headerGroups, onClick }: ReactTableHeaderProps) { return ( {headerGroups.map((headerGroup: any) => { const { key: headerGroupKey, ...restHeaderGroupProps } = headerGroup.getHeaderGroupProps(); return ( {headerGroup.headers.map((column: any) => ( ))} ); })} ); } interface HeaderCellProps extends TableCellEvent { column: any; } const HeaderCell = (props: HeaderCellProps) => { const { column } = props; const { key: headerKey, style: headerStyle, onClick, ...restHeaderProps } = column.getHeaderProps(column.getSortByToggleProps()); function clickHandler(e: MouseEvent) { if (onClick) { onClick(e); props.onClick(e); } } return ( {column.isSorted ? ( column.isSortedDesc ? ( ) : ( ) ) : ( '' )} {column?.render('Header')} ); }; export default ReactTableHeader;