@@ -26,7 +26,7 @@ import {
26
26
import { classNames } from '@react-spectrum/utils' ;
27
27
import { FocusRing , useFocusRing } from '@react-aria/focus' ;
28
28
import { mergeProps , useLayoutEffect , useResizeObserver } from '@react-aria/utils' ;
29
- import React , { useCallback , useState } from 'react' ;
29
+ import React , { useCallback , useMemo , useState } from 'react' ;
30
30
import styles from '@adobe/spectrum-css-temp/components/table/vars.css' ;
31
31
import { useCheckbox } from '@react-aria/checkbox' ;
32
32
import { useRef } from 'react' ;
@@ -69,6 +69,7 @@ export function Table(props) {
69
69
state ,
70
70
ref
71
71
) ;
72
+ let layout = useMemo ( ( ) => ( { ...layoutState , tableState : state } ) , [ layoutState , state ] ) ;
72
73
73
74
useLayoutEffect ( ( ) => {
74
75
if ( bodyRef && bodyRef . current ) {
@@ -85,7 +86,7 @@ export function Table(props) {
85
86
{ [ ...headerRow . childNodes ] . map ( column =>
86
87
column . props . isSelectionCell
87
88
? < TableSelectAllCell key = { column . key } column = { column } state = { state } widths = { widths } />
88
- : < TableColumnHeader key = { column . key } column = { column } state = { state } widths = { widths } layoutState = { layoutState } onResizeStart = { props . onResizeStart } onResize = { props . onResize } onResizeEnd = { props . onResizeEnd } />
89
+ : < TableColumnHeader key = { column . key } column = { column } state = { state } widths = { widths } layout = { layout } onResizeStart = { props . onResizeStart } onResize = { props . onResize } onResizeEnd = { props . onResizeEnd } />
89
90
) }
90
91
</ TableHeaderRow >
91
92
) ) }
@@ -125,16 +126,15 @@ export function TableHeaderRow({item, state, children, className}) {
125
126
</ tr >
126
127
) ;
127
128
}
128
- function Resizer ( { column, state , layoutState , onResizeStart, onResize, onResizeEnd} ) {
129
+ function Resizer ( { column, layout , onResizeStart, onResize, onResizeEnd} ) {
129
130
let ref = useRef ( null ) ;
130
131
let { resizerProps, inputProps} = useTableColumnResize ( {
131
132
column,
132
133
label : 'Resizer' ,
133
134
onResizeStart,
134
135
onResize,
135
- onResizeEnd,
136
- tableState : state
137
- } as AriaTableColumnResizeProps < any > , layoutState , ref ) ;
136
+ onResizeEnd
137
+ } as AriaTableColumnResizeProps < any > , layout , ref ) ;
138
138
139
139
return (
140
140
< >
@@ -163,7 +163,7 @@ function Resizer({column, state, layoutState, onResizeStart, onResize, onResizeE
163
163
</ >
164
164
) ;
165
165
}
166
- export function TableColumnHeader ( { column, state, widths, layoutState , onResizeStart, onResize, onResizeEnd} ) {
166
+ export function TableColumnHeader ( { column, state, widths, layout , onResizeStart, onResize, onResizeEnd} ) {
167
167
let ref = useRef ( ) ;
168
168
let { columnHeaderProps} = useTableColumnHeader ( { node : column } , state , ref ) ;
169
169
let { isFocusVisible, focusProps} = useFocusRing ( ) ;
@@ -197,7 +197,7 @@ export function TableColumnHeader({column, state, widths, layoutState, onResizeS
197
197
</ div >
198
198
{
199
199
column . props . allowsResizing &&
200
- < Resizer column = { column } state = { state } layoutState = { layoutState } onResizeStart = { onResizeStart } onResize = { onResize } onResizeEnd = { onResizeEnd } />
200
+ < Resizer column = { column } layout = { layout } onResizeStart = { onResizeStart } onResize = { onResize } onResizeEnd = { onResizeEnd } />
201
201
}
202
202
</ div >
203
203
</ th >
0 commit comments