@xcelsior/ui-spreadsheets 1.1.16 → 1.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xcelsior/ui-spreadsheets",
3
- "version": "1.1.16",
3
+ "version": "1.1.17",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "dependencies": {
@@ -89,6 +89,7 @@ export function Spreadsheet<T extends Record<string, any>>({
89
89
  onSelectionChange,
90
90
  onSortChange,
91
91
  onFilterChange,
92
+ afterFiltered,
92
93
  onRowClick,
93
94
  onRowDoubleClick,
94
95
  onAddCellComment,
@@ -548,6 +549,15 @@ export function Spreadsheet<T extends Record<string, any>>({
548
549
  }
549
550
  }, [totalPages, currentPage, serverSide]);
550
551
 
552
+ // Store afterFiltered in a ref to avoid re-running effect when callback changes
553
+ const afterFilteredRef = useRef(afterFiltered);
554
+ afterFilteredRef.current = afterFiltered;
555
+
556
+ // Call afterFiltered callback when filtered data changes
557
+ useEffect(() => {
558
+ afterFilteredRef.current?.(filteredData.toArray());
559
+ }, [filteredData]);
560
+
551
561
  // ==================== EVENT HANDLERS ====================
552
562
 
553
563
  const handleRowSelect = useCallback(
@@ -1036,7 +1046,10 @@ export function Spreadsheet<T extends Record<string, any>>({
1036
1046
  column={column}
1037
1047
  filter={filters[column.id]}
1038
1048
  onFilterChange={(filter) =>
1039
- handleFilterChangeWithReset(column.id, filter)
1049
+ handleFilterChangeWithReset(
1050
+ column.id,
1051
+ filter
1052
+ )
1040
1053
  }
1041
1054
  onClose={() => setActiveFilterColumn(null)}
1042
1055
  />
package/src/types.ts CHANGED
@@ -355,6 +355,8 @@ export interface SpreadsheetProps<T = any> {
355
355
  onSortChange?: (sortConfig: SpreadsheetSortConfig | null) => void;
356
356
  /** Callback when filters change */
357
357
  onFilterChange?: (filters: Record<string, SpreadsheetColumnFilter>) => void;
358
+ /** Callback with filtered data after filters are applied */
359
+ afterFiltered?: (filteredData: T[]) => void;
358
360
  /** Callback for row click */
359
361
  onRowClick?: (row: T, rowIndex: number) => void;
360
362
  /** Callback for row double click */