import { horizontalListSortingStrategy, SortableContext } from '@dnd-kit/sortable'; import { flexRender, HeaderGroup } from '@tanstack/react-table'; import { OntimeEntry } from 'ontime-types'; import { getAccessibleColour } from '../../../../common/utils/styleUtils'; import { useCuesheetOptions } from '../../cuesheet.options'; import { SortableCell } from './SortableCell'; import style from '../CuesheetTable.module.scss'; interface CuesheetHeaderProps { headerGroups: HeaderGroup[]; } export default function CuesheetHeader({ headerGroups }: CuesheetHeaderProps) { const { hideIndexColumn, showActionMenu } = useCuesheetOptions(); return ( {headerGroups.map((headerGroup) => { const key = headerGroup.id; return ( {showActionMenu && } {!hideIndexColumn && ( # )} {headerGroup.headers.map((header) => { const width = header.getSize(); // @ts-expect-error -- we inject this into react-table const customBackground = header.column.columnDef?.meta?.colour; let customStyles = {}; if (customBackground) { const customColour = getAccessibleColour(customBackground); customStyles = { backgroundColor: customColour.backgroundColor, color: customColour.color }; } return ( {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} ); })} ); })} ); }