import {LocationDescriptorObject} from 'history'; import {GridColumnOrder, GridColumnSortBy} from 'sentry/components/gridEditable'; import SortLink from 'sentry/components/gridEditable/sortLink'; interface TableHeadProps { currentSort?: GridColumnSortBy | null; generateSortLink?: (column: K) => () => LocationDescriptorObject | undefined; onClick?(column: GridColumnOrder, e: React.MouseEvent): void; rightAlignedColumns?: Set; sortableColumns?: Set; } export function renderTableHead({ currentSort, generateSortLink, rightAlignedColumns, sortableColumns, onClick, }: TableHeadProps) { return (column: GridColumnOrder, _columnIndex: number) => { return ( onClick?.(column, e)} align={rightAlignedColumns?.has(column.key) ? 'right' : 'left'} title={column.name} direction={currentSort?.key === column.key ? currentSort?.order : undefined} canSort={sortableColumns?.has(column.key) || false} generateSortLink={generateSortLink?.(column.key) ?? (() => undefined)} replace /> ); }; }