ag-grid-url-sync 0.3.0 → 0.4.1

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.
@@ -1,25 +1,137 @@
1
1
  import { useState, useEffect, useRef, useCallback, useMemo } from 'react';
2
2
  import { AGGridUrlSync } from '../core/ag-grid-url-sync.js';
3
3
  import { parseUrlFilters as parseFilters } from '../core/url-parser.js';
4
+ import { createViewStore } from '../core/view-storage.js';
4
5
  import { DEFAULT_CONFIG } from '../core/validation.js';
5
- /**
6
- * React hook for AG Grid URL synchronization
7
- *
8
- * @param gridApi - AG Grid API instance (can be null during initialization)
9
- * @param options - Configuration options for the hook
10
- * @returns Hook API for URL synchronization
11
- */
6
+ function sameViews(a, b) {
7
+ return a.length === b.length && JSON.stringify(a) === JSON.stringify(b);
8
+ }
9
+ function sameFilterModel(a, b) {
10
+ const keys = Object.keys(a);
11
+ return (keys.length === Object.keys(b).length &&
12
+ keys.every(key => JSON.stringify(a[key]) === JSON.stringify(b[key])));
13
+ }
14
+ function applicableModel(gridApi, model) {
15
+ if (typeof gridApi.getColumn !== 'function')
16
+ return model;
17
+ return Object.fromEntries(Object.entries(model).filter(([colId]) => gridApi.getColumn(colId)?.isFilterAllowed() ?? false));
18
+ }
19
+ function couldBeLanding(live, expected, before) {
20
+ return Object.keys(live).every(colId => Object.hasOwn(expected, colId) ||
21
+ (before !== null &&
22
+ Object.hasOwn(before, colId) &&
23
+ JSON.stringify(live[colId]) === JSON.stringify(before[colId])));
24
+ }
12
25
  export function useAGGridUrlSync(gridApi, options = {}) {
13
- const { autoApplyOnMount = false, enabledWhenReady = true, onError, ...coreOptions } = options;
14
- // Internal state
26
+ const { autoApplyOnMount = false, enabledWhenReady = true, onError, storageKey, ...coreOptions } = options;
15
27
  const [isReady, setIsReady] = useState(false);
16
28
  const [currentUrl, setCurrentUrl] = useState('');
17
29
  const [hasFilters, setHasFilters] = useState(false);
18
- // Refs to track state and prevent memory leaks
30
+ const viewStore = useMemo(() => (storageKey ? createViewStore(storageKey) : null), [storageKey]);
31
+ const [views, setViews] = useState([]);
32
+ const [activeViewId, setActiveViewId] = useState(null);
33
+ const activeViewIdRef = useRef(null);
34
+ const appliedModelRef = useRef(null);
35
+ const pendingWriteRef = useRef(null);
36
+ const writingRef = useRef(false);
37
+ const commitActiveViewId = useCallback((id) => {
38
+ activeViewIdRef.current = id;
39
+ setActiveViewId(id);
40
+ if (id === null) {
41
+ appliedModelRef.current = null;
42
+ pendingWriteRef.current = null;
43
+ }
44
+ }, []);
45
+ const applyModelToGrid = useCallback((api, model) => {
46
+ let before = null;
47
+ try {
48
+ before = api.getFilterModel() ?? {};
49
+ }
50
+ catch {
51
+ }
52
+ pendingWriteRef.current = {
53
+ before,
54
+ expected: applicableModel(api, model)
55
+ };
56
+ writingRef.current = true;
57
+ try {
58
+ api.setFilterModel(model);
59
+ }
60
+ catch (error) {
61
+ pendingWriteRef.current = null;
62
+ throw error;
63
+ }
64
+ finally {
65
+ writingRef.current = false;
66
+ }
67
+ if (!pendingWriteRef.current)
68
+ return;
69
+ let live = null;
70
+ try {
71
+ live = api.getFilterModel() ?? {};
72
+ }
73
+ catch {
74
+ }
75
+ if (live && (!before || !sameFilterModel(live, before))) {
76
+ pendingWriteRef.current = null;
77
+ appliedModelRef.current = live;
78
+ }
79
+ }, []);
80
+ const writeOverPendingView = useCallback((write) => {
81
+ const pending = pendingWriteRef.current;
82
+ if (!pending || !gridApi) {
83
+ write();
84
+ return;
85
+ }
86
+ const applied = appliedModelRef.current;
87
+ const activeId = activeViewIdRef.current;
88
+ let before = null;
89
+ try {
90
+ before = gridApi.getFilterModel() ?? {};
91
+ }
92
+ catch {
93
+ }
94
+ pendingWriteRef.current = null;
95
+ appliedModelRef.current = pending.expected;
96
+ const reinstate = () => {
97
+ if (pendingWriteRef.current || activeViewIdRef.current !== activeId) {
98
+ return;
99
+ }
100
+ pendingWriteRef.current = pending;
101
+ appliedModelRef.current = applied;
102
+ };
103
+ try {
104
+ write();
105
+ }
106
+ catch (error) {
107
+ reinstate();
108
+ throw error;
109
+ }
110
+ if (!before)
111
+ return;
112
+ try {
113
+ const live = gridApi.getFilterModel() ?? {};
114
+ if (sameFilterModel(live, before))
115
+ reinstate();
116
+ }
117
+ catch {
118
+ }
119
+ }, [gridApi]);
120
+ const syncViewsFromStore = useCallback(() => {
121
+ const nextViews = viewStore ? viewStore.listViews() : [];
122
+ setViews(prev => (sameViews(prev, nextViews) ? prev : nextViews));
123
+ }, [viewStore]);
19
124
  const urlSyncRef = useRef(null);
20
125
  const autoAppliedRef = useRef(false);
126
+ const urlAppliedRef = useRef(false);
21
127
  const lastGridApiRef = useRef(null);
22
- // Helper function to handle errors consistently
128
+ useEffect(() => {
129
+ syncViewsFromStore();
130
+ commitActiveViewId(null);
131
+ if (viewStore) {
132
+ autoAppliedRef.current = false;
133
+ }
134
+ }, [syncViewsFromStore, viewStore, commitActiveViewId]);
23
135
  const handleError = useCallback((error, context) => {
24
136
  const errorObj = error instanceof Error ? error : new Error(String(error));
25
137
  if (onError) {
@@ -29,16 +141,15 @@ export function useAGGridUrlSync(gridApi, options = {}) {
29
141
  console.error(`AG Grid URL Sync Error [${context}]:`, errorObj);
30
142
  }
31
143
  }, [onError]);
32
- // Initialize or update URL sync instance when grid API changes
33
144
  useEffect(() => {
34
145
  if (gridApi && enabledWhenReady) {
35
- // Clean up previous instance if grid API changed
36
146
  if (lastGridApiRef.current && lastGridApiRef.current !== gridApi) {
37
147
  urlSyncRef.current?.destroy();
38
148
  urlSyncRef.current = null;
39
149
  autoAppliedRef.current = false;
150
+ urlAppliedRef.current = false;
151
+ commitActiveViewId(null);
40
152
  }
41
- // Create new instance if needed
42
153
  if (!urlSyncRef.current) {
43
154
  try {
44
155
  urlSyncRef.current = new AGGridUrlSync(gridApi, coreOptions);
@@ -52,44 +163,165 @@ export function useAGGridUrlSync(gridApi, options = {}) {
52
163
  }
53
164
  }
54
165
  else {
55
- // Clean up when grid API is null or disabled
56
166
  if (urlSyncRef.current) {
57
167
  urlSyncRef.current.destroy();
58
168
  urlSyncRef.current = null;
59
169
  autoAppliedRef.current = false;
170
+ urlAppliedRef.current = false;
171
+ commitActiveViewId(null);
60
172
  }
61
173
  setIsReady(false);
62
174
  lastGridApiRef.current = null;
63
175
  }
64
- }, [gridApi, enabledWhenReady, coreOptions, handleError]);
65
- // Auto-apply URL filters on mount if enabled
176
+ }, [gridApi, enabledWhenReady, coreOptions, handleError, commitActiveViewId]);
177
+ const urlHasFilterParams = useCallback(() => {
178
+ if (typeof window === 'undefined')
179
+ return false;
180
+ const rawPrefix = coreOptions.paramPrefix || DEFAULT_CONFIG.paramPrefix;
181
+ const prefix = rawPrefix.endsWith('_') ? rawPrefix : `${rawPrefix}_`;
182
+ const groupedParams = new Set([
183
+ coreOptions.groupedParam ?? DEFAULT_CONFIG.groupedParam,
184
+ 'grid_filters',
185
+ 'filters'
186
+ ]);
187
+ const search = window.location.search;
188
+ const params = new URLSearchParams(search);
189
+ let hasFilterParam = false;
190
+ for (const key of params.keys()) {
191
+ if (key.startsWith(prefix) || groupedParams.has(key)) {
192
+ hasFilterParam = true;
193
+ break;
194
+ }
195
+ }
196
+ if (!hasFilterParam)
197
+ return false;
198
+ const probeConfig = {
199
+ gridApi: null,
200
+ paramPrefix: coreOptions.paramPrefix ?? DEFAULT_CONFIG.paramPrefix,
201
+ maxValueLength: coreOptions.maxValueLength ?? DEFAULT_CONFIG.maxValueLength,
202
+ onParseError: () => { },
203
+ serialization: coreOptions.serialization ?? DEFAULT_CONFIG.serialization,
204
+ groupedParam: coreOptions.groupedParam ?? DEFAULT_CONFIG.groupedParam,
205
+ format: coreOptions.format ?? DEFAULT_CONFIG.format
206
+ };
207
+ try {
208
+ return Object.keys(parseFilters(search, probeConfig)).length > 0;
209
+ }
210
+ catch {
211
+ return false;
212
+ }
213
+ }, [coreOptions]);
66
214
  useEffect(() => {
67
215
  if (isReady &&
68
216
  autoApplyOnMount &&
69
217
  !autoAppliedRef.current &&
70
218
  urlSyncRef.current) {
219
+ autoAppliedRef.current = true;
71
220
  try {
72
- urlSyncRef.current.applyFromUrl();
73
- autoAppliedRef.current = true;
221
+ if (!viewStore ||
222
+ !gridApi ||
223
+ (!urlAppliedRef.current && urlHasFilterParams())) {
224
+ urlSyncRef.current.applyFromUrl();
225
+ if (viewStore && gridApi) {
226
+ urlAppliedRef.current = true;
227
+ }
228
+ commitActiveViewId(null);
229
+ try {
230
+ viewStore?.persistActiveViewId(null);
231
+ }
232
+ catch (error) {
233
+ handleError(error, 'auto-apply-filters');
234
+ }
235
+ return;
236
+ }
237
+ const storedId = viewStore.getActiveViewId();
238
+ const stored = storedId
239
+ ? viewStore.listViews().find(view => view.id === storedId)
240
+ : undefined;
241
+ if (stored) {
242
+ try {
243
+ applyModelToGrid(gridApi, stored.filterModel);
244
+ commitActiveViewId(stored.id);
245
+ }
246
+ catch (error) {
247
+ handleError(error, 'auto-apply-filters');
248
+ }
249
+ }
74
250
  }
75
251
  catch (error) {
76
252
  handleError(error, 'auto-apply-filters');
77
253
  coreOptions.onParseError?.(error);
78
254
  }
79
255
  }
80
- }, [isReady, autoApplyOnMount, coreOptions, handleError]);
81
- // Update current URL and filter state on filter changes
256
+ }, [
257
+ isReady,
258
+ autoApplyOnMount,
259
+ coreOptions,
260
+ handleError,
261
+ urlHasFilterParams,
262
+ viewStore,
263
+ gridApi,
264
+ commitActiveViewId,
265
+ applyModelToGrid
266
+ ]);
82
267
  useEffect(() => {
83
268
  if (!isReady || !urlSyncRef.current || !gridApi) {
84
269
  setCurrentUrl('');
85
270
  setHasFilters(false);
86
271
  return;
87
272
  }
88
- const updateState = () => {
273
+ const syncActiveViewToGrid = (fromEvent, source) => {
274
+ const activeId = activeViewIdRef.current;
275
+ let applied = appliedModelRef.current;
276
+ if (!pendingWriteRef.current && (!activeId || !applied || !viewStore)) {
277
+ return;
278
+ }
279
+ let live;
280
+ try {
281
+ live = gridApi.getFilterModel() ?? {};
282
+ }
283
+ catch {
284
+ return;
285
+ }
286
+ const pending = pendingWriteRef.current;
287
+ if (pending) {
288
+ if (!fromEvent)
289
+ return;
290
+ const inWrite = writingRef.current;
291
+ if (!inWrite &&
292
+ pending.before &&
293
+ sameFilterModel(live, pending.before)) {
294
+ return;
295
+ }
296
+ pendingWriteRef.current = null;
297
+ if (inWrite ||
298
+ (source === 'api' &&
299
+ couldBeLanding(live, pending.expected, pending.before)) ||
300
+ sameFilterModel(live, pending.expected)) {
301
+ appliedModelRef.current = live;
302
+ return;
303
+ }
304
+ applied = pending.expected;
305
+ }
306
+ if (!activeId || !applied || !viewStore)
307
+ return;
308
+ if (sameFilterModel(live, applied))
309
+ return;
310
+ commitActiveViewId(null);
311
+ try {
312
+ if (viewStore.getActiveViewId() === activeId) {
313
+ viewStore.persistActiveViewId(null);
314
+ }
315
+ }
316
+ catch (error) {
317
+ handleError(error, 'filter-change');
318
+ }
319
+ };
320
+ const updateState = (fromEvent, source) => {
321
+ syncActiveViewToGrid(fromEvent, source);
89
322
  try {
90
323
  const newUrl = urlSyncRef.current.generateUrl();
91
324
  setCurrentUrl(newUrl);
92
- // Check if there are active filters by comparing query params
93
325
  const queryParams = urlSyncRef.current.getQueryParams();
94
326
  const searchParams = new URLSearchParams(queryParams);
95
327
  setHasFilters([...searchParams.entries()].length > 0);
@@ -98,17 +330,13 @@ export function useAGGridUrlSync(gridApi, options = {}) {
98
330
  handleError(error, 'update-state');
99
331
  }
100
332
  };
101
- // Attach event listener for filter changes
102
- const onFilterChanged = () => updateState();
333
+ const onFilterChanged = (event) => updateState(true, event?.source);
103
334
  gridApi.addEventListener('filterChanged', onFilterChanged);
104
- // Initial state update
105
- updateState();
106
- // Cleanup event listener on unmount or gridApi change
335
+ updateState(false);
107
336
  return () => {
108
337
  gridApi.removeEventListener('filterChanged', onFilterChanged);
109
338
  };
110
- }, [isReady, gridApi, handleError]);
111
- // Cleanup on unmount
339
+ }, [isReady, gridApi, handleError, viewStore, commitActiveViewId]);
112
340
  useEffect(() => {
113
341
  return () => {
114
342
  if (urlSyncRef.current) {
@@ -117,7 +345,6 @@ export function useAGGridUrlSync(gridApi, options = {}) {
117
345
  }
118
346
  };
119
347
  }, []);
120
- // Memoized API methods
121
348
  const shareUrl = useCallback((baseUrl) => {
122
349
  if (!urlSyncRef.current) {
123
350
  return (baseUrl ?? (typeof window !== 'undefined' ? window.location.href : ''));
@@ -150,13 +377,14 @@ export function useAGGridUrlSync(gridApi, options = {}) {
150
377
  return;
151
378
  }
152
379
  try {
153
- urlSyncRef.current.applyFromUrl(url);
380
+ const sync = urlSyncRef.current;
381
+ writeOverPendingView(() => sync.applyFromUrl(url));
154
382
  }
155
383
  catch (error) {
156
384
  handleError(error, 'apply-url-filters');
157
385
  coreOptions.onParseError?.(error);
158
386
  }
159
- }, [coreOptions, handleError]);
387
+ }, [coreOptions, handleError, writeOverPendingView]);
160
388
  const clearFilters = useCallback(() => {
161
389
  if (!urlSyncRef.current) {
162
390
  const warningMessage = 'clearFilters called while the hook is not ready.';
@@ -165,15 +393,16 @@ export function useAGGridUrlSync(gridApi, options = {}) {
165
393
  return;
166
394
  }
167
395
  try {
168
- urlSyncRef.current.clearFilters();
396
+ const sync = urlSyncRef.current;
397
+ writeOverPendingView(() => sync.clearFilters());
169
398
  }
170
399
  catch (error) {
171
400
  handleError(error, 'clear-filters');
172
401
  }
173
- }, [handleError, coreOptions]);
402
+ }, [handleError, coreOptions, writeOverPendingView]);
174
403
  const parseUrlFilters = useCallback((url) => {
175
404
  if (!gridApi) {
176
- return {}; // Silently return empty state if grid API not available
405
+ return {};
177
406
  }
178
407
  try {
179
408
  const config = {
@@ -201,12 +430,13 @@ export function useAGGridUrlSync(gridApi, options = {}) {
201
430
  return;
202
431
  }
203
432
  try {
204
- urlSyncRef.current.applyFilters(filters);
433
+ const sync = urlSyncRef.current;
434
+ writeOverPendingView(() => sync.applyFilters(filters));
205
435
  }
206
436
  catch (error) {
207
437
  handleError(error, 'apply-filters');
208
438
  }
209
- }, [handleError, coreOptions]);
439
+ }, [handleError, coreOptions, writeOverPendingView]);
210
440
  const getFiltersAsFormat = useCallback((format) => {
211
441
  if (!urlSyncRef.current) {
212
442
  return '';
@@ -231,7 +461,134 @@ export function useAGGridUrlSync(gridApi, options = {}) {
231
461
  return DEFAULT_CONFIG.serialization;
232
462
  }
233
463
  }, [handleError]);
234
- // Return the hook API
464
+ const reportNotReady = useCallback((operation, context) => {
465
+ handleError(new Error(`${operation} called while the hook is not ready.`), context);
466
+ }, [handleError]);
467
+ const saveView = useCallback((name) => {
468
+ if (!viewStore || !enabledWhenReady) {
469
+ return null;
470
+ }
471
+ if (!urlSyncRef.current || !gridApi) {
472
+ reportNotReady('saveView', 'save-view');
473
+ return null;
474
+ }
475
+ try {
476
+ const view = viewStore.saveView(name, gridApi.getFilterModel());
477
+ syncViewsFromStore();
478
+ commitActiveViewId(view.id);
479
+ appliedModelRef.current = view.filterModel;
480
+ pendingWriteRef.current = null;
481
+ return view;
482
+ }
483
+ catch (error) {
484
+ handleError(error, 'save-view');
485
+ return null;
486
+ }
487
+ }, [
488
+ viewStore,
489
+ gridApi,
490
+ handleError,
491
+ syncViewsFromStore,
492
+ reportNotReady,
493
+ enabledWhenReady,
494
+ commitActiveViewId
495
+ ]);
496
+ const loadView = useCallback((id) => {
497
+ if (!viewStore || !enabledWhenReady) {
498
+ return;
499
+ }
500
+ if (!urlSyncRef.current || !gridApi) {
501
+ reportNotReady('loadView', 'load-view');
502
+ return;
503
+ }
504
+ try {
505
+ const previous = activeViewIdRef.current;
506
+ const previousApplied = appliedModelRef.current;
507
+ const rollBack = () => {
508
+ commitActiveViewId(previous);
509
+ appliedModelRef.current = previousApplied;
510
+ };
511
+ if (id == null) {
512
+ commitActiveViewId(null);
513
+ try {
514
+ applyModelToGrid(gridApi, {});
515
+ }
516
+ catch (error) {
517
+ rollBack();
518
+ throw error;
519
+ }
520
+ viewStore.persistActiveViewId(null);
521
+ return;
522
+ }
523
+ const view = viewStore
524
+ .listViews()
525
+ .find(candidate => candidate.id === id);
526
+ if (!view) {
527
+ syncViewsFromStore();
528
+ handleError(new Error(`No saved view with id "${id}"`), 'load-view');
529
+ return;
530
+ }
531
+ commitActiveViewId(view.id);
532
+ try {
533
+ applyModelToGrid(gridApi, view.filterModel);
534
+ }
535
+ catch (error) {
536
+ rollBack();
537
+ throw error;
538
+ }
539
+ if (activeViewIdRef.current === view.id) {
540
+ viewStore.persistActiveViewId(view.id);
541
+ }
542
+ }
543
+ catch (error) {
544
+ handleError(error, 'load-view');
545
+ }
546
+ }, [
547
+ gridApi,
548
+ viewStore,
549
+ handleError,
550
+ reportNotReady,
551
+ syncViewsFromStore,
552
+ enabledWhenReady,
553
+ commitActiveViewId,
554
+ applyModelToGrid
555
+ ]);
556
+ const deleteView = useCallback((id) => {
557
+ if (!viewStore || !enabledWhenReady) {
558
+ return;
559
+ }
560
+ try {
561
+ const wasActive = activeViewIdRef.current === id;
562
+ const view = viewStore.listViews().find(entry => entry.id === id);
563
+ const applied = appliedModelRef.current ?? view?.filterModel;
564
+ viewStore.deleteView(id);
565
+ syncViewsFromStore();
566
+ if (wasActive) {
567
+ commitActiveViewId(null);
568
+ }
569
+ if (wasActive && applied !== undefined && gridApi !== null) {
570
+ try {
571
+ const current = gridApi.getFilterModel();
572
+ if (current && sameFilterModel(current, applied)) {
573
+ gridApi.setFilterModel({});
574
+ }
575
+ }
576
+ catch (error) {
577
+ handleError(error, 'delete-view');
578
+ }
579
+ }
580
+ }
581
+ catch (error) {
582
+ handleError(error, 'delete-view');
583
+ }
584
+ }, [
585
+ viewStore,
586
+ gridApi,
587
+ handleError,
588
+ syncViewsFromStore,
589
+ enabledWhenReady,
590
+ commitActiveViewId
591
+ ]);
235
592
  return useMemo(() => ({
236
593
  shareUrl,
237
594
  getQueryParams,
@@ -243,7 +600,12 @@ export function useAGGridUrlSync(gridApi, options = {}) {
243
600
  parseUrlFilters,
244
601
  applyFilters,
245
602
  getFiltersAsFormat,
246
- getCurrentFormat
603
+ getCurrentFormat,
604
+ views,
605
+ activeViewId,
606
+ saveView,
607
+ loadView,
608
+ deleteView
247
609
  }), [
248
610
  shareUrl,
249
611
  getQueryParams,
@@ -255,7 +617,12 @@ export function useAGGridUrlSync(gridApi, options = {}) {
255
617
  parseUrlFilters,
256
618
  applyFilters,
257
619
  getFiltersAsFormat,
258
- getCurrentFormat
620
+ getCurrentFormat,
621
+ views,
622
+ activeViewId,
623
+ saveView,
624
+ loadView,
625
+ deleteView
259
626
  ]);
260
627
  }
261
628
  //# sourceMappingURL=use-ag-grid-url-sync.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-ag-grid-url-sync.js","sourceRoot":"","sources":["../../src/react/use-ag-grid-url-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-ag-grid-url-sync.js","sourceRoot":"","sources":["../../src/react/use-ag-grid-url-sync.ts"],"names":[],"mappings":"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"}