@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.
package/dist/useGridLayout.js
CHANGED
|
@@ -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 (
|
|
590
|
-
|
|
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
|
|
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 (!
|
|
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
|
-
}, [
|
|
663
|
+
}, []); // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
|
|
609
664
|
const handleDragStopped = useCallback(() => {
|
|
610
|
-
if (!
|
|
665
|
+
if (!enabledRef.current || !isGridReadyRef.current) { // ✅ FIX #3+: Použít refs místo dependencies
|
|
611
666
|
return;
|
|
612
667
|
}
|
|
613
|
-
|
|
614
|
-
//
|
|
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 (!
|
|
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 (
|
|
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
|
-
}, [
|
|
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 (!
|
|
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 (
|
|
680
|
-
|
|
749
|
+
if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
|
|
750
|
+
debouncedSaveRef.current();
|
|
681
751
|
}
|
|
682
|
-
}, [
|
|
752
|
+
}, []); // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
|
|
683
753
|
const handleColumnVisible = useCallback(() => {
|
|
684
|
-
if (!
|
|
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 (
|
|
689
|
-
|
|
758
|
+
if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
|
|
759
|
+
debouncedSaveRef.current();
|
|
690
760
|
}
|
|
691
|
-
}, [
|
|
761
|
+
}, []); // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
|
|
692
762
|
const handleColumnPinned = useCallback(() => {
|
|
693
|
-
if (!
|
|
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 (
|
|
698
|
-
|
|
767
|
+
if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
|
|
768
|
+
debouncedSaveRef.current();
|
|
699
769
|
}
|
|
700
|
-
}, [
|
|
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 (!
|
|
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
|
-
}, [
|
|
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,
|
|
1238
|
+
isApplyingLayout,
|
|
1165
1239
|
error,
|
|
1166
1240
|
hasUnsavedChanges,
|
|
1167
1241
|
isInitialized,
|
|
1168
|
-
isGridReady,
|
|
1169
|
-
shouldShowColumns,
|
|
1170
|
-
preTransformedColumnDefs,
|
|
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,
|
|
1175
|
-
onColumnResized: handleColumnResized,
|
|
1248
|
+
onDragStopped: handleDragStopped,
|
|
1249
|
+
onColumnResized: handleColumnResized,
|
|
1176
1250
|
onColumnVisible: handleColumnVisible,
|
|
1177
1251
|
onColumnPinned: handleColumnPinned,
|
|
1178
|
-
//
|
|
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,
|
|
1261
|
+
getCurrentColumnsForEditor,
|
|
1189
1262
|
// Data
|
|
1190
1263
|
savedFields: savedFields?.records || [],
|
|
1191
|
-
columnDefs,
|
|
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.
|
|
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.
|
|
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 (
|
|
736
|
-
|
|
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
|
|
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 (!
|
|
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
|
-
}, [
|
|
815
|
+
}, []); // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
|
|
757
816
|
|
|
758
817
|
const handleDragStopped = useCallback(() => {
|
|
759
|
-
if (!
|
|
818
|
+
if (!enabledRef.current || !isGridReadyRef.current) { // ✅ FIX #3+: Použít refs místo dependencies
|
|
760
819
|
return;
|
|
761
820
|
}
|
|
762
821
|
|
|
763
|
-
|
|
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 (!
|
|
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 (
|
|
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
|
-
}, [
|
|
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 (!
|
|
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 (
|
|
836
|
-
|
|
911
|
+
if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
|
|
912
|
+
debouncedSaveRef.current();
|
|
837
913
|
}
|
|
838
|
-
}, [
|
|
914
|
+
}, []); // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
|
|
839
915
|
|
|
840
916
|
const handleColumnVisible = useCallback(() => {
|
|
841
|
-
if (!
|
|
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 (
|
|
845
|
-
|
|
920
|
+
if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
|
|
921
|
+
debouncedSaveRef.current();
|
|
846
922
|
}
|
|
847
|
-
}, [
|
|
923
|
+
}, []); // ✅ FIX #3+: ŽÁDNÉ dependencies → handler se nikdy neregeneruje
|
|
848
924
|
|
|
849
925
|
const handleColumnPinned = useCallback(() => {
|
|
850
|
-
if (!
|
|
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 (
|
|
854
|
-
|
|
929
|
+
if (autoSaveRef.current && isInitializedRef.current && debouncedSaveRef.current) { // ✅ FIX #3+: Použít refs
|
|
930
|
+
debouncedSaveRef.current();
|
|
855
931
|
}
|
|
856
|
-
}, [
|
|
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 (!
|
|
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
|
-
[
|
|
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,
|
|
1481
|
+
isApplyingLayout,
|
|
1403
1482
|
error,
|
|
1404
1483
|
hasUnsavedChanges,
|
|
1405
1484
|
isInitialized,
|
|
1406
|
-
isGridReady,
|
|
1407
|
-
shouldShowColumns,
|
|
1408
|
-
preTransformedColumnDefs,
|
|
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,
|
|
1414
|
-
onColumnResized: handleColumnResized,
|
|
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,
|
|
1507
|
+
getCurrentColumnsForEditor,
|
|
1430
1508
|
|
|
1431
1509
|
// Data
|
|
1432
1510
|
savedFields: savedFields?.records || [],
|
|
1433
|
-
columnDefs,
|
|
1511
|
+
columnDefs,
|
|
1434
1512
|
|
|
1435
1513
|
// Utils
|
|
1436
1514
|
gridLayoutApi,
|
|
File without changes
|