import clsx from 'clsx'; import { CSSProperties, PropsWithChildren, ReactNode } from 'react'; import { TableHeaderSortIcons } from './TableHeaderSortIcons'; interface Props { canSort: boolean; isSorted: boolean; isSortedDesc?: boolean; onSortClick: (desc: boolean) => void; render: () => ReactNode; renderFilter?: () => ReactNode; className?: string; style?: CSSProperties; } export function TableHeaderCell({ canSort, render, onSortClick, isSorted, isSortedDesc = true, renderFilter, className, style, }: Props) { return (
{render()} {renderFilter ? renderFilter() : null}
); } interface SortWrapperProps { canSort: boolean; isSorted: boolean; isSortedDesc?: boolean; onClick?: (desc: boolean) => void; } function SortWrapper({ canSort, children, onClick = () => {}, isSorted, isSortedDesc = true, }: PropsWithChildren) { if (!canSort) { return <>{children}; } return ( ); } export interface TableColumnHeaderAngularProps { colTitle: string; canSort: boolean; isSorted?: boolean; isSortedDesc?: boolean; } export function TableColumnHeaderAngular({ canSort, isSorted, colTitle, isSortedDesc = true, children, }: PropsWithChildren) { return (
{colTitle} {children}
); }