- feat: add
TableHeaderRowto customizablecomponentsprop, allowing custom header row rendering
- Build output restructured:
lib/→dist/cjs/,es/→dist/esm/,types/→dist/types/,styles.css→dist/styles.css- CSS import changed from
react-base-table/styles.csstoreact-base-table/dist/styles.css - SCSS import changed from
~react-base-table/es/_BaseTable.scsstoreact-base-table/dist/esm/_BaseTable.scss
- CSS import changed from
- Peer dependency: requires React >= 17.0.2 (dropped IE11 support)
- Removed hand-written
types/index.d.ts: replaced by auto-generated declarations from TypeScript source
- TypeScript: rewritten all source files (
src/) and specs (spec/) in TypeScript; ships.d.tsdeclarations out of the box - Exported types:
ColumnShape,RowData,RowKey,CellRendererProps,HeaderRendererProps,RowRendererProps,ScrollArgs,SortByShape,SortState,TableComponents, and more - New utility export:
cloneArray
- Upgraded all dev dependencies: ESLint 9, Jest 30, Prettier 3, Husky 9, Sass (Dart), TypeScript 6
- Replaced
node-sasswithsass(Dart Sass) - Replaced
react-test-rendererwith@testing-library/react - Migrated ESLint from
.eslintrcto flat config (eslint.config.mjs) with@typescript-eslint/parser - Moved test files from
src/to dedicatedspec/directory
- fix:
_handleRowExpandexpand logic was always true (!arr.indexOf(x) >= 0→arr.indexOf(x) < 0)
- Upgraded Gatsby 2 → 4, React 16 → 18, and all associated plugins
- Migrated
faker→@faker-js/fakerv8 - Fixed navigation links, code block rendering, and live code examples
- fix: stop using React.Key in typings (#428)
- fix: allow any react node to be used as column title
- fix: pass extra sorting props to custom SortIndicator component
- fix: error imported by optimization render task
- fix: optimization render task performance
- fix: change propTypes for
BaseTable.components - feat: add support for React 17
- feat: add the ability to pass function in
estimatedRowHeightto determine the initial height of rows
- fix: remove propTypes for Column.key
- fix: add missing types for propTypes of
BaseTable
- fix: add types folder into packages
- chore: mark
Column.keyas required
- feat: add
ignoreFunctionInColumnCompareto solve closure problem in renderers - chore: skip unnecessary cloneElement in
renderElement - feat: add type declarations
- fix: input loses focus on unmount
- fix: scroll position would be reset to top if column becomes frozen
- fix:
getTotalRowsHeightcould be different before/after render in dynamic mode on initial render
- fix:
getTotalRowsHeightcould be different before/after render in dynamic mode
- chore: do not clear row height cache automatically
- fix: flicker on expanding in dynamic mode
- fix: horizontal scrollbar in flex mode with dynamic row height
- chore: tweak row height measurement
- fix: regression of expansion with frozen columns
- fix: dynamic rowHeight is not updated when
dataorcolumnschanged
- fix: dynamic rowHeight is not calculated correctly with frozen columns
- fix: dynamic rowHeight is not updated when resizing column
- feat: add
estimatedRowHeightto support dynamic row height
- chore: loosen prop type check for
data
- fix: wrong description for Column props
- fix: frozen data not shown with empty data
- reverted #80, now custom renderer doesn't support top level hooks, see #109
- feat: add
onColumnResizeEndprop toBaseTable
- fix:
unflattenshould not override the existing children
- feat: remove deprecated lifecycles for concurrent mode ready
- fix: fix possible memory leak in
ColumnResizer - fix: bring back column resize on touch events support
fix: custom renderers should support function component with hooks
- fix:
scrollToRowdoesn't work regression introduced in #73
- chore: remove the use of
Object.values - feat: add
getColumnManagerandgetDOMNodemethods
- fix: style value
unsetis not supported on IE
- fix: content been selected when dragging on IE/FF (regression from #56)
- fix:
minWidthis passed to dom node inColumnResizerin #56
- fix:
getValuereturns the object itself if the path is not valid string
- feat: support infinite loading with
maxHeight - chore: remove unused
$table-border-radiusvariable - feat: add
sortStateto support multi sort
- refactor: remove dependent on
react-draggable - fix: undefined parentId should be considered as root item
- fix:
flattenOnKeysnot works with immutable data (regression from #23)
- refactor: remove dependent on
lodash, and exportgetValue - build: use
@babel/plugin-transform-runtimeto reduce bundle size
- fix: use
PropTypes.elementTypefortagName's type
- fix: resizing line rendered incorrectly when resizing the right frozen column
- chore: upgrade
react-windowto silence the deprecation
- feat: allow
rowKeyto benumber - feat: add
getScrollbarSizetoBaseTableto custom scrollbar size measurement
- perf: optimize
unflattenandflattenOnKeysto not use recursion
- fix: scrollbar size don't updated in SSR
- chore: more accurate
onScrollbarPresenceChange - feat: replace
react-virtualizedwithreact-window - feat: add scroll direction to
onScroll - feat: add
aligntoscrollToRow
- fix:
flattenOnKeysmemoize is opt out becausethis._depthMapchanges everytime - fix: hover state is out of sync in frozen rows, regression introduced in #9
- chore: stop using
Gridfor table's header - chore: add
roleto table's elements - chore: stop using
forceUpdateto update the table - fix: table's header is re-rendered unnecessarily on row hovered
- fix:
onScrollis called redundantly if there are frozen columns
- fix: header row's height doesn't update on
headerHeightchange
Initial public release