Repository navigation
Releases: adambirds/tablewind
Releases · adambirds/tablewind
Release list
v4.2.0
[v4.2.0] - 2026-01-21
Added
- Autocomplete Filter Type: New
autocompletefilter type forFilterFieldthat provides a searchable dropdown with typeahead functionality:- Real-time filtering of options as user types
- Keyboard navigation support (Enter to select, Escape to close)
- Clear button to reset selection
- Consistent dark/light mode styling
- New
placeholderproperty onFilterFieldinterface for customizing input placeholder text
- AutocompleteDropdown Component: New standalone component exported for use outside of FilterBar
Changed
- Search Debounce: Increased search input debounce from 300ms to 600ms to allow more time for typing before triggering API calls
v4.1.1
[v4.1.1] - 2026-01-13
Fixed
- Mobile "Add New" Button: Added the "Add New" button to the mobile view (
TableActionsBarMobile) that was previously only available on desktop. The button now appears next to the "Show Filters" button in the mobile header whenaddNewUrlprop is provided.
v4.1.0
[v4.1.0] - 2025-12-05
Added
- Search Functionality: Added support for search with flexible implementation options:
searchEnabledprop: Enable internal search bar within the table header (both desktop and mobile)searchPlaceholderprop: Customize the search input placeholder text- External search support: Any external component (e.g., navbar search) can add
?search=valueto URL parameters - Search automatically syncs with URL query parameters
- Reset filters now also clears search parameter
- New
SearchBarcomponent exported for external use - Debounced search input (300ms) to optimize API calls
Changed
- Updated
DataTablePropsinterface with new search-related props - Modified filter reset functionality to include search parameter clearing
- Updated
TableActionsBarDesktopandTableActionsBarMobilecomponents to support search
v4.0.1
[v4.0.1] - 2025-09-13
Fixed
- onEditSave Callback: Fixed bug where the
revalidatefunction was not being passed to theonEditSavecallback, causing inline editing to not refresh data after successful saves - Type Definitions: Updated
InlineEditCallbacksinterface to properly include therevalidateparameter in theonEditSavecallback signature
v4.0.0
[v4.0.0] - 2025-09-12
🚨 BREAKING CHANGES
- Function Signatures Updated: The
onRowSelectcallback now receives optional second and third parameters:clearSelectionsAfterAction?: () => void, revalidate?: () => void - Bulk Action Signatures Updated: All
BulkActiononClick handlers now receive optional second and third parameters:clearSelectionsAfterAction?: () => void, revalidate?: () => void
Added
- Selection Alert Feature: New
showSelectionAlertprop to display selection count when any items are selected (instead of only when all items are selected) - Keep Selected Option: New
showKeepSelectedOptionprop to show a checkbox allowing users to keep selections after bulk actions - Data Revalidation Support: Added
revalidatefunction to callbacks, enabling data refresh without component re-mounting - Enhanced Bulk Actions: Bulk actions now receive
clearSelectionsAfterActionandrevalidatefunctions for better control over selection state and data freshness
Changed
- CSS Variables: Updated hardcoded colors in checkbox inputs to use consistent CSS variable theming system
- Selection Persistence: Improved selection state management to work better with data revalidation
Migration Guide
Breaking Changes
-
onRowSelect callback (optional parameters added):
// Before onRowSelect?: (selectedIds: string[]) => void; // After onRowSelect?: ( selectedIds: string[], clearSelectionsAfterAction?: () => void, revalidate?: () => void ) => void;
-
BulkAction onClick handlers (optional parameters added):
// Before onClick: (selectedIds: string[]) => void; // After onClick: ( selectedIds: string[], clearSelectionsAfterAction?: () => void, revalidate?: () => void ) => void;
Recommended Migration (for new features)
To use the new "keep selected" functionality, replace component re-mounting patterns with the new revalidate function:
// Current approach (still works, but prevents "keep selected" from working)
const [refreshKey, setRefreshKey] = useState(0);
<DataTable key={refreshKey} {...props} />// Recommended approach (enables "keep selected" functionality)
<DataTable
bulkActions={[
{
key: "delete",
label: "Delete Selected",
onClick: (
selectedIds: string[],
clearSelectionsAfterAction?: () => void,
revalidate?: () => void
) => {
performBulkAction(selectedIds).then(() => {
revalidate?.(); // Refresh data without losing selections
clearSelectionsAfterAction?.(); // Conditionally clear based on user preference
});
},
},
]}
showSelectionAlert
showKeepSelectedOption
{...otherProps}
/>