@procore/saved-views 5.1.0-alpha.3 → 5.1.0-alpha.4

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.
@@ -14697,7 +14697,7 @@ var ViewStorage = {
14697
14697
  var getUpdatedSearchParams = (currentParams, view) => {
14698
14698
  const updatedParams = new URLSearchParams(currentParams);
14699
14699
  if (view.id === "default") {
14700
- updatedParams.delete("saved-view");
14700
+ updatedParams.set("saved-view", "default");
14701
14701
  } else if (view.id === "temporary") {
14702
14702
  updatedParams.set("saved-view", "temporary");
14703
14703
  } else {
@@ -14712,6 +14712,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14712
14712
  const storageKey = `${config.domain}_${config.tableName}_${config.stickyViewsKey}_${config.projectId}_${config.userId}`;
14713
14713
  const temporaryStorageKey = `${storageKey}_temporary`;
14714
14714
  const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
14715
+ const previousSavedViewParamRef = (0, import_react13.useRef)(null);
14715
14716
  const [selectedSavedView, setSelectedSavedView] = (0, import_react13.useState)(() => {
14716
14717
  const stored = ViewStorage.load(storageKey);
14717
14718
  return stored ?? config.defaultView;
@@ -14781,8 +14782,9 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14781
14782
  const viewInList = allViews.find((view) => view.share_token === viewId);
14782
14783
  if (viewInList) {
14783
14784
  selectView(viewInList);
14785
+ } else {
14786
+ openSharedViewModal(viewId);
14784
14787
  }
14785
- openSharedViewModal(viewId);
14786
14788
  },
14787
14789
  [isViewAlreadySelected, openSharedViewModal, allViews, selectView]
14788
14790
  );
@@ -14800,6 +14802,22 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14800
14802
  handleSavedViewFromUrl,
14801
14803
  allViews.length
14802
14804
  ]);
14805
+ (0, import_react13.useEffect)(() => {
14806
+ const currentSavedViewParam = searchParams.get("saved-view");
14807
+ if (previousSavedViewParamRef.current && !currentSavedViewParam) {
14808
+ setSearchParams(
14809
+ (currentParams) => {
14810
+ const updatedParams = new URLSearchParams(currentParams);
14811
+ updatedParams.set("saved-view", previousSavedViewParamRef.current);
14812
+ return updatedParams;
14813
+ },
14814
+ { replace: true }
14815
+ );
14816
+ }
14817
+ if (currentSavedViewParam) {
14818
+ previousSavedViewParamRef.current = currentSavedViewParam;
14819
+ }
14820
+ }, [searchParams.get("saved-view"), setSearchParams]);
14803
14821
  return {
14804
14822
  selectedView: selectedSavedView,
14805
14823
  selectView,
@@ -14820,7 +14838,6 @@ var SavedViewsContent = (props) => {
14820
14838
  const queryInput = {
14821
14839
  domain: props.domain,
14822
14840
  tableName: props.tableName,
14823
- enableSavedViews: props.enableSavedViews,
14824
14841
  projectId,
14825
14842
  companyId
14826
14843
  };
@@ -14719,7 +14719,7 @@ var SharedViewFormModal = ({
14719
14719
  };
14720
14720
 
14721
14721
  // src/utils/Hooks/useViewSelection.ts
14722
- import { useState as useState4, useCallback as useCallback2, useEffect as useEffect3 } from "react";
14722
+ import { useState as useState4, useCallback as useCallback2, useEffect as useEffect3, useRef as useRef2 } from "react";
14723
14723
  import { useSearchParams } from "react-router-dom";
14724
14724
 
14725
14725
  // src/utils/viewStorage.ts
@@ -14744,7 +14744,7 @@ var ViewStorage = {
14744
14744
  var getUpdatedSearchParams = (currentParams, view) => {
14745
14745
  const updatedParams = new URLSearchParams(currentParams);
14746
14746
  if (view.id === "default") {
14747
- updatedParams.delete("saved-view");
14747
+ updatedParams.set("saved-view", "default");
14748
14748
  } else if (view.id === "temporary") {
14749
14749
  updatedParams.set("saved-view", "temporary");
14750
14750
  } else {
@@ -14759,6 +14759,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14759
14759
  const storageKey = `${config.domain}_${config.tableName}_${config.stickyViewsKey}_${config.projectId}_${config.userId}`;
14760
14760
  const temporaryStorageKey = `${storageKey}_temporary`;
14761
14761
  const [searchParams, setSearchParams] = useSearchParams();
14762
+ const previousSavedViewParamRef = useRef2(null);
14762
14763
  const [selectedSavedView, setSelectedSavedView] = useState4(() => {
14763
14764
  const stored = ViewStorage.load(storageKey);
14764
14765
  return stored ?? config.defaultView;
@@ -14828,8 +14829,9 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14828
14829
  const viewInList = allViews.find((view) => view.share_token === viewId);
14829
14830
  if (viewInList) {
14830
14831
  selectView(viewInList);
14832
+ } else {
14833
+ openSharedViewModal(viewId);
14831
14834
  }
14832
- openSharedViewModal(viewId);
14833
14835
  },
14834
14836
  [isViewAlreadySelected, openSharedViewModal, allViews, selectView]
14835
14837
  );
@@ -14847,6 +14849,22 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14847
14849
  handleSavedViewFromUrl,
14848
14850
  allViews.length
14849
14851
  ]);
14852
+ useEffect3(() => {
14853
+ const currentSavedViewParam = searchParams.get("saved-view");
14854
+ if (previousSavedViewParamRef.current && !currentSavedViewParam) {
14855
+ setSearchParams(
14856
+ (currentParams) => {
14857
+ const updatedParams = new URLSearchParams(currentParams);
14858
+ updatedParams.set("saved-view", previousSavedViewParamRef.current);
14859
+ return updatedParams;
14860
+ },
14861
+ { replace: true }
14862
+ );
14863
+ }
14864
+ if (currentSavedViewParam) {
14865
+ previousSavedViewParamRef.current = currentSavedViewParam;
14866
+ }
14867
+ }, [searchParams.get("saved-view"), setSearchParams]);
14850
14868
  return {
14851
14869
  selectedView: selectedSavedView,
14852
14870
  selectView,
@@ -14867,7 +14885,6 @@ var SavedViewsContent = (props) => {
14867
14885
  const queryInput = {
14868
14886
  domain: props.domain,
14869
14887
  tableName: props.tableName,
14870
- enableSavedViews: props.enableSavedViews,
14871
14888
  projectId,
14872
14889
  companyId
14873
14890
  };
@@ -14692,7 +14692,7 @@ var ViewStorage = {
14692
14692
  var getUpdatedSearchParams = (currentParams, view) => {
14693
14693
  const updatedParams = new URLSearchParams(currentParams);
14694
14694
  if (view.id === "default") {
14695
- updatedParams.delete("saved-view");
14695
+ updatedParams.set("saved-view", "default");
14696
14696
  } else if (view.id === "temporary") {
14697
14697
  updatedParams.set("saved-view", "temporary");
14698
14698
  } else {
@@ -14707,6 +14707,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14707
14707
  const storageKey = `${config.domain}_${config.tableName}_${config.stickyViewsKey}_${config.projectId}_${config.userId}`;
14708
14708
  const temporaryStorageKey = `${storageKey}_temporary`;
14709
14709
  const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
14710
+ const previousSavedViewParamRef = (0, import_react13.useRef)(null);
14710
14711
  const [selectedSavedView, setSelectedSavedView] = (0, import_react13.useState)(() => {
14711
14712
  const stored = ViewStorage.load(storageKey);
14712
14713
  return stored ?? config.defaultView;
@@ -14776,8 +14777,9 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14776
14777
  const viewInList = allViews.find((view) => view.share_token === viewId);
14777
14778
  if (viewInList) {
14778
14779
  selectView(viewInList);
14780
+ } else {
14781
+ openSharedViewModal(viewId);
14779
14782
  }
14780
- openSharedViewModal(viewId);
14781
14783
  },
14782
14784
  [isViewAlreadySelected, openSharedViewModal, allViews, selectView]
14783
14785
  );
@@ -14795,6 +14797,22 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14795
14797
  handleSavedViewFromUrl,
14796
14798
  allViews.length
14797
14799
  ]);
14800
+ (0, import_react13.useEffect)(() => {
14801
+ const currentSavedViewParam = searchParams.get("saved-view");
14802
+ if (previousSavedViewParamRef.current && !currentSavedViewParam) {
14803
+ setSearchParams(
14804
+ (currentParams) => {
14805
+ const updatedParams = new URLSearchParams(currentParams);
14806
+ updatedParams.set("saved-view", previousSavedViewParamRef.current);
14807
+ return updatedParams;
14808
+ },
14809
+ { replace: true }
14810
+ );
14811
+ }
14812
+ if (currentSavedViewParam) {
14813
+ previousSavedViewParamRef.current = currentSavedViewParam;
14814
+ }
14815
+ }, [searchParams.get("saved-view"), setSearchParams]);
14798
14816
  return {
14799
14817
  selectedView: selectedSavedView,
14800
14818
  selectView,
@@ -14815,7 +14833,6 @@ var SavedViewsContent = (props) => {
14815
14833
  const queryInput = {
14816
14834
  domain: props.domain,
14817
14835
  tableName: props.tableName,
14818
- enableSavedViews: props.enableSavedViews,
14819
14836
  projectId,
14820
14837
  companyId
14821
14838
  };
@@ -14714,7 +14714,7 @@ var SharedViewFormModal = ({
14714
14714
  };
14715
14715
 
14716
14716
  // src/utils/Hooks/useViewSelection.ts
14717
- import { useState as useState4, useCallback as useCallback2, useEffect as useEffect3 } from "react";
14717
+ import { useState as useState4, useCallback as useCallback2, useEffect as useEffect3, useRef as useRef2 } from "react";
14718
14718
  import { useSearchParams } from "react-router-dom";
14719
14719
 
14720
14720
  // src/utils/viewStorage.ts
@@ -14739,7 +14739,7 @@ var ViewStorage = {
14739
14739
  var getUpdatedSearchParams = (currentParams, view) => {
14740
14740
  const updatedParams = new URLSearchParams(currentParams);
14741
14741
  if (view.id === "default") {
14742
- updatedParams.delete("saved-view");
14742
+ updatedParams.set("saved-view", "default");
14743
14743
  } else if (view.id === "temporary") {
14744
14744
  updatedParams.set("saved-view", "temporary");
14745
14745
  } else {
@@ -14754,6 +14754,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14754
14754
  const storageKey = `${config.domain}_${config.tableName}_${config.stickyViewsKey}_${config.projectId}_${config.userId}`;
14755
14755
  const temporaryStorageKey = `${storageKey}_temporary`;
14756
14756
  const [searchParams, setSearchParams] = useSearchParams();
14757
+ const previousSavedViewParamRef = useRef2(null);
14757
14758
  const [selectedSavedView, setSelectedSavedView] = useState4(() => {
14758
14759
  const stored = ViewStorage.load(storageKey);
14759
14760
  return stored ?? config.defaultView;
@@ -14823,8 +14824,9 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14823
14824
  const viewInList = allViews.find((view) => view.share_token === viewId);
14824
14825
  if (viewInList) {
14825
14826
  selectView(viewInList);
14827
+ } else {
14828
+ openSharedViewModal(viewId);
14826
14829
  }
14827
- openSharedViewModal(viewId);
14828
14830
  },
14829
14831
  [isViewAlreadySelected, openSharedViewModal, allViews, selectView]
14830
14832
  );
@@ -14842,6 +14844,22 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14842
14844
  handleSavedViewFromUrl,
14843
14845
  allViews.length
14844
14846
  ]);
14847
+ useEffect3(() => {
14848
+ const currentSavedViewParam = searchParams.get("saved-view");
14849
+ if (previousSavedViewParamRef.current && !currentSavedViewParam) {
14850
+ setSearchParams(
14851
+ (currentParams) => {
14852
+ const updatedParams = new URLSearchParams(currentParams);
14853
+ updatedParams.set("saved-view", previousSavedViewParamRef.current);
14854
+ return updatedParams;
14855
+ },
14856
+ { replace: true }
14857
+ );
14858
+ }
14859
+ if (currentSavedViewParam) {
14860
+ previousSavedViewParamRef.current = currentSavedViewParam;
14861
+ }
14862
+ }, [searchParams.get("saved-view"), setSearchParams]);
14845
14863
  return {
14846
14864
  selectedView: selectedSavedView,
14847
14865
  selectView,
@@ -14862,7 +14880,6 @@ var SavedViewsContent = (props) => {
14862
14880
  const queryInput = {
14863
14881
  domain: props.domain,
14864
14882
  tableName: props.tableName,
14865
- enableSavedViews: props.enableSavedViews,
14866
14883
  projectId,
14867
14884
  companyId
14868
14885
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@procore/saved-views",
3
- "version": "5.1.0-alpha.3",
3
+ "version": "5.1.0-alpha.4",
4
4
  "description": "Saved Views Component for Data Table",
5
5
  "author": "Procore Technologies, Inc",
6
6
  "repository": {