Skip to content

v0.17.0

Latest

Choose a tag to compare

@joaocarmo joaocarmo released this 04 Apr 14:05
· 40 commits to main since this release
034e409

Breaking Changes

  • React 19 minimum: peer dependency narrowed from ^16.8.0 || ^17 || ^18 || ^19 to ^19.0.0. The library now uses React 19's use() hook internally.
  • change-case is now a production dependency: previously bundled into the output, now externalized. It will be auto-installed as a transitive dependency.
  • Renamed type aliases: TransformFN → TransformFn, RowClickFN → RowClickFn, KeyResolverFN → KeyResolverFn. If imported via deep paths, update accordingly.
  • Renamed utility function: isDataURLisDataUrl.
  • Removed unused exports: tail() and debugPrint() from helpers/functions.

New Features

  • rowClassName prop: pass a callback to apply custom class names to individual rows (#205)
<SmartDataTable
  data={data}
  rowClassName={(rowData, rowIndex) =>
    rowIndex % 2 === 0 ? 'odd-row' : 'even-row'
  }
/>
  • ESM output: the library now ships both ES module and UMD builds, with conditional exports in package.json
  • CSS import alias: import 'react-smart-data-table/css' now works alongside the full path

Bug Fixes

  • Fixed stale state read in row deletion by using setState callback form (#203)

Performance

  • Extracted DataRow as a memoized component to avoid re-rendering unchanged rows (#201)
  • Extracted table logic into dedicated hooks (#201)

Infrastructure

  • Migrated build tooling from Webpack + Babel to Vite 8 (#202)
  • Migrated test runner from Jest to Vitest 4 with happy-dom (#202)
  • Migrated GitHub Pages deployment from gh-pages branch to GitHub Actions workflow (#204)
  • Replaced @withshepherd/faker with @faker-js/faker in the example app
  • Removed 21 devDependencies, added 5
  • Upgraded to TypeScript 6

What's Changed

New Contributors

  • @lgtm-com[bot] made their first contribution in #77

Full Changelog: v0.16.0...v0.17.0