import { Box, Divider } from '@mantine/core'; import { type MRT_Header, type MRT_TableInstance } from '../types'; import { getPrimaryColor } from '../column.utils'; interface Props = {}> { header: MRT_Header; table: MRT_TableInstance; } export const MRT_TableHeadCellResizeHandle = < TData extends Record = {}, >({ header, table, }: Props) => { const { getState, options: { columnResizeMode }, setColumnSizingInfo, } = table; const { density } = getState(); const { column } = header; return ( { setColumnSizingInfo((old) => ({ ...old, isResizingColumn: false, })); column.resetSize(); }} onMouseDown={header.getResizeHandler()} onTouchStart={header.getResizeHandler()} sx={(theme) => ({ cursor: 'col-resize', marginRight: density === 'xl' ? '-24px' : density === 'md' ? '-20px' : '-14px', position: 'absolute', right: '4px', paddingLeft: '1px', paddingRight: '1px', '&:active > .mantine-Divider-vertical': { borderLeftColor: getPrimaryColor(theme), }, })} style={{ transform: column.getIsResizing() && columnResizeMode === 'onEnd' ? `translateX(${getState().columnSizingInfo.deltaOffset ?? 0}px)` : undefined, }} > ); };