'use client'
import type { GridRow } from './types'
interface GridTableRowHeaderProps {
row: GridRow
zoneIndex: number
rowCount: number
rowH: number
onToggleRowHeader: (zoneIndex: number, rowIndex: number) => void
onDeleteRow?: (zoneIndex: number, rowIndex: number) => void
onAddRow?: (zoneIndex: number, afterRowIndex: number) => void
onRowResizeStart: (rowIndex: number, startY: number, currentHeight: number) => void
}
export function GridTableRowHeader({
row,
zoneIndex,
rowCount,
rowH,
onToggleRowHeader,
onDeleteRow,
onAddRow,
onRowResizeStart,
}: GridTableRowHeaderProps) {
return (
onToggleRowHeader(zoneIndex, row.index)}
title={`Zeile ${row.index + 1} — Klick: ${row.is_header ? 'Footer' : row.is_footer ? 'Normal' : 'Header'}`}
>
{row.index + 1}
{row.is_header &&
H}
{row.is_footer &&
F}
{/* Delete row button (visible on hover) */}
{onDeleteRow && rowCount > 1 && (
)}
{/* Add row button (visible on hover, below this row) */}
{onAddRow && (
)}
{/* Bottom-edge resize handle */}
{
e.stopPropagation()
onRowResizeStart(row.index, e.clientY, rowH)
}}
/>
)
}