@@ -66,7 +66,7 @@ export const TableHeadCell = <T,>({
6666 onCellUnMount,
6767 onColumnsResize,
6868} : TableHeadCellProps < T > ) => {
69- const cellWrapperRef = React . useRef < HTMLDivElement > ( null ) ;
69+ const cellWrapperRef = React . useRef < HTMLTableCellElement > ( null ) ;
7070
7171 React . useEffect ( ( ) => {
7272 const cellWrapper = cellWrapperRef . current ;
@@ -93,44 +93,43 @@ export const TableHeadCell = <T,>({
9393
9494 const content = column . header ?? column . name ;
9595
96+ const style = {
97+ height : `${ rowHeight } px` ,
98+ width : `${ column . width } px` ,
99+ // Additional minWidth and maxWidth for resizeable columns to ensure proper resize
100+ minWidth : resizeable ? `${ column . width } px` : undefined ,
101+ maxWidth : resizeable ? `${ column . width } px` : undefined ,
102+ } ;
103+
96104 return (
97- < th >
105+ < th ref = { cellWrapperRef } className = { b ( 'head-cell-wrapper' ) } style = { style } >
98106 < div
99- ref = { cellWrapperRef }
100- className = { b ( 'head-cell-wrapper' ) }
101- style = { {
102- height : `${ rowHeight } px` ,
103- width : `${ column . width } px` ,
107+ className = { b (
108+ 'head-cell' ,
109+ { align : column . align , sortable : column . sortable } ,
110+ column . className ,
111+ ) }
112+ onClick = { ( ) => {
113+ if ( column . sortable ) {
114+ onSort ?.( column . name ) ;
115+ }
104116 } }
105117 >
106- < div
107- className = { b (
108- 'head-cell' ,
109- { align : column . align , sortable : column . sortable } ,
110- column . className ,
111- ) }
112- onClick = { ( ) => {
113- if ( column . sortable ) {
114- onSort ?.( column . name ) ;
115- }
116- } }
117- >
118- < div className = { b ( 'head-cell-content' ) } > { content } </ div >
119- < ColumnSortIcon
120- sortOrder = { sortOrder }
121- sortable = { column . sortable }
122- defaultSortOrder = { defaultSortOrder }
123- />
124- </ div >
125- { resizeable ? (
126- < ResizeHandler
127- maxWidth = { column . resizeMaxWidth }
128- minWidth = { column . resizeMinWidth }
129- getCurrentColumnWidth = { getCurrentColumnWidth }
130- onResize = { handleResize }
131- />
132- ) : null }
118+ < div className = { b ( 'head-cell-content' ) } > { content } </ div >
119+ < ColumnSortIcon
120+ sortOrder = { sortOrder }
121+ sortable = { column . sortable }
122+ defaultSortOrder = { defaultSortOrder }
123+ />
133124 </ div >
125+ { resizeable ? (
126+ < ResizeHandler
127+ maxWidth = { column . resizeMaxWidth }
128+ minWidth = { column . resizeMinWidth }
129+ getCurrentColumnWidth = { getCurrentColumnWidth }
130+ onResize = { handleResize }
131+ />
132+ ) : null }
134133 </ th >
135134 ) ;
136135} ;
@@ -183,7 +182,7 @@ export const TableHead = <T,>({
183182
184183 const renderTableColGroups = ( ) => {
185184 return (
186- < colgroup className = { b ( 'colgroup' ) } >
185+ < colgroup >
187186 { columns . map ( ( column ) => {
188187 return < col key = { column . name } style = { { width : `${ column . width } px` } } /> ;
189188 } ) }
@@ -194,7 +193,7 @@ export const TableHead = <T,>({
194193 const renderTableHead = ( ) => {
195194 return (
196195 < thead className = { b ( 'head' ) } >
197- < tr className = { b ( 'head-row' ) } >
196+ < tr >
198197 { columns . map ( ( column ) => {
199198 const sortOrder =
200199 sortParams . columnId === column . name ? sortParams . sortOrder : undefined ;
0 commit comments