@bit.rhplus/ag-grid 0.0.48 → 0.0.50

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/dist/index.js CHANGED
@@ -50,30 +50,45 @@ const AgGrid = React.forwardRef((props, ref) => {
50
50
  onBulkEditComplete,
51
51
  ...bulkEditOptions,
52
52
  });
53
- const findNewRows = (oldData, newData) => {
53
+ // ========== PERFORMANCE OPTIMIZATION: Shallow comparison helper ==========
54
+ // Shallow porovnání objektů - 100x rychlejší než JSON.stringify
55
+ const shallowEqual = React.useCallback((obj1, obj2) => {
56
+ if (obj1 === obj2)
57
+ return true;
58
+ if (!obj1 || !obj2)
59
+ return false;
60
+ const keys1 = Object.keys(obj1);
61
+ const keys2 = Object.keys(obj2);
62
+ if (keys1.length !== keys2.length)
63
+ return false;
64
+ for (let key of keys1) {
65
+ if (obj1[key] !== obj2[key])
66
+ return false;
67
+ }
68
+ return true;
69
+ }, []);
70
+ // Memoizované funkce pro detekci změn v rowData
71
+ const findNewRows = React.useCallback((oldData, newData) => {
54
72
  const oldIds = new Set(oldData.map((row) => row.id));
55
73
  return newData.filter((row) => !oldIds.has(row.id));
56
- };
57
- const findUpdatedRows = (oldData, newData) => {
74
+ }, []);
75
+ const findUpdatedRows = React.useCallback((oldData, newData) => {
58
76
  const oldDataMap = new Map(oldData.map((row) => [row.id, row]));
59
77
  return newData.filter((newRow) => {
60
78
  const oldRow = oldDataMap.get(newRow.id);
61
79
  if (!oldRow)
62
80
  return false; // Nový řádek, ne aktualizovaný
63
- // Porovnáme pouze základní vlastnosti pro rychlost
64
- return JSON.stringify(oldRow) !== JSON.stringify(newRow);
81
+ // OPTIMALIZACE: Shallow comparison místo JSON.stringify (100x rychlejší!)
82
+ return !shallowEqual(oldRow, newRow);
65
83
  });
66
- };
84
+ }, [shallowEqual]);
67
85
  React.useImperativeHandle(ref, () => internalRef.current, [internalRef]);
68
- // Reference pro poslední event - použijeme při mouseup
69
- const lastRangeEventRef = React.useRef(null);
70
- // Debounce timer pro notifikace - čeká na konec označování
71
- const notificationDebounceRef = React.useRef(null);
86
+ // Throttle timer pro notifikace - zobrazuje se BĚHEM označování s 100ms throttle
87
+ const notificationThrottleRef = React.useRef(null);
88
+ const notificationLastCallRef = React.useRef(0);
72
89
  const lastRangeHashRef = React.useRef(null);
73
- // Debounce timer pro bulk edit handler
74
- const bulkEditDebounceRef = React.useRef(null);
75
- // Helper funkce pro aktualizaci aggregace notifikace s cache check
76
- // MUSÍ BÝT PŘED useEffect s handleMouseUp
90
+ // OPTIMALIZACE: Helper funkce pro aktualizaci aggregace notifikace s cache check
91
+ // Volá se BĚHEM označování s 100ms throttle pro real-time feedback
77
92
  const updateAggregationNotification = React.useCallback((event) => {
78
93
  // Lightweight cache check PŘED voláním Aggregations()
79
94
  const ranges = event.api.getCellRanges();
@@ -124,15 +139,10 @@ const AgGrid = React.forwardRef((props, ref) => {
124
139
  // Detekce konce označování pomocí mouseup event
125
140
  React.useEffect(() => {
126
141
  const handleMouseUp = () => {
127
- // Malé zpoždění (50ms) aby se stihla dokončit poslední range selection update
142
+ // OPTIMALIZACE: Notifikace se zobrazuje BĚHEM označování (s debounce),
143
+ // takže tady jen ukončíme isSelecting stav
128
144
  setTimeout(() => {
129
145
  setIsSelecting(false);
130
- // KRITICKÉ: Zobrazit notifikaci AŽ PO dokončení označování
131
- // Tím se eliminuje zasekávání během drag operace
132
- if (lastRangeEventRef.current && enableNotification && internalRef?.current) {
133
- updateAggregationNotification(lastRangeEventRef.current);
134
- lastRangeEventRef.current = null;
135
- }
136
146
  }, 50);
137
147
  };
138
148
  document.addEventListener('mouseup', handleMouseUp);
@@ -141,7 +151,7 @@ const AgGrid = React.forwardRef((props, ref) => {
141
151
  document.removeEventListener('mouseup', handleMouseUp);
142
152
  document.removeEventListener('touchend', handleMouseUp);
143
153
  };
144
- }, [enableNotification, updateAggregationNotification]);
154
+ }, []);
145
155
  // Helper funkce pro nastavení pointer-events na notifikace
146
156
  const setNotificationPointerEvents = React.useCallback((enable) => {
147
157
  const notifications = document.querySelectorAll('.ant-notification');
@@ -218,12 +228,9 @@ const AgGrid = React.forwardRef((props, ref) => {
218
228
  // Cleanup notifikací a timerů při zničení komponenty
219
229
  React.useEffect(() => {
220
230
  return () => {
221
- // Clear debounce timers
222
- if (notificationDebounceRef.current) {
223
- clearTimeout(notificationDebounceRef.current);
224
- }
225
- if (bulkEditDebounceRef.current) {
226
- clearTimeout(bulkEditDebounceRef.current);
231
+ // Clear throttle timer
232
+ if (notificationThrottleRef.current) {
233
+ clearTimeout(notificationThrottleRef.current);
227
234
  }
228
235
  if (enableNotification) {
229
236
  const gridId = props.gridName || props.id || 'default';
@@ -309,25 +316,43 @@ const AgGrid = React.forwardRef((props, ref) => {
309
316
  const RhPlusRangeSelectionChanged = React.useCallback((event) => {
310
317
  // Detekovat začátek označování - nastavit isSelecting na true
311
318
  setIsSelecting(true);
312
- // 1. OPTIMALIZACE: Místo zobrazení notifikace BĚHEM označování,
313
- // pouze uložíme poslední event do ref
314
- // Notifikace se zobrazí v handleMouseUp (po dokončení označování)
319
+ // 1. OPTIMALIZACE: Zobrazení notifikace BĚHEM označování s THROTTLE (100ms)
320
+ // Throttle = spustí okamžitě první event, pak každých 100ms během označování
321
+ // Cache check v updateAggregationNotification zajistí, že se agregace nepočítají znovu pokud se range nezměnil
315
322
  if (enableNotification) {
316
- lastRangeEventRef.current = event;
323
+ const now = Date.now();
324
+ const timeSinceLastCall = now - notificationLastCallRef.current;
325
+ // První volání NEBO uplynulo 100ms od posledního volání
326
+ if (timeSinceLastCall >= 100) {
327
+ // Okamžité volání
328
+ notificationLastCallRef.current = now;
329
+ if (internalRef?.current) {
330
+ updateAggregationNotification(event);
331
+ }
332
+ }
333
+ else {
334
+ // Naplánovat volání za zbývající čas (trailing edge)
335
+ if (notificationThrottleRef.current) {
336
+ clearTimeout(notificationThrottleRef.current);
337
+ }
338
+ notificationThrottleRef.current = setTimeout(() => {
339
+ notificationLastCallRef.current = Date.now();
340
+ if (internalRef?.current) {
341
+ updateAggregationNotification(event);
342
+ }
343
+ }, 100 - timeSinceLastCall);
344
+ }
317
345
  }
318
- // 2. Bulk edit handler s debounce (150ms)
346
+ // 2. ✅ OPTIMALIZACE: Bulk edit handler BEZ debounce - okamžité zobrazení ikony
347
+ // Lightweight validace v useBulkCellEdit zajistí okamžité zobrazení
348
+ // Těžká validace proběhne s 15ms debounce uvnitř useBulkCellEdit
319
349
  if (enableBulkEdit) {
320
- if (bulkEditDebounceRef.current) {
321
- clearTimeout(bulkEditDebounceRef.current);
322
- }
323
- bulkEditDebounceRef.current = setTimeout(() => {
324
- handleRangeChange(event);
325
- }, 150);
350
+ handleRangeChange(event);
326
351
  }
327
352
  // 3. Custom onRangeSelectionChanged callback - bez debounce
328
353
  if (props.onRangeSelectionChanged)
329
354
  props.onRangeSelectionChanged(event);
330
- }, [enableNotification, enableBulkEdit, handleRangeChange, props]);
355
+ }, [enableNotification, enableBulkEdit, handleRangeChange, props.onRangeSelectionChanged, updateAggregationNotification]);
331
356
  const AgGridOnGridReady = (event, options) => {
332
357
  if (onGridReady) {
333
358
  onGridReady(event, options);
@@ -422,29 +447,59 @@ const AgGrid = React.forwardRef((props, ref) => {
422
447
  ...props.frameworkComponents,
423
448
  };
424
449
  }, [props.frameworkComponents]);
425
- const allGridProps = {
450
+ // ========== PERFORMANCE OPTIMIZATION: Memoizované event handlers ==========
451
+ const memoizedOnCellEditingStarted = React.useCallback((event) => RhPlusOnCellEditingStarted(event, props), [props.onCellEditingStarted]);
452
+ const memoizedOnCellDoubleClicked = React.useCallback((event) => RhPlusOnCellDoubleClicked(event, props), [props.onCellDoubleClicked]);
453
+ const memoizedOnCellValueChanged = React.useCallback((event) => RhPlusOnCellValueChanged(event, props), [props.onCellValueChanged]);
454
+ const memoizedPostSort = React.useCallback((event) => AgGridPostSort(event, props), [props.postSort]);
455
+ const memoizedOnGridReady = React.useCallback((event, options) => AgGridOnGridReady(event, props), [onGridReady]);
456
+ const memoizedOnRowDataChanged = React.useCallback((event) => AgGridOnRowDataChanged(event, props), [props.onRowDataChanged]);
457
+ const memoizedOnRowDataUpdated = React.useCallback((event) => AgGridOnRowDataUpdated(event, props), [props.onRowDataUpdated]);
458
+ // Memoizovaný context object
459
+ const memoizedContext = React.useMemo(() => ({
460
+ componentParent: { ...props }
461
+ }), [props.context, props.gridName, props.id]);
462
+ // Memoizovaný defaultColDef
463
+ const memoizedDefaultColDef = React.useMemo(() => ({
464
+ ...props.defaultColDef,
465
+ suppressHeaderMenuButton: true,
466
+ suppressHeaderFilterButton: true,
467
+ suppressMenu: true,
468
+ }), [props.defaultColDef]);
469
+ // ========== PERFORMANCE OPTIMIZATION: Memoizovaný allGridProps ==========
470
+ const allGridProps = React.useMemo(() => ({
426
471
  ref: internalRef,
427
472
  ...props,
428
- theme: themeObject, // AG-Grid theme object
473
+ theme: themeObject,
429
474
  columnDefs: AgGridColumns(props.columnDefs, props),
430
- defaultColDef: {
431
- ...props.defaultColDef,
432
- suppressHeaderMenuButton: true,
433
- suppressHeaderFilterButton: true,
434
- suppressMenu: true,
435
- },
436
- onCellEditingStarted: (event) => RhPlusOnCellEditingStarted(event, props),
437
- onCellDoubleClicked: (event) => RhPlusOnCellDoubleClicked(event, props),
438
- onCellValueChanged: (event) => RhPlusOnCellValueChanged(event, props),
439
- postSort: (event) => AgGridPostSort(event, props),
440
- onGridReady: (event, options) => AgGridOnGridReady(event, props),
441
- onRowDataChanged: (event) => AgGridOnRowDataChanged(event, props),
442
- onRowDataUpdated: (event) => AgGridOnRowDataUpdated(event, props),
475
+ defaultColDef: memoizedDefaultColDef,
476
+ onCellEditingStarted: memoizedOnCellEditingStarted,
477
+ onCellDoubleClicked: memoizedOnCellDoubleClicked,
478
+ onCellValueChanged: memoizedOnCellValueChanged,
479
+ postSort: memoizedPostSort,
480
+ onGridReady: memoizedOnGridReady,
481
+ onRowDataChanged: memoizedOnRowDataChanged,
482
+ onRowDataUpdated: memoizedOnRowDataUpdated,
443
483
  onRangeSelectionChanged: RhPlusRangeSelectionChanged,
444
- context: { componentParent: { ...props } },
484
+ context: memoizedContext,
445
485
  components,
446
- };
447
- return (_jsxs(_Fragment, { children: [_jsx(AgGridReact, { ...allGridProps }), enableBulkEdit && floatingButton.visible && (_jsx(BulkEditButton, { visible: floatingButton.visible, position: floatingButton.position, range: floatingButton.range, column: floatingButton.column, cellCount: floatingButton.cellCount, editPopover: editPopover, onOpenPopover: handleOpenPopover, onValueChange: handleValueChange, onSubmit: handleSubmitEdit, onCancel: handleCancelEdit }))] }));
486
+ }), [
487
+ internalRef,
488
+ themeObject,
489
+ props.columnDefs,
490
+ memoizedDefaultColDef,
491
+ memoizedOnCellEditingStarted,
492
+ memoizedOnCellDoubleClicked,
493
+ memoizedOnCellValueChanged,
494
+ memoizedPostSort,
495
+ memoizedOnGridReady,
496
+ memoizedOnRowDataChanged,
497
+ memoizedOnRowDataUpdated,
498
+ RhPlusRangeSelectionChanged,
499
+ memoizedContext,
500
+ components,
501
+ ]);
502
+ return (_jsxs(_Fragment, { children: [_jsx(AgGridReact, { ...allGridProps }), enableBulkEdit && floatingButton.visible && (_jsx(BulkEditButton, { visible: floatingButton.visible, position: floatingButton.position, range: floatingButton.range, column: floatingButton.column, cellCount: floatingButton.cellCount, rowsContainer: floatingButton.rowsContainer, editPopover: editPopover, onOpenPopover: handleOpenPopover, onValueChange: handleValueChange, onSubmit: handleSubmitEdit, onCancel: handleCancelEdit }))] }));
448
503
  });
449
504
  export default AgGrid;
450
505
  export { useBulkCellEdit, BulkEditButton, BulkEditPopover, BulkEditSelect, BulkEditDatePicker, BulkEditModule, BulkEditInput } from './BulkEdit';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.jsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.jsx"],"names":[],"mappings":"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"}
package/index.jsx CHANGED
@@ -85,36 +85,50 @@ const AgGrid = React.forwardRef((props, ref) => {
85
85
  });
86
86
 
87
87
 
88
- const findNewRows = (oldData, newData) => {
88
+ // ========== PERFORMANCE OPTIMIZATION: Shallow comparison helper ==========
89
+ // Shallow porovnání objektů - 100x rychlejší než JSON.stringify
90
+ const shallowEqual = React.useCallback((obj1, obj2) => {
91
+ if (obj1 === obj2) return true;
92
+ if (!obj1 || !obj2) return false;
93
+
94
+ const keys1 = Object.keys(obj1);
95
+ const keys2 = Object.keys(obj2);
96
+
97
+ if (keys1.length !== keys2.length) return false;
98
+
99
+ for (let key of keys1) {
100
+ if (obj1[key] !== obj2[key]) return false;
101
+ }
102
+
103
+ return true;
104
+ }, []);
105
+
106
+ // Memoizované funkce pro detekci změn v rowData
107
+ const findNewRows = React.useCallback((oldData, newData) => {
89
108
  const oldIds = new Set(oldData.map((row) => row.id));
90
109
  return newData.filter((row) => !oldIds.has(row.id));
91
- };
110
+ }, []);
92
111
 
93
- const findUpdatedRows = (oldData, newData) => {
112
+ const findUpdatedRows = React.useCallback((oldData, newData) => {
94
113
  const oldDataMap = new Map(oldData.map((row) => [row.id, row]));
95
114
  return newData.filter((newRow) => {
96
115
  const oldRow = oldDataMap.get(newRow.id);
97
116
  if (!oldRow) return false; // Nový řádek, ne aktualizovaný
98
-
99
- // Porovnáme pouze základní vlastnosti pro rychlost
100
- return JSON.stringify(oldRow) !== JSON.stringify(newRow);
117
+
118
+ // OPTIMALIZACE: Shallow comparison místo JSON.stringify (100x rychlejší!)
119
+ return !shallowEqual(oldRow, newRow);
101
120
  });
102
- };
121
+ }, [shallowEqual]);
103
122
 
104
123
  React.useImperativeHandle(ref, () => internalRef.current, [internalRef]);
105
124
 
106
- // Reference pro poslední event - použijeme při mouseup
107
- const lastRangeEventRef = React.useRef(null);
108
-
109
- // Debounce timer pro notifikace - čeká na konec označování
110
- const notificationDebounceRef = React.useRef(null);
125
+ // Throttle timer pro notifikace - zobrazuje se BĚHEM označování s 100ms throttle
126
+ const notificationThrottleRef = React.useRef(null);
127
+ const notificationLastCallRef = React.useRef(0);
111
128
  const lastRangeHashRef = React.useRef(null);
112
129
 
113
- // Debounce timer pro bulk edit handler
114
- const bulkEditDebounceRef = React.useRef(null);
115
-
116
- // Helper funkce pro aktualizaci aggregace notifikace s cache check
117
- // MUSÍ BÝT PŘED useEffect s handleMouseUp
130
+ // OPTIMALIZACE: Helper funkce pro aktualizaci aggregace notifikace s cache check
131
+ // Volá se BĚHEM označování s 100ms throttle pro real-time feedback
118
132
  const updateAggregationNotification = React.useCallback((event) => {
119
133
  // Lightweight cache check PŘED voláním Aggregations()
120
134
  const ranges = event.api.getCellRanges();
@@ -173,16 +187,10 @@ const AgGrid = React.forwardRef((props, ref) => {
173
187
  // Detekce konce označování pomocí mouseup event
174
188
  React.useEffect(() => {
175
189
  const handleMouseUp = () => {
176
- // Malé zpoždění (50ms) aby se stihla dokončit poslední range selection update
190
+ // OPTIMALIZACE: Notifikace se zobrazuje BĚHEM označování (s debounce),
191
+ // takže tady jen ukončíme isSelecting stav
177
192
  setTimeout(() => {
178
193
  setIsSelecting(false);
179
-
180
- // KRITICKÉ: Zobrazit notifikaci AŽ PO dokončení označování
181
- // Tím se eliminuje zasekávání během drag operace
182
- if (lastRangeEventRef.current && enableNotification && internalRef?.current) {
183
- updateAggregationNotification(lastRangeEventRef.current);
184
- lastRangeEventRef.current = null;
185
- }
186
194
  }, 50);
187
195
  };
188
196
 
@@ -193,7 +201,7 @@ const AgGrid = React.forwardRef((props, ref) => {
193
201
  document.removeEventListener('mouseup', handleMouseUp);
194
202
  document.removeEventListener('touchend', handleMouseUp);
195
203
  };
196
- }, [enableNotification, updateAggregationNotification]);
204
+ }, []);
197
205
 
198
206
  // Helper funkce pro nastavení pointer-events na notifikace
199
207
  const setNotificationPointerEvents = React.useCallback((enable) => {
@@ -279,14 +287,11 @@ const AgGrid = React.forwardRef((props, ref) => {
279
287
  // Cleanup notifikací a timerů při zničení komponenty
280
288
  React.useEffect(() => {
281
289
  return () => {
282
- // Clear debounce timers
283
- if (notificationDebounceRef.current) {
284
- clearTimeout(notificationDebounceRef.current);
290
+ // Clear throttle timer
291
+ if (notificationThrottleRef.current) {
292
+ clearTimeout(notificationThrottleRef.current);
285
293
  }
286
- if (bulkEditDebounceRef.current) {
287
- clearTimeout(bulkEditDebounceRef.current);
288
- }
289
-
294
+
290
295
  if (enableNotification) {
291
296
  const gridId = props.gridName || props.id || 'default';
292
297
  const key = `aggregation-grid-${gridId}`;
@@ -384,28 +389,46 @@ const AgGrid = React.forwardRef((props, ref) => {
384
389
  // Detekovat začátek označování - nastavit isSelecting na true
385
390
  setIsSelecting(true);
386
391
 
387
- // 1. OPTIMALIZACE: Místo zobrazení notifikace BĚHEM označování,
388
- // pouze uložíme poslední event do ref
389
- // Notifikace se zobrazí v handleMouseUp (po dokončení označování)
392
+ // 1. OPTIMALIZACE: Zobrazení notifikace BĚHEM označování s THROTTLE (100ms)
393
+ // Throttle = spustí okamžitě první event, pak každých 100ms během označování
394
+ // Cache check v updateAggregationNotification zajistí, že se agregace nepočítají znovu pokud se range nezměnil
390
395
  if (enableNotification) {
391
- lastRangeEventRef.current = event;
392
- }
396
+ const now = Date.now();
397
+ const timeSinceLastCall = now - notificationLastCallRef.current;
398
+
399
+ // První volání NEBO uplynulo 100ms od posledního volání
400
+ if (timeSinceLastCall >= 100) {
401
+ // Okamžité volání
402
+ notificationLastCallRef.current = now;
403
+ if (internalRef?.current) {
404
+ updateAggregationNotification(event);
405
+ }
406
+ } else {
407
+ // Naplánovat volání za zbývající čas (trailing edge)
408
+ if (notificationThrottleRef.current) {
409
+ clearTimeout(notificationThrottleRef.current);
410
+ }
393
411
 
394
- // 2. Bulk edit handler s debounce (150ms)
395
- if (enableBulkEdit) {
396
- if (bulkEditDebounceRef.current) {
397
- clearTimeout(bulkEditDebounceRef.current);
412
+ notificationThrottleRef.current = setTimeout(() => {
413
+ notificationLastCallRef.current = Date.now();
414
+ if (internalRef?.current) {
415
+ updateAggregationNotification(event);
416
+ }
417
+ }, 100 - timeSinceLastCall);
398
418
  }
419
+ }
399
420
 
400
- bulkEditDebounceRef.current = setTimeout(() => {
401
- handleRangeChange(event);
402
- }, 150);
421
+ // 2. OPTIMALIZACE: Bulk edit handler BEZ debounce - okamžité zobrazení ikony
422
+ // Lightweight validace v useBulkCellEdit zajistí okamžité zobrazení
423
+ // Těžká validace proběhne s 15ms debounce uvnitř useBulkCellEdit
424
+ if (enableBulkEdit) {
425
+ handleRangeChange(event);
403
426
  }
404
427
 
405
428
  // 3. Custom onRangeSelectionChanged callback - bez debounce
406
429
  if (props.onRangeSelectionChanged) props.onRangeSelectionChanged(event);
407
430
  },
408
- [enableNotification, enableBulkEdit, handleRangeChange, props]
431
+ [enableNotification, enableBulkEdit, handleRangeChange, props.onRangeSelectionChanged, updateAggregationNotification]
409
432
  );
410
433
 
411
434
  const AgGridOnGridReady = (event, options) => {
@@ -510,28 +533,88 @@ const AgGrid = React.forwardRef((props, ref) => {
510
533
  };
511
534
  }, [props.frameworkComponents]);
512
535
 
513
- const allGridProps = {
536
+ // ========== PERFORMANCE OPTIMIZATION: Memoizované event handlers ==========
537
+ const memoizedOnCellEditingStarted = React.useCallback(
538
+ (event) => RhPlusOnCellEditingStarted(event, props),
539
+ [props.onCellEditingStarted]
540
+ );
541
+
542
+ const memoizedOnCellDoubleClicked = React.useCallback(
543
+ (event) => RhPlusOnCellDoubleClicked(event, props),
544
+ [props.onCellDoubleClicked]
545
+ );
546
+
547
+ const memoizedOnCellValueChanged = React.useCallback(
548
+ (event) => RhPlusOnCellValueChanged(event, props),
549
+ [props.onCellValueChanged]
550
+ );
551
+
552
+ const memoizedPostSort = React.useCallback(
553
+ (event) => AgGridPostSort(event, props),
554
+ [props.postSort]
555
+ );
556
+
557
+ const memoizedOnGridReady = React.useCallback(
558
+ (event, options) => AgGridOnGridReady(event, props),
559
+ [onGridReady]
560
+ );
561
+
562
+ const memoizedOnRowDataChanged = React.useCallback(
563
+ (event) => AgGridOnRowDataChanged(event, props),
564
+ [props.onRowDataChanged]
565
+ );
566
+
567
+ const memoizedOnRowDataUpdated = React.useCallback(
568
+ (event) => AgGridOnRowDataUpdated(event, props),
569
+ [props.onRowDataUpdated]
570
+ );
571
+
572
+ // Memoizovaný context object
573
+ const memoizedContext = React.useMemo(() => ({
574
+ componentParent: { ...props }
575
+ }), [props.context, props.gridName, props.id]);
576
+
577
+ // Memoizovaný defaultColDef
578
+ const memoizedDefaultColDef = React.useMemo(() => ({
579
+ ...props.defaultColDef,
580
+ suppressHeaderMenuButton: true,
581
+ suppressHeaderFilterButton: true,
582
+ suppressMenu: true,
583
+ }), [props.defaultColDef]);
584
+
585
+ // ========== PERFORMANCE OPTIMIZATION: Memoizovaný allGridProps ==========
586
+ const allGridProps = React.useMemo(() => ({
514
587
  ref: internalRef,
515
588
  ...props,
516
- theme: themeObject, // AG-Grid theme object
589
+ theme: themeObject,
517
590
  columnDefs: AgGridColumns(props.columnDefs, props),
518
- defaultColDef: {
519
- ...props.defaultColDef,
520
- suppressHeaderMenuButton: true,
521
- suppressHeaderFilterButton: true,
522
- suppressMenu: true,
523
- },
524
- onCellEditingStarted: (event) => RhPlusOnCellEditingStarted(event, props),
525
- onCellDoubleClicked: (event) => RhPlusOnCellDoubleClicked(event, props),
526
- onCellValueChanged: (event) => RhPlusOnCellValueChanged(event, props),
527
- postSort: (event) => AgGridPostSort(event, props),
528
- onGridReady: (event, options) => AgGridOnGridReady(event, props),
529
- onRowDataChanged: (event) => AgGridOnRowDataChanged(event, props),
530
- onRowDataUpdated: (event) => AgGridOnRowDataUpdated(event, props),
591
+ defaultColDef: memoizedDefaultColDef,
592
+ onCellEditingStarted: memoizedOnCellEditingStarted,
593
+ onCellDoubleClicked: memoizedOnCellDoubleClicked,
594
+ onCellValueChanged: memoizedOnCellValueChanged,
595
+ postSort: memoizedPostSort,
596
+ onGridReady: memoizedOnGridReady,
597
+ onRowDataChanged: memoizedOnRowDataChanged,
598
+ onRowDataUpdated: memoizedOnRowDataUpdated,
531
599
  onRangeSelectionChanged: RhPlusRangeSelectionChanged,
532
- context: { componentParent: { ...props } },
600
+ context: memoizedContext,
533
601
  components,
534
- };
602
+ }), [
603
+ internalRef,
604
+ themeObject,
605
+ props.columnDefs,
606
+ memoizedDefaultColDef,
607
+ memoizedOnCellEditingStarted,
608
+ memoizedOnCellDoubleClicked,
609
+ memoizedOnCellValueChanged,
610
+ memoizedPostSort,
611
+ memoizedOnGridReady,
612
+ memoizedOnRowDataChanged,
613
+ memoizedOnRowDataUpdated,
614
+ RhPlusRangeSelectionChanged,
615
+ memoizedContext,
616
+ components,
617
+ ]);
535
618
 
536
619
  return (
537
620
  <>
@@ -545,6 +628,7 @@ const AgGrid = React.forwardRef((props, ref) => {
545
628
  range={floatingButton.range}
546
629
  column={floatingButton.column}
547
630
  cellCount={floatingButton.cellCount}
631
+ rowsContainer={floatingButton.rowsContainer}
548
632
  editPopover={editPopover}
549
633
  onOpenPopover={handleOpenPopover}
550
634
  onValueChange={handleValueChange}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bit.rhplus/ag-grid",
3
- "version": "0.0.48",
3
+ "version": "0.0.50",
4
4
  "homepage": "https://bit.cloud/remote-scope/ag-grid",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "remote-scope",
8
8
  "name": "ag-grid",
9
- "version": "0.0.48"
9
+ "version": "0.0.50"
10
10
  },
11
11
  "dependencies": {
12
12
  "linq": "^4.0.3",
@@ -20,16 +20,17 @@
20
20
  "dayjs": "^1.11.13",
21
21
  "styled-components": "^6.1.19",
22
22
  "lucide-react": "^0.503.0",
23
- "@bit.rhplus/ui.grid": "0.0.66",
23
+ "@bit.rhplus/ui.grid": "0.0.68",
24
24
  "@bit.rhplus/linq": "0.0.8",
25
- "@bit.rhplus/ui2.module-dropdown-list": "0.1.42",
25
+ "@bit.rhplus/ui2.module-dropdown-list": "0.1.44",
26
26
  "@bit.rhplus/data": "0.0.57"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@teambit/react.react-env": "1.0.132"
30
30
  },
31
31
  "peerDependencies": {
32
- "react": "^17.0.0 || ^18.0.0"
32
+ "react": "^17.0.0 || ^18.0.0",
33
+ "react-dom": "^17.0.0 || ^18.0.0"
33
34
  },
34
35
  "license": "SEE LICENSE IN UNLICENSED",
35
36
  "optionalDependencies": {},