@@ -24,6 +24,7 @@ import HeaderActions from "./header/actions"
2424import Body from "./body"
2525import usePinning from "./usePinning"
2626import useVisibility from "./useVisibility"
27+ import useSizing from "./useSizing"
2728import useExpanding from "./useExpanding"
2829import usePaginating from "./usePaginating"
2930import useSearching from "./useSearching"
@@ -57,6 +58,10 @@ const Table = memo(
5758 columnVisibility : defaultColumnVisibility ,
5859 onColumnVisibilityChange : visibilityChangeCb ,
5960
61+ enableColumnSizing,
62+ columnSizing : defaultColumnSizing ,
63+ onColumnSizingChange : sizingChangeCb ,
64+
6065 enablePagination,
6166 enableResizing,
6267 enableSelection,
@@ -101,6 +106,8 @@ const Table = memo(
101106 visibilityChangeCb
102107 )
103108
109+ const [ columnSizing , onColumnSizingChange ] = useSizing ( defaultColumnSizing , sizingChangeCb )
110+
104111 const [ columnPinning , onColumnPinningChange ] = usePinning (
105112 defaultColumnPinning ,
106113 pinningChangeCb
@@ -138,6 +145,7 @@ const Table = memo(
138145 filterFns,
139146 state : {
140147 columnVisibility,
148+ columnSizing,
141149 rowSelection,
142150 globalFilter : enableCustomSearch ? "" : globalFilter ,
143151 sorting,
@@ -167,10 +175,12 @@ const Table = memo(
167175 getSubRows : useCallback ( row => row . children , [ ] ) ,
168176 onPaginationChange,
169177 onColumnVisibilityChange,
178+ onColumnSizingChange,
170179 onColumnPinningChange,
171180 enableSubRowSelection,
172181 columnGroupingMode : "reorder" ,
173182 } )
183+
174184 const prevStateRef = useRef ( table . getState ( ) )
175185 table . isEqual = ( selector = identity ) => {
176186 if ( ! prevStateRef . current ) {
@@ -179,6 +189,7 @@ const Table = memo(
179189 }
180190
181191 const areStatesEqual = isEqual ( selector ( prevStateRef . current ) , selector ( table . getState ( ) ) )
192+
182193 prevStateRef . current = table . getState ( )
183194 return areStatesEqual
184195 }
0 commit comments