import { forwardRef, useState, useCallback, useEffect } from 'react' import Block from '../../Primitives/Block/Block' import PrimitiveText from '../../Primitives/PrimitiveText/PrimitiveText' import Button from '../../Button/Button' import { ButtonSize, ButtonType } from '../../Button/types' // eslint-disable-next-line import-x/no-cycle -- intentional recursion: the pivot preview renders a nested DataTable import DataTable from '../DataTable' import { NoScrollbar } from './pivotModal.styled' import { PivotTableIllustration } from './PivotTableIllustration' import type { PivotPreviewPanelProps } from './types' import type { ColumnDefinition } from '../types' const PivotPreviewPanel = forwardRef( ( { pivot, tableToken, showExport, previewRows, previewTableColumns: initialColumns, onExport, hasValues, }, ref ) => { const [previewTableColumns, setPreviewTableColumns] = useState>[]>( initialColumns ) useEffect(() => { setPreviewTableColumns(initialColumns) }, [initialColumns]) const handleHeaderChange = useCallback( (field: keyof Record, newHeader: string) => { setPreviewTableColumns((prev) => prev.map((col) => col.field === field ? { ...col, header: newHeader } : col ) ) }, [] ) const hasPreviewGrid = previewTableColumns.length > 0 && previewRows && previewRows.length > 0 const showEmptyState = !hasValues || !hasPreviewGrid return ( {showEmptyState ? ( Rows ) : ( {showExport && (