@bit.rhplus/ui.grid-layout 0.0.50 → 0.0.52

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.
@@ -8,6 +8,33 @@ import { useGridLayoutApi } from './useGridLayoutApi';
8
8
  import { debounce } from 'lodash';
9
9
  // Import tooltip komponent pro eliminaci circular dependency
10
10
  // import * as Tooltip from '../grid/tooltips';
11
+ /**
12
+ * Helper funkce pro porovnání column state
13
+ * Porovnává klíčové vlastnosti sloupců pro detekci změn
14
+ * @param {Array} state1 - První column state
15
+ * @param {Array} state2 - Druhý column state
16
+ * @returns {boolean} - true pokud jsou identické, false pokud se liší
17
+ */
18
+ const isColumnStateEqual = (state1, state2) => {
19
+ if (!state1 || !state2)
20
+ return false;
21
+ if (state1.length !== state2.length)
22
+ return false;
23
+ for (let i = 0; i < state1.length; i++) {
24
+ const col1 = state1[i];
25
+ const col2 = state2[i];
26
+ // Porovnat klíčové vlastnosti
27
+ if (col1.colId !== col2.colId)
28
+ return false; // Pořadí
29
+ if (col1.width !== col2.width)
30
+ return false; // Šířka
31
+ if (col1.hide !== col2.hide)
32
+ return false; // Viditelnost
33
+ if (col1.pinned !== col2.pinned)
34
+ return false; // Pinning
35
+ }
36
+ return true;
37
+ };
11
38
  /**
12
39
  * Hook pro správu grid layout s automatickým ukládáním
13
40
  * @param {Object} config - Konfigurace grid layout
@@ -40,6 +67,10 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
40
67
  const columnApiRef = useRef(null);
41
68
  // Ref mapa pro ukládání aktuálních šířek sloupců (fieldId -> šířka)
42
69
  const columnWidthRefsMap = useRef(new Map());
70
+ // Ref pro isInitialized - stabilní reference pro event handlery
71
+ const isInitializedRef = useRef(false);
72
+ // ✅ FIX: Ref pro sledování posledního známého column state (pro detekci změn v onDragStopped)
73
+ const lastKnownColumnStateRef = useRef(null);
43
74
  // State
44
75
  const [isInitialized, setIsInitialized] = useState(false);
45
76
  const [isGridReady, setIsGridReady] = useState(false);
@@ -124,6 +155,10 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
124
155
  stableOnLayoutSavedRef.current = onLayoutSaved;
125
156
  stableHandleErrorRef.current = handleError;
126
157
  }, [columnDefs, gridLayoutApi, onLayoutSaved, handleError]);
158
+ // Synchronizace isInitializedRef se state pro stabilní event handlery
159
+ useEffect(() => {
160
+ isInitializedRef.current = isInitialized;
161
+ }, [isInitialized]);
127
162
  // Efekt pro bezpečnou aktualizaci lastKnownColumnState z ref
128
163
  // useEffect(() => {
129
164
  // if (stableCurrentColumnsRef.current) {
@@ -339,6 +374,26 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
339
374
  }, autoSaveDelay);
340
375
  return debouncedFn;
341
376
  }, [saveCurrentLayout, autoSaveDelay]);
377
+ // ✅ FIX #3: Stabilní ref pro debouncedSave (eliminuje regeneraci event handlerů)
378
+ const debouncedSaveRef = useRef(debouncedSave);
379
+ // Aktualizovat ref když se debouncedSave změní
380
+ useEffect(() => {
381
+ debouncedSaveRef.current = debouncedSave;
382
+ }, [debouncedSave]);
383
+ // ✅ FIX #3+: Stabilní refs pro enabled, isGridReady, autoSave (KRITICKÉ pro stabilitu handlerů)
384
+ const enabledRef = useRef(enabled);
385
+ const isGridReadyRef = useRef(isGridReady);
386
+ const autoSaveRef = useRef(autoSave);
387
+ // Aktualizovat refs při změnách
388
+ useEffect(() => {
389
+ enabledRef.current = enabled;
390
+ }, [enabled]);
391
+ useEffect(() => {
392
+ isGridReadyRef.current = isGridReady;
393
+ }, [isGridReady]);
394
+ useEffect(() => {
395
+ autoSaveRef.current = autoSave;
396
+ }, [autoSave]);
342
397
  /**
343
398
  * Aplikuje saved layout na AG-Grid
344
399
  * @param {boolean} forceApply - Vynucené aplikování ignorující isInitialized stav
@@ -414,6 +469,9 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
414
469
  rowGroup: null, // Reset row grouping
415
470
  },
416
471
  });
472
+ // ✅ FIX: Aktualizovat lastKnownColumnStateRef po aplikování layoutu z API
473
+ // Tím zajistíme, že handleDragStopped má správnou referenci pro porovnání
474
+ lastKnownColumnStateRef.current = adjustedColumnState;
417
475
  // Explicitně aktualizujeme headerName pro každý sloupec, protože AG-Grid
418
476
  // nepodporuje nastavení headerName přes applyColumnState
419
477
  if (savedFields.records &&
@@ -467,8 +525,6 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
467
525
  // Pro jistotu zkontrolujeme, zda byly změny aplikovány
468
526
  setTimeout(() => {
469
527
  try {
470
- const afterUpdateColDefs = gridApiRef.current.getColumnDefs();
471
- const afterUpdateColumnState = gridApiRef.current.getColumnState?.() || [];
472
528
  // DOM operace dokončeny, můžeme ukončit loading
473
529
  setIsApplyingLayout(false);
474
530
  }
@@ -502,7 +558,6 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
502
558
  const headerTextEl = headerCell.querySelector('.ag-header-cell-text');
503
559
  if (headerTextEl) {
504
560
  const newHeaderName = headerUpdates.get(colId);
505
- const currentText = headerTextEl.textContent;
506
561
  headerTextEl.textContent = newHeaderName;
507
562
  }
508
563
  }
@@ -586,8 +641,8 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
586
641
  pendingActions.forEach((action) => {
587
642
  switch (action.type) {
588
643
  case 'dragStopped':
589
- if (autoSave && debouncedSave) {
590
- debouncedSave();
644
+ if (autoSaveRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
645
+ debouncedSaveRef.current();
591
646
  }
592
647
  break;
593
648
  }
@@ -595,28 +650,41 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
595
650
  setPendingActions([]);
596
651
  }, 100);
597
652
  }
598
- }, [isInitialized, pendingActions, autoSave, debouncedSave]);
653
+ }, [isInitialized, pendingActions]); // ✅ FIX #3+: Odstranit autoSave z dependencies
599
654
  /**
600
655
  * Event handlers pro AG-Grid
601
656
  */
602
657
  const handleColumnMoved = useCallback(() => {
603
- if (!enabled || !isGridReady) {
658
+ if (!enabledRef.current || !isGridReadyRef.current) { // ✅ FIX #3+: Použít refs místo dependencies
604
659
  return;
605
660
  }
606
661
  setHasUnsavedChanges(true);
607
662
  // Neukládáme při každém pohybu - čekáme na onDragStopped
608
- }, [enabled, isGridReady]);
663
+ }, []); // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
609
664
  const handleDragStopped = useCallback(() => {
610
- if (!enabled || !isGridReady) {
665
+ if (!enabledRef.current || !isGridReadyRef.current) { // ✅ FIX #3+: Použít refs místo dependencies
611
666
  return;
612
667
  }
613
- setHasUnsavedChanges(true);
614
- // Uložit aktuální stav sloupců (pořadí a šířky) do ref map pro persistenci
615
- // DŮLEŽITÉ: NEMĚNÍME columnWidthsVersion - AG-Grid už má správné pořadí a šířky ve svém interním stavu
668
+ // ✅ FIX: Detekovat, zda se skutečně něco změnilo (pořadí/šířky/viditelnost/pinning)
669
+ // Pokud se nic nezměnilo, SKIP celý handler (eliminuje zbytečné re-rendery při range selection)
616
670
  try {
617
671
  if (gridApiRef.current && typeof gridApiRef.current.getColumnState === 'function') {
618
672
  const currentColumnState = gridApiRef.current.getColumnState();
619
673
  if (currentColumnState && Array.isArray(currentColumnState)) {
674
+ // Porovnat s posledním známým stavem
675
+ if (isColumnStateEqual(lastKnownColumnStateRef.current, currentColumnState)) {
676
+ // Žádná změna - SKIP celý handler (nejčastější případ při range selection)
677
+ return;
678
+ }
679
+ // Uložit nový stav jako referenci pro příští porovnání
680
+ lastKnownColumnStateRef.current = currentColumnState;
681
+ // 🐛 DEBUG: Logovat drag stopped event
682
+ console.log('🔄 handleDragStopped - změna detekována', {
683
+ isInitialized: isInitializedRef.current,
684
+ autoSave: autoSaveRef.current,
685
+ willPending: !isInitializedRef.current && autoSaveRef.current,
686
+ willSave: autoSaveRef.current && debouncedSaveRef.current && isInitializedRef.current
687
+ });
620
688
  // Uložit šířky do ref map pro každý sloupec (pro API save a další načtení)
621
689
  currentColumnState.forEach(colState => {
622
690
  if (colState.colId && colState.width) {
@@ -632,7 +700,8 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
632
700
  }
633
701
  // OCHRANA: Pokud ještě není načten layout z API, přidáme akci do pending queue
634
702
  // Pending actions se zpracují až po dokončení inicializace (načtení + aplikování layoutu)
635
- if (!isInitialized && autoSave) {
703
+ if (!isInitializedRef.current && autoSaveRef.current) { // ✅ FIX #3+: Použít refs
704
+ console.log('⏳ handleDragStopped - přidávám do pending queue');
636
705
  setPendingActions((prev) => [
637
706
  ...prev,
638
707
  { type: 'dragStopped', timestamp: Date.now() },
@@ -640,15 +709,16 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
640
709
  return;
641
710
  }
642
711
  // Uložit do API pouze pokud už je layout načten a aplikován
643
- if (autoSave && debouncedSave) {
644
- debouncedSave();
712
+ if (autoSaveRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
713
+ console.log('💾 handleDragStopped - volám debouncedSave');
714
+ debouncedSaveRef.current();
645
715
  }
646
- }, [enabled, isGridReady, isInitialized, autoSave, debouncedSave]);
716
+ }, []); // FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
647
717
  // Handler pro DOKONČENÍ resize - spouští auto-save
648
718
  // DŮLEŽITÉ: Reaguje pouze na finished === true (po uvolnění myši)
649
719
  const handleColumnResized = useCallback((event) => {
650
- if (!enabled || !isGridReady)
651
- return;
720
+ if (!enabledRef.current || !isGridReadyRef.current)
721
+ return; // ✅ FIX #3+: Použít refs
652
722
  // Reagujeme POUZE na dokončení resize operace (po uvolnění myši)
653
723
  // To zabrání poskakování sloupců během tažení
654
724
  if (!event || event.finished !== true)
@@ -676,33 +746,33 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
676
746
  }
677
747
  // Spustit debounced save do API
678
748
  // OCHRANA: Ukládáme pouze pokud už byl layout načten z API (isInitialized)
679
- if (autoSave && isInitialized && debouncedSave) {
680
- debouncedSave();
749
+ if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
750
+ debouncedSaveRef.current();
681
751
  }
682
- }, [enabled, isGridReady, isInitialized, autoSave, debouncedSave]);
752
+ }, []); // FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
683
753
  const handleColumnVisible = useCallback(() => {
684
- if (!enabled || !isGridReady)
685
- return;
754
+ if (!enabledRef.current || !isGridReadyRef.current)
755
+ return; // ✅ FIX #3+: Použít refs místo přímých hodnot
686
756
  setHasUnsavedChanges(true);
687
757
  // OCHRANA: Ukládáme pouze pokud už byl layout načten z API (isInitialized)
688
- if (autoSave && isInitialized && debouncedSave) {
689
- debouncedSave();
758
+ if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
759
+ debouncedSaveRef.current();
690
760
  }
691
- }, [enabled, isGridReady, isInitialized, autoSave, debouncedSave]);
761
+ }, []); // FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
692
762
  const handleColumnPinned = useCallback(() => {
693
- if (!enabled || !isGridReady)
694
- return;
763
+ if (!enabledRef.current || !isGridReadyRef.current)
764
+ return; // ✅ FIX #3+: Použít refs místo přímých hodnot
695
765
  setHasUnsavedChanges(true);
696
766
  // OCHRANA: Ukládáme pouze pokud už byl layout načten z API (isInitialized)
697
- if (autoSave && isInitialized && debouncedSave) {
698
- debouncedSave();
767
+ if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
768
+ debouncedSaveRef.current();
699
769
  }
700
- }, [enabled, isGridReady, isInitialized, autoSave, debouncedSave]);
770
+ }, []); // FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
701
771
  /**
702
772
  * AG-Grid Ready handler
703
773
  */
704
774
  const handleGridReady = useCallback((params) => {
705
- if (!enabled) {
775
+ if (!enabledRef.current) { // ✅ FIX #3+: Použít ref místo přímé hodnoty
706
776
  return;
707
777
  }
708
778
  gridApiRef.current = params.api;
@@ -713,7 +783,8 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
713
783
  setIsGridReady(true);
714
784
  // POZOR: Nenastavujeme isInitialized zde, protože by to zabránilo aplikování layoutu!
715
785
  // isInitialized se nastaví až po aplikování layoutu v applySavedLayout
716
- }, [enabled, savedFields, isInitialized, applySavedLayout]);
786
+ }, [] // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje (savedFields, isInitialized, applySavedLayout se nepoužívají)
787
+ );
717
788
  /**
718
789
  * Effect pro aplikování layoutu při prvotním načtení savedFields
719
790
  */
@@ -1157,26 +1228,28 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
1157
1228
  // }) || [];
1158
1229
  // return processedColumns;
1159
1230
  }, [waitForSavedFields, savedFields?.records, columnDefs, gridLayoutApi, columnWidthsVersion, isInitialized]);
1231
+ // ✅ FIX #10: NEPOUŽÍVAT memoizaci - spoléháme se na refs v Grid komponentě
1232
+ // Memoizace s dependencies způsobuje rerender při změně JAKÉKOLIV hodnoty (např. hasUnsavedChanges)
1233
+ // Refs v Grid komponentě zajišťují, že i když se tento objekt změní, Grid nevidí změnu
1160
1234
  return {
1161
1235
  // State
1162
1236
  isLoading: isLoading || isFieldsLoading,
1163
1237
  isSaving,
1164
- isApplyingLayout, // Nový specifický state pro aplikování layoutu
1238
+ isApplyingLayout,
1165
1239
  error,
1166
1240
  hasUnsavedChanges,
1167
1241
  isInitialized,
1168
- isGridReady, // Nový stav pro rychlejší aktivaci event handlerů
1169
- shouldShowColumns, // Nové pole pro řízení zobrazení columnDefs
1170
- preTransformedColumnDefs, // Pre-transformované columnDefs pro waitForSavedFields
1171
- // AG-Grid event handlers
1242
+ isGridReady,
1243
+ shouldShowColumns,
1244
+ preTransformedColumnDefs,
1245
+ // AG-Grid event handlers (stabilní díky prázdným dependencies)
1172
1246
  onGridReady: handleGridReady,
1173
1247
  onColumnMoved: handleColumnMoved,
1174
- onDragStopped: handleDragStopped, // Nový handler pro konec drag operace
1175
- onColumnResized: handleColumnResized, // Reaguje pouze na finished === true (po uvolnění myši)
1248
+ onDragStopped: handleDragStopped,
1249
+ onColumnResized: handleColumnResized,
1176
1250
  onColumnVisible: handleColumnVisible,
1177
1251
  onColumnPinned: handleColumnPinned,
1178
- // onRowDataChanged: handleRowDataChanged, // Nový handler pro změnu dat
1179
- // Manual actions
1252
+ // Manual actions (stabilní)
1180
1253
  saveLayout,
1181
1254
  resetToDefault,
1182
1255
  reloadLayout,
@@ -1185,10 +1258,10 @@ onLayoutLoaded, onLayoutSaved, onError, }) => {
1185
1258
  openColumnEditor,
1186
1259
  closeColumnEditor,
1187
1260
  saveColumnEditorChanges,
1188
- getCurrentColumnsForEditor, // Nová funkce pro aktuální column state
1261
+ getCurrentColumnsForEditor,
1189
1262
  // Data
1190
1263
  savedFields: savedFields?.records || [],
1191
- columnDefs, // Původní columnDefs pro Column Editor
1264
+ columnDefs,
1192
1265
  // Utils
1193
1266
  gridLayoutApi,
1194
1267
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useGridLayout.js","sourceRoot":"","sources":["../useGridLayout.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useGridLayout.js","sourceRoot":"","sources":["../useGridLayout.js"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bit.rhplus/ui.grid-layout",
3
- "version": "0.0.50",
3
+ "version": "0.0.52",
4
4
  "homepage": "https://bit.cloud/remote-scope/ui/grid-layout",
5
5
  "main": "dist/index.js",
6
6
  "componentId": {
7
7
  "scope": "remote-scope",
8
8
  "name": "ui/grid-layout",
9
- "version": "0.0.50"
9
+ "version": "0.0.52"
10
10
  },
11
11
  "dependencies": {
12
12
  "@ant-design/icons": "^5.4.0",
package/useGridLayout.js CHANGED
@@ -10,6 +10,31 @@ import { debounce } from 'lodash';
10
10
  // Import tooltip komponent pro eliminaci circular dependency
11
11
  // import * as Tooltip from '../grid/tooltips';
12
12
 
13
+ /**
14
+ * Helper funkce pro porovnání column state
15
+ * Porovnává klíčové vlastnosti sloupců pro detekci změn
16
+ * @param {Array} state1 - První column state
17
+ * @param {Array} state2 - Druhý column state
18
+ * @returns {boolean} - true pokud jsou identické, false pokud se liší
19
+ */
20
+ const isColumnStateEqual = (state1, state2) => {
21
+ if (!state1 || !state2) return false;
22
+ if (state1.length !== state2.length) return false;
23
+
24
+ for (let i = 0; i < state1.length; i++) {
25
+ const col1 = state1[i];
26
+ const col2 = state2[i];
27
+
28
+ // Porovnat klíčové vlastnosti
29
+ if (col1.colId !== col2.colId) return false; // Pořadí
30
+ if (col1.width !== col2.width) return false; // Šířka
31
+ if (col1.hide !== col2.hide) return false; // Viditelnost
32
+ if (col1.pinned !== col2.pinned) return false; // Pinning
33
+ }
34
+
35
+ return true;
36
+ };
37
+
13
38
  /**
14
39
  * Hook pro správu grid layout s automatickým ukládáním
15
40
  * @param {Object} config - Konfigurace grid layout
@@ -63,6 +88,10 @@ export const useGridLayout = ({
63
88
  const columnApiRef = useRef(null);
64
89
  // Ref mapa pro ukládání aktuálních šířek sloupců (fieldId -> šířka)
65
90
  const columnWidthRefsMap = useRef(new Map());
91
+ // Ref pro isInitialized - stabilní reference pro event handlery
92
+ const isInitializedRef = useRef(false);
93
+ // ✅ FIX: Ref pro sledování posledního známého column state (pro detekci změn v onDragStopped)
94
+ const lastKnownColumnStateRef = useRef(null);
66
95
 
67
96
  // State
68
97
  const [isInitialized, setIsInitialized] = useState(false);
@@ -171,6 +200,11 @@ export const useGridLayout = ({
171
200
  stableHandleErrorRef.current = handleError;
172
201
  }, [columnDefs, gridLayoutApi, onLayoutSaved, handleError]);
173
202
 
203
+ // Synchronizace isInitializedRef se state pro stabilní event handlery
204
+ useEffect(() => {
205
+ isInitializedRef.current = isInitialized;
206
+ }, [isInitialized]);
207
+
174
208
  // Efekt pro bezpečnou aktualizaci lastKnownColumnState z ref
175
209
  // useEffect(() => {
176
210
  // if (stableCurrentColumnsRef.current) {
@@ -436,6 +470,32 @@ export const useGridLayout = ({
436
470
  return debouncedFn;
437
471
  }, [saveCurrentLayout, autoSaveDelay]);
438
472
 
473
+ // ✅ FIX #3: Stabilní ref pro debouncedSave (eliminuje regeneraci event handlerů)
474
+ const debouncedSaveRef = useRef(debouncedSave);
475
+
476
+ // Aktualizovat ref když se debouncedSave změní
477
+ useEffect(() => {
478
+ debouncedSaveRef.current = debouncedSave;
479
+ }, [debouncedSave]);
480
+
481
+ // ✅ FIX #3+: Stabilní refs pro enabled, isGridReady, autoSave (KRITICKÉ pro stabilitu handlerů)
482
+ const enabledRef = useRef(enabled);
483
+ const isGridReadyRef = useRef(isGridReady);
484
+ const autoSaveRef = useRef(autoSave);
485
+
486
+ // Aktualizovat refs při změnách
487
+ useEffect(() => {
488
+ enabledRef.current = enabled;
489
+ }, [enabled]);
490
+
491
+ useEffect(() => {
492
+ isGridReadyRef.current = isGridReady;
493
+ }, [isGridReady]);
494
+
495
+ useEffect(() => {
496
+ autoSaveRef.current = autoSave;
497
+ }, [autoSave]);
498
+
439
499
  /**
440
500
  * Aplikuje saved layout na AG-Grid
441
501
  * @param {boolean} forceApply - Vynucené aplikování ignorující isInitialized stav
@@ -528,6 +588,10 @@ export const useGridLayout = ({
528
588
  },
529
589
  });
530
590
 
591
+ // ✅ FIX: Aktualizovat lastKnownColumnStateRef po aplikování layoutu z API
592
+ // Tím zajistíme, že handleDragStopped má správnou referenci pro porovnání
593
+ lastKnownColumnStateRef.current = adjustedColumnState;
594
+
531
595
  // Explicitně aktualizujeme headerName pro každý sloupec, protože AG-Grid
532
596
  // nepodporuje nastavení headerName přes applyColumnState
533
597
  if (
@@ -593,9 +657,6 @@ export const useGridLayout = ({
593
657
  // Pro jistotu zkontrolujeme, zda byly změny aplikovány
594
658
  setTimeout(() => {
595
659
  try {
596
- const afterUpdateColDefs = gridApiRef.current.getColumnDefs();
597
- const afterUpdateColumnState = gridApiRef.current.getColumnState?.() || [];
598
-
599
660
  // DOM operace dokončeny, můžeme ukončit loading
600
661
  setIsApplyingLayout(false);
601
662
  } catch (checkError) {
@@ -640,8 +701,6 @@ export const useGridLayout = ({
640
701
  if (headerTextEl) {
641
702
  const newHeaderName =
642
703
  headerUpdates.get(colId);
643
- const currentText =
644
- headerTextEl.textContent;
645
704
  headerTextEl.textContent = newHeaderName;
646
705
  }
647
706
  }
@@ -732,8 +791,8 @@ export const useGridLayout = ({
732
791
  pendingActions.forEach((action) => {
733
792
  switch (action.type) {
734
793
  case 'dragStopped':
735
- if (autoSave && debouncedSave) {
736
- debouncedSave();
794
+ if (autoSaveRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
795
+ debouncedSaveRef.current();
737
796
  }
738
797
  break;
739
798
  }
@@ -741,34 +800,49 @@ export const useGridLayout = ({
741
800
  setPendingActions([]);
742
801
  }, 100);
743
802
  }
744
- }, [isInitialized, pendingActions, autoSave, debouncedSave]);
803
+ }, [isInitialized, pendingActions]); // ✅ FIX #3+: Odstranit autoSave z dependencies
745
804
 
746
805
  /**
747
806
  * Event handlers pro AG-Grid
748
807
  */
749
808
  const handleColumnMoved = useCallback(() => {
750
- if (!enabled || !isGridReady) {
809
+ if (!enabledRef.current || !isGridReadyRef.current) { // ✅ FIX #3+: Použít refs místo dependencies
751
810
  return;
752
811
  }
753
812
 
754
813
  setHasUnsavedChanges(true);
755
814
  // Neukládáme při každém pohybu - čekáme na onDragStopped
756
- }, [enabled, isGridReady]);
815
+ }, []); // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
757
816
 
758
817
  const handleDragStopped = useCallback(() => {
759
- if (!enabled || !isGridReady) {
818
+ if (!enabledRef.current || !isGridReadyRef.current) { // ✅ FIX #3+: Použít refs místo dependencies
760
819
  return;
761
820
  }
762
821
 
763
- setHasUnsavedChanges(true);
764
-
765
- // Uložit aktuální stav sloupců (pořadí a šířky) do ref map pro persistenci
766
- // DŮLEŽITÉ: NEMĚNÍME columnWidthsVersion - AG-Grid už má správné pořadí a šířky ve svém interním stavu
822
+ // ✅ FIX: Detekovat, zda se skutečně něco změnilo (pořadí/šířky/viditelnost/pinning)
823
+ // Pokud se nic nezměnilo, SKIP celý handler (eliminuje zbytečné re-rendery při range selection)
767
824
  try {
768
825
  if (gridApiRef.current && typeof gridApiRef.current.getColumnState === 'function') {
769
826
  const currentColumnState = gridApiRef.current.getColumnState();
770
827
 
771
828
  if (currentColumnState && Array.isArray(currentColumnState)) {
829
+ // Porovnat s posledním známým stavem
830
+ if (isColumnStateEqual(lastKnownColumnStateRef.current, currentColumnState)) {
831
+ // Žádná změna - SKIP celý handler (nejčastější případ při range selection)
832
+ return;
833
+ }
834
+
835
+ // Uložit nový stav jako referenci pro příští porovnání
836
+ lastKnownColumnStateRef.current = currentColumnState;
837
+
838
+ // 🐛 DEBUG: Logovat drag stopped event
839
+ console.log('🔄 handleDragStopped - změna detekována', {
840
+ isInitialized: isInitializedRef.current,
841
+ autoSave: autoSaveRef.current,
842
+ willPending: !isInitializedRef.current && autoSaveRef.current,
843
+ willSave: autoSaveRef.current && debouncedSaveRef.current && isInitializedRef.current
844
+ });
845
+
772
846
  // Uložit šířky do ref map pro každý sloupec (pro API save a další načtení)
773
847
  currentColumnState.forEach(colState => {
774
848
  if (colState.colId && colState.width) {
@@ -784,7 +858,8 @@ export const useGridLayout = ({
784
858
 
785
859
  // OCHRANA: Pokud ještě není načten layout z API, přidáme akci do pending queue
786
860
  // Pending actions se zpracují až po dokončení inicializace (načtení + aplikování layoutu)
787
- if (!isInitialized && autoSave) {
861
+ if (!isInitializedRef.current && autoSaveRef.current) { // ✅ FIX #3+: Použít refs
862
+ console.log('⏳ handleDragStopped - přidávám do pending queue');
788
863
  setPendingActions((prev) => [
789
864
  ...prev,
790
865
  { type: 'dragStopped', timestamp: Date.now() },
@@ -793,15 +868,16 @@ export const useGridLayout = ({
793
868
  }
794
869
 
795
870
  // Uložit do API pouze pokud už je layout načten a aplikován
796
- if (autoSave && debouncedSave) {
797
- debouncedSave();
871
+ if (autoSaveRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
872
+ console.log('💾 handleDragStopped - volám debouncedSave');
873
+ debouncedSaveRef.current();
798
874
  }
799
- }, [enabled, isGridReady, isInitialized, autoSave, debouncedSave]);
875
+ }, []); // FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
800
876
 
801
877
  // Handler pro DOKONČENÍ resize - spouští auto-save
802
878
  // DŮLEŽITÉ: Reaguje pouze na finished === true (po uvolnění myši)
803
879
  const handleColumnResized = useCallback((event) => {
804
- if (!enabled || !isGridReady) return;
880
+ if (!enabledRef.current || !isGridReadyRef.current) return; // ✅ FIX #3+: Použít refs
805
881
 
806
882
  // Reagujeme POUZE na dokončení resize operace (po uvolnění myši)
807
883
  // To zabrání poskakování sloupců během tažení
@@ -832,35 +908,35 @@ export const useGridLayout = ({
832
908
 
833
909
  // Spustit debounced save do API
834
910
  // OCHRANA: Ukládáme pouze pokud už byl layout načten z API (isInitialized)
835
- if (autoSave && isInitialized && debouncedSave) {
836
- debouncedSave();
911
+ if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
912
+ debouncedSaveRef.current();
837
913
  }
838
- }, [enabled, isGridReady, isInitialized, autoSave, debouncedSave]);
914
+ }, []); // FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
839
915
 
840
916
  const handleColumnVisible = useCallback(() => {
841
- if (!enabled || !isGridReady) return;
917
+ if (!enabledRef.current || !isGridReadyRef.current) return; // ✅ FIX #3+: Použít refs místo přímých hodnot
842
918
  setHasUnsavedChanges(true);
843
919
  // OCHRANA: Ukládáme pouze pokud už byl layout načten z API (isInitialized)
844
- if (autoSave && isInitialized && debouncedSave) {
845
- debouncedSave();
920
+ if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
921
+ debouncedSaveRef.current();
846
922
  }
847
- }, [enabled, isGridReady, isInitialized, autoSave, debouncedSave]);
923
+ }, []); // FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
848
924
 
849
925
  const handleColumnPinned = useCallback(() => {
850
- if (!enabled || !isGridReady) return;
926
+ if (!enabledRef.current || !isGridReadyRef.current) return; // ✅ FIX #3+: Použít refs místo přímých hodnot
851
927
  setHasUnsavedChanges(true);
852
928
  // OCHRANA: Ukládáme pouze pokud už byl layout načten z API (isInitialized)
853
- if (autoSave && isInitialized && debouncedSave) {
854
- debouncedSave();
929
+ if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
930
+ debouncedSaveRef.current();
855
931
  }
856
- }, [enabled, isGridReady, isInitialized, autoSave, debouncedSave]);
932
+ }, []); // FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
857
933
 
858
934
  /**
859
935
  * AG-Grid Ready handler
860
936
  */
861
937
  const handleGridReady = useCallback(
862
938
  (params) => {
863
- if (!enabled) {
939
+ if (!enabledRef.current) { // ✅ FIX #3+: Použít ref místo přímé hodnoty
864
940
  return;
865
941
  }
866
942
 
@@ -874,7 +950,7 @@ export const useGridLayout = ({
874
950
  // POZOR: Nenastavujeme isInitialized zde, protože by to zabránilo aplikování layoutu!
875
951
  // isInitialized se nastaví až po aplikování layoutu v applySavedLayout
876
952
  },
877
- [enabled, savedFields, isInitialized, applySavedLayout]
953
+ [] // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje (savedFields, isInitialized, applySavedLayout se nepoužívají)
878
954
  );
879
955
 
880
956
  /**
@@ -1395,28 +1471,30 @@ export const useGridLayout = ({
1395
1471
  // return processedColumns;
1396
1472
  }, [waitForSavedFields, savedFields?.records, columnDefs, gridLayoutApi, columnWidthsVersion, isInitialized]);
1397
1473
 
1474
+ // ✅ FIX #10: NEPOUŽÍVAT memoizaci - spoléháme se na refs v Grid komponentě
1475
+ // Memoizace s dependencies způsobuje rerender při změně JAKÉKOLIV hodnoty (např. hasUnsavedChanges)
1476
+ // Refs v Grid komponentě zajišťují, že i když se tento objekt změní, Grid nevidí změnu
1398
1477
  return {
1399
1478
  // State
1400
1479
  isLoading: isLoading || isFieldsLoading,
1401
1480
  isSaving,
1402
- isApplyingLayout, // Nový specifický state pro aplikování layoutu
1481
+ isApplyingLayout,
1403
1482
  error,
1404
1483
  hasUnsavedChanges,
1405
1484
  isInitialized,
1406
- isGridReady, // Nový stav pro rychlejší aktivaci event handlerů
1407
- shouldShowColumns, // Nové pole pro řízení zobrazení columnDefs
1408
- preTransformedColumnDefs, // Pre-transformované columnDefs pro waitForSavedFields
1485
+ isGridReady,
1486
+ shouldShowColumns,
1487
+ preTransformedColumnDefs,
1409
1488
 
1410
- // AG-Grid event handlers
1489
+ // AG-Grid event handlers (stabilní díky prázdným dependencies)
1411
1490
  onGridReady: handleGridReady,
1412
1491
  onColumnMoved: handleColumnMoved,
1413
- onDragStopped: handleDragStopped, // Nový handler pro konec drag operace
1414
- onColumnResized: handleColumnResized, // Reaguje pouze na finished === true (po uvolnění myši)
1492
+ onDragStopped: handleDragStopped,
1493
+ onColumnResized: handleColumnResized,
1415
1494
  onColumnVisible: handleColumnVisible,
1416
1495
  onColumnPinned: handleColumnPinned,
1417
- // onRowDataChanged: handleRowDataChanged, // Nový handler pro změnu dat
1418
1496
 
1419
- // Manual actions
1497
+ // Manual actions (stabilní)
1420
1498
  saveLayout,
1421
1499
  resetToDefault,
1422
1500
  reloadLayout,
@@ -1426,11 +1504,11 @@ export const useGridLayout = ({
1426
1504
  openColumnEditor,
1427
1505
  closeColumnEditor,
1428
1506
  saveColumnEditorChanges,
1429
- getCurrentColumnsForEditor, // Nová funkce pro aktuální column state
1507
+ getCurrentColumnsForEditor,
1430
1508
 
1431
1509
  // Data
1432
1510
  savedFields: savedFields?.records || [],
1433
- columnDefs, // Původní columnDefs pro Column Editor
1511
+ columnDefs,
1434
1512
 
1435
1513
  // Utils
1436
1514
  gridLayoutApi,