@arbidocs/blocks 0.3.176 → 0.3.177

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
@@ -760,6 +760,12 @@ function GridView({
760
760
  },
761
761
  [onRowClick]
762
762
  );
763
+ const desiredHiddenRef = useRef(null);
764
+ const snapshotDesiredHidden = useCallback(() => {
765
+ const api = gridApiRef.current;
766
+ if (!api) return;
767
+ desiredHiddenRef.current = new Map(api.getColumnState().map((c) => [c.colId, !!c.hide]));
768
+ }, []);
763
769
  const handleGridReady = useCallback(
764
770
  (event) => {
765
771
  gridApiRef.current = event.api;
@@ -800,6 +806,7 @@ function GridView({
800
806
  }
801
807
  }
802
808
  ensureSelectionColumnVisible();
809
+ snapshotDesiredHidden();
803
810
  if (onGridReady) {
804
811
  onGridReady({ api: event.api });
805
812
  }
@@ -813,11 +820,36 @@ function GridView({
813
820
  });
814
821
  }
815
822
  },
816
- [onGridReady, getItemId, ensureSelectionColumnVisible, initialState, initialVisibleColumns]
823
+ [
824
+ onGridReady,
825
+ getItemId,
826
+ ensureSelectionColumnVisible,
827
+ snapshotDesiredHidden,
828
+ initialState,
829
+ initialVisibleColumns
830
+ ]
831
+ );
832
+ const handleColumnVisible = useCallback(
833
+ (event) => {
834
+ const api = gridApiRef.current;
835
+ if (!api) return;
836
+ if (event.source === "gridOptionsChanged") {
837
+ const desired = desiredHiddenRef.current;
838
+ if (!desired) return;
839
+ const fixes = api.getColumnState().filter(
840
+ (c) => c.colId !== "ag-Grid-SelectionColumn" && desired.has(c.colId) && desired.get(c.colId) !== !!c.hide
841
+ ).map((c) => ({ colId: c.colId, hide: desired.get(c.colId) }));
842
+ if (fixes.length) api.applyColumnState({ state: fixes });
843
+ } else {
844
+ snapshotDesiredHidden();
845
+ }
846
+ },
847
+ [snapshotDesiredHidden]
817
848
  );
818
849
  const handleFirstDataRendered = useCallback(() => {
819
850
  ensureSelectionColumnVisible();
820
- }, [ensureSelectionColumnVisible]);
851
+ snapshotDesiredHidden();
852
+ }, [ensureSelectionColumnVisible, snapshotDesiredHidden]);
821
853
  const handleModelUpdated = useCallback(() => {
822
854
  }, []);
823
855
  const prevItemsRef = useRef([]);
@@ -1036,6 +1068,7 @@ function GridView({
1036
1068
  onCellValueChanged,
1037
1069
  onRowClicked: handleRowClicked,
1038
1070
  onStateUpdated: handleStateUpdated,
1071
+ onColumnVisible: handleColumnVisible,
1039
1072
  ...combinedOptions
1040
1073
  }
1041
1074
  ) });