import type { JSX } from "react"
import { useCallback } from "react"
import { SortableHeader, TableHead } from "../Table"
interface TableHeaderProps {
header: any
getWidthStyle: (column: any) => React.CSSProperties
renderHeaderContent: (header: any) => React.ReactNode
}
export function TableHeaderComponent({
header,
getWidthStyle,
renderHeaderContent,
}: TableHeaderProps): JSX.Element {
const renderSortableHeader = useCallback(
(header: any) => (
header.column.toggleSorting(direction === "desc")}
onHide={() => header.column.toggleVisibility(false)}
style={getWidthStyle(header.column)}
>
{renderHeaderContent(header)}
),
[getWidthStyle, renderHeaderContent],
)
const renderRegularHeader = useCallback(
(header: any) => (
{renderHeaderContent(header)}
),
[getWidthStyle, renderHeaderContent],
)
return header.column.getCanSort() ? renderSortableHeader(header) : renderRegularHeader(header)
}