import { CSSProperties } from 'react'; import { horizontalListSortingStrategy, SortableContext } from '@dnd-kit/sortable'; import { flexRender, HeaderGroup } from '@tanstack/react-table'; import type { ExtendedEntry } from '../../../../common/utils/rundownMetadata'; import { getAccessibleColour } from '../../../../common/utils/styleUtils'; import { AppMode } from '../../../../ontimeConfig'; import { usePersistedCuesheetOptions } from '../../cuesheet.options'; import { Draggable, SortableCell, TableCell } from './SortableCell'; import style from '../CuesheetTable.module.scss'; interface CuesheetHeaderProps { headerGroup: HeaderGroup; cuesheetMode: AppMode; } export function SortableCuesheetHeader({ headerGroup, cuesheetMode }: CuesheetHeaderProps) { const hideIndexColumn = usePersistedCuesheetOptions((state) => state.hideIndexColumn); return ( {cuesheetMode === AppMode.Edit && } {!hideIndexColumn && ( # )} {headerGroup.headers.map((header) => { const customBackground = header.column.columnDef.meta?.colour; const canWrite = header.column.columnDef.meta?.canWrite; const customStyles: CSSProperties = { opacity: canWrite ? 1 : 0.6, }; if (customBackground) { const customColour = getAccessibleColour(customBackground); customStyles.backgroundColor = customColour.backgroundColor; customStyles.color = customColour.color; } return ( } > {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} ); })} ); } export function CuesheetHeader({ headerGroup, cuesheetMode }: CuesheetHeaderProps) { const hideIndexColumn = usePersistedCuesheetOptions((state) => state.hideIndexColumn); return ( {cuesheetMode === AppMode.Edit && } {!hideIndexColumn && ( # )} {headerGroup.headers.map((header) => { const customBackground = header.column.columnDef.meta?.colour; const canWrite = header.column.columnDef.meta?.canWrite; const customStyles: CSSProperties = { opacity: canWrite ? 1 : 0.6, }; if (customBackground) { const customColour = getAccessibleColour(customBackground); customStyles.backgroundColor = customColour.backgroundColor; customStyles.color = customColour.color; } return ( } > {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())} ); })} ); }