@procore/saved-views 5.1.0-alpha.5 → 5.1.0-alpha.6
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/legacy/index.js +25 -23
- package/dist/legacy/index.mjs +25 -23
- package/dist/modern/index.js +25 -22
- package/dist/modern/index.mjs +25 -22
- package/package.json +1 -1
package/dist/legacy/index.js
CHANGED
|
@@ -11881,7 +11881,9 @@ var PanelContent = (props) => {
|
|
|
11881
11881
|
const { showToast } = (0, import_toast_alert2.useToastAlertContext)();
|
|
11882
11882
|
const I18n = (0, import_core_react8.useI18nContext)();
|
|
11883
11883
|
const { data: savedViewsFromQuery, error: savedViewsError } = useSavedViewsQuery(props.queryInput);
|
|
11884
|
-
const
|
|
11884
|
+
const updateMutation = useUpdateSavedView(queryInput);
|
|
11885
|
+
const { mutate: updateSavedView } = updateMutation;
|
|
11886
|
+
const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
|
|
11885
11887
|
const savedViews = props.savedViews ?? savedViewsFromQuery;
|
|
11886
11888
|
const errorToastRef = import_react9.default.useRef(null);
|
|
11887
11889
|
import_react9.default.useEffect(() => {
|
|
@@ -14710,9 +14712,6 @@ var SharedViewFormModal = ({
|
|
|
14710
14712
|
);
|
|
14711
14713
|
};
|
|
14712
14714
|
|
|
14713
|
-
// src/components/saved-views/SavedViews.tsx
|
|
14714
|
-
var import_toast_alert4 = require("@procore/toast-alert");
|
|
14715
|
-
|
|
14716
14715
|
// src/utils/hooks/useViewSelection.ts
|
|
14717
14716
|
var import_react12 = require("react");
|
|
14718
14717
|
var import_react_router_dom = require("react-router-dom");
|
|
@@ -14726,8 +14725,14 @@ var ViewStorage = {
|
|
|
14726
14725
|
load(key, defaultView) {
|
|
14727
14726
|
try {
|
|
14728
14727
|
const stored = localStorage.getItem(key);
|
|
14729
|
-
|
|
14730
|
-
|
|
14728
|
+
if (!stored)
|
|
14729
|
+
return defaultView;
|
|
14730
|
+
const parsed = JSON.parse(stored);
|
|
14731
|
+
if (!parsed)
|
|
14732
|
+
return defaultView;
|
|
14733
|
+
const isTableConfigOnly = !parsed.id && !parsed.share_token;
|
|
14734
|
+
return isTableConfigOnly ? { ...defaultView, table_config: parsed } : parsed;
|
|
14735
|
+
} catch {
|
|
14731
14736
|
return defaultView;
|
|
14732
14737
|
}
|
|
14733
14738
|
},
|
|
@@ -14772,7 +14777,7 @@ var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
|
14772
14777
|
);
|
|
14773
14778
|
}
|
|
14774
14779
|
};
|
|
14775
|
-
var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
14780
|
+
var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) => {
|
|
14776
14781
|
const I18n = (0, import_core_react13.useI18nContext)();
|
|
14777
14782
|
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
|
|
14778
14783
|
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
@@ -14783,7 +14788,8 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14783
14788
|
return stored ?? config.defaultView;
|
|
14784
14789
|
});
|
|
14785
14790
|
const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
|
|
14786
|
-
|
|
14791
|
+
const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14792
|
+
return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
|
|
14787
14793
|
});
|
|
14788
14794
|
const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
|
|
14789
14795
|
(view) => {
|
|
@@ -14792,7 +14798,10 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14792
14798
|
},
|
|
14793
14799
|
[storageKey, setSearchParams]
|
|
14794
14800
|
);
|
|
14795
|
-
const baseViews =
|
|
14801
|
+
const baseViews = (0, import_react12.useMemo)(
|
|
14802
|
+
() => [...savedViews ?? [], ...presetViews ?? []],
|
|
14803
|
+
[savedViews, presetViews]
|
|
14804
|
+
);
|
|
14796
14805
|
const allViews = (0, import_react12.useMemo)(
|
|
14797
14806
|
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14798
14807
|
[baseViews, temporaryView]
|
|
@@ -14804,7 +14813,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14804
14813
|
persistViewToStorageAndUrl(viewToSelect);
|
|
14805
14814
|
return viewToSelect;
|
|
14806
14815
|
},
|
|
14807
|
-
[config, persistViewToStorageAndUrl
|
|
14816
|
+
[config, persistViewToStorageAndUrl]
|
|
14808
14817
|
);
|
|
14809
14818
|
const createTemporaryView = (0, import_react12.useCallback)(
|
|
14810
14819
|
(fetchedView) => {
|
|
@@ -14857,14 +14866,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14857
14866
|
if (savedViewId && allViews.length > 0) {
|
|
14858
14867
|
handleSavedViewFromUrl(savedViewId);
|
|
14859
14868
|
}
|
|
14860
|
-
}, [
|
|
14861
|
-
searchParams,
|
|
14862
|
-
savedViews,
|
|
14863
|
-
temporaryView,
|
|
14864
|
-
handleSavedViewFromUrl,
|
|
14865
|
-
setSearchParams,
|
|
14866
|
-
allViews.length
|
|
14867
|
-
]);
|
|
14869
|
+
}, [searchParams, handleSavedViewFromUrl, allViews.length]);
|
|
14868
14870
|
return {
|
|
14869
14871
|
selectedView: selectedSavedView,
|
|
14870
14872
|
selectView,
|
|
@@ -14923,6 +14925,7 @@ var SavedViewsContent = (props) => {
|
|
|
14923
14925
|
onSelect: props.onSelect
|
|
14924
14926
|
},
|
|
14925
14927
|
savedViews,
|
|
14928
|
+
props.presetViews,
|
|
14926
14929
|
openSharedViewModal
|
|
14927
14930
|
);
|
|
14928
14931
|
const { data: fetchedView, isError: fetchError } = useFetchSavedViewById(
|
|
@@ -15061,7 +15064,7 @@ var SavedViewsContent = (props) => {
|
|
|
15061
15064
|
));
|
|
15062
15065
|
};
|
|
15063
15066
|
var SavedViews = (props) => {
|
|
15064
|
-
return /* @__PURE__ */ import_react13.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react13.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react13.default.createElement(
|
|
15067
|
+
return /* @__PURE__ */ import_react13.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react13.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react13.default.createElement(import_toast_alert3.ToastAlertProvider, null, /* @__PURE__ */ import_react13.default.createElement(SavedViewsContent, { ...props }))));
|
|
15065
15068
|
};
|
|
15066
15069
|
|
|
15067
15070
|
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
@@ -15106,9 +15109,9 @@ var getColumnStateFromDefs = (columnDefs) => {
|
|
|
15106
15109
|
var extractDefaultView = (gridApi, receivedConfig) => {
|
|
15107
15110
|
var _a, _b;
|
|
15108
15111
|
const columnDefs = gridApi.getColumnDefs() ?? [];
|
|
15109
|
-
const defaultColumnState = getColumnStateFromDefs(columnDefs);
|
|
15112
|
+
const defaultColumnState = ((_a = receivedConfig == null ? void 0 : receivedConfig.columnState) == null ? void 0 : _a.length) ? receivedConfig.columnState : getColumnStateFromDefs(columnDefs);
|
|
15110
15113
|
const result = {
|
|
15111
|
-
columnState:
|
|
15114
|
+
columnState: defaultColumnState,
|
|
15112
15115
|
columnGroupState: (receivedConfig == null ? void 0 : receivedConfig.columnGroupState) ?? [],
|
|
15113
15116
|
rowGroupState: (receivedConfig == null ? void 0 : receivedConfig.rowGroupState) ?? [],
|
|
15114
15117
|
filterState: (receivedConfig == null ? void 0 : receivedConfig.filterState) ?? {},
|
|
@@ -15276,7 +15279,6 @@ var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
|
|
|
15276
15279
|
|
|
15277
15280
|
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15278
15281
|
var DataTableSavedViews = (0, import_react18.forwardRef)((props, ref) => {
|
|
15279
|
-
var _a;
|
|
15280
15282
|
const { tableApi, userId, projectId, companyId } = props;
|
|
15281
15283
|
const presetViews = useNormalizedDefaultViews2(
|
|
15282
15284
|
props.defaultViews,
|
|
@@ -15284,7 +15286,7 @@ var DataTableSavedViews = (0, import_react18.forwardRef)((props, ref) => {
|
|
|
15284
15286
|
);
|
|
15285
15287
|
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15286
15288
|
const [internalTableConfig, setInternalTableConfig] = (0, import_react18.useState)(
|
|
15287
|
-
|
|
15289
|
+
ViewStorage.load(props.stickyViewsKey, defaultView).table_config
|
|
15288
15290
|
);
|
|
15289
15291
|
(0, import_react18.useImperativeHandle)(ref, () => ({
|
|
15290
15292
|
setTableConfig: (newConfig) => {
|
package/dist/legacy/index.mjs
CHANGED
|
@@ -11888,7 +11888,9 @@ var PanelContent = (props) => {
|
|
|
11888
11888
|
const { showToast } = useToastAlertContext2();
|
|
11889
11889
|
const I18n = useI18nContext5();
|
|
11890
11890
|
const { data: savedViewsFromQuery, error: savedViewsError } = useSavedViewsQuery(props.queryInput);
|
|
11891
|
-
const
|
|
11891
|
+
const updateMutation = useUpdateSavedView(queryInput);
|
|
11892
|
+
const { mutate: updateSavedView } = updateMutation;
|
|
11893
|
+
const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
|
|
11892
11894
|
const savedViews = props.savedViews ?? savedViewsFromQuery;
|
|
11893
11895
|
const errorToastRef = React17.useRef(null);
|
|
11894
11896
|
React17.useEffect(() => {
|
|
@@ -12015,7 +12017,7 @@ import {
|
|
|
12015
12017
|
} from "@procore/core-react";
|
|
12016
12018
|
import React22, { useState as useState4, useEffect as useEffect3, useCallback as useCallback3 } from "react";
|
|
12017
12019
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
12018
|
-
import { useToastAlertContext as useToastAlertContext3 } from "@procore/toast-alert";
|
|
12020
|
+
import { useToastAlertContext as useToastAlertContext3, ToastAlertProvider } from "@procore/toast-alert";
|
|
12019
12021
|
|
|
12020
12022
|
// src/components/modals/DeleteConfirmationModal.tsx
|
|
12021
12023
|
import {
|
|
@@ -14754,9 +14756,6 @@ var SharedViewFormModal = ({
|
|
|
14754
14756
|
);
|
|
14755
14757
|
};
|
|
14756
14758
|
|
|
14757
|
-
// src/components/saved-views/SavedViews.tsx
|
|
14758
|
-
import { ToastAlertProvider } from "@procore/toast-alert";
|
|
14759
|
-
|
|
14760
14759
|
// src/utils/hooks/useViewSelection.ts
|
|
14761
14760
|
import { useState as useState3, useCallback as useCallback2, useEffect as useEffect2, useRef as useRef2, useMemo } from "react";
|
|
14762
14761
|
import { useSearchParams } from "react-router-dom";
|
|
@@ -14770,8 +14769,14 @@ var ViewStorage = {
|
|
|
14770
14769
|
load(key, defaultView) {
|
|
14771
14770
|
try {
|
|
14772
14771
|
const stored = localStorage.getItem(key);
|
|
14773
|
-
|
|
14774
|
-
|
|
14772
|
+
if (!stored)
|
|
14773
|
+
return defaultView;
|
|
14774
|
+
const parsed = JSON.parse(stored);
|
|
14775
|
+
if (!parsed)
|
|
14776
|
+
return defaultView;
|
|
14777
|
+
const isTableConfigOnly = !parsed.id && !parsed.share_token;
|
|
14778
|
+
return isTableConfigOnly ? { ...defaultView, table_config: parsed } : parsed;
|
|
14779
|
+
} catch {
|
|
14775
14780
|
return defaultView;
|
|
14776
14781
|
}
|
|
14777
14782
|
},
|
|
@@ -14816,7 +14821,7 @@ var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
|
14816
14821
|
);
|
|
14817
14822
|
}
|
|
14818
14823
|
};
|
|
14819
|
-
var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
14824
|
+
var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) => {
|
|
14820
14825
|
const I18n = useI18nContext10();
|
|
14821
14826
|
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
|
|
14822
14827
|
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
@@ -14827,7 +14832,8 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14827
14832
|
return stored ?? config.defaultView;
|
|
14828
14833
|
});
|
|
14829
14834
|
const [temporaryView, setTemporaryView] = useState3(() => {
|
|
14830
|
-
|
|
14835
|
+
const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14836
|
+
return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
|
|
14831
14837
|
});
|
|
14832
14838
|
const persistViewToStorageAndUrl = useCallback2(
|
|
14833
14839
|
(view) => {
|
|
@@ -14836,7 +14842,10 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14836
14842
|
},
|
|
14837
14843
|
[storageKey, setSearchParams]
|
|
14838
14844
|
);
|
|
14839
|
-
const baseViews =
|
|
14845
|
+
const baseViews = useMemo(
|
|
14846
|
+
() => [...savedViews ?? [], ...presetViews ?? []],
|
|
14847
|
+
[savedViews, presetViews]
|
|
14848
|
+
);
|
|
14840
14849
|
const allViews = useMemo(
|
|
14841
14850
|
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14842
14851
|
[baseViews, temporaryView]
|
|
@@ -14848,7 +14857,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14848
14857
|
persistViewToStorageAndUrl(viewToSelect);
|
|
14849
14858
|
return viewToSelect;
|
|
14850
14859
|
},
|
|
14851
|
-
[config, persistViewToStorageAndUrl
|
|
14860
|
+
[config, persistViewToStorageAndUrl]
|
|
14852
14861
|
);
|
|
14853
14862
|
const createTemporaryView = useCallback2(
|
|
14854
14863
|
(fetchedView) => {
|
|
@@ -14901,14 +14910,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14901
14910
|
if (savedViewId && allViews.length > 0) {
|
|
14902
14911
|
handleSavedViewFromUrl(savedViewId);
|
|
14903
14912
|
}
|
|
14904
|
-
}, [
|
|
14905
|
-
searchParams,
|
|
14906
|
-
savedViews,
|
|
14907
|
-
temporaryView,
|
|
14908
|
-
handleSavedViewFromUrl,
|
|
14909
|
-
setSearchParams,
|
|
14910
|
-
allViews.length
|
|
14911
|
-
]);
|
|
14913
|
+
}, [searchParams, handleSavedViewFromUrl, allViews.length]);
|
|
14912
14914
|
return {
|
|
14913
14915
|
selectedView: selectedSavedView,
|
|
14914
14916
|
selectView,
|
|
@@ -14967,6 +14969,7 @@ var SavedViewsContent = (props) => {
|
|
|
14967
14969
|
onSelect: props.onSelect
|
|
14968
14970
|
},
|
|
14969
14971
|
savedViews,
|
|
14972
|
+
props.presetViews,
|
|
14970
14973
|
openSharedViewModal
|
|
14971
14974
|
);
|
|
14972
14975
|
const { data: fetchedView, isError: fetchError } = useFetchSavedViewById(
|
|
@@ -15150,9 +15153,9 @@ var getColumnStateFromDefs = (columnDefs) => {
|
|
|
15150
15153
|
var extractDefaultView = (gridApi, receivedConfig) => {
|
|
15151
15154
|
var _a, _b;
|
|
15152
15155
|
const columnDefs = gridApi.getColumnDefs() ?? [];
|
|
15153
|
-
const defaultColumnState = getColumnStateFromDefs(columnDefs);
|
|
15156
|
+
const defaultColumnState = ((_a = receivedConfig == null ? void 0 : receivedConfig.columnState) == null ? void 0 : _a.length) ? receivedConfig.columnState : getColumnStateFromDefs(columnDefs);
|
|
15154
15157
|
const result = {
|
|
15155
|
-
columnState:
|
|
15158
|
+
columnState: defaultColumnState,
|
|
15156
15159
|
columnGroupState: (receivedConfig == null ? void 0 : receivedConfig.columnGroupState) ?? [],
|
|
15157
15160
|
rowGroupState: (receivedConfig == null ? void 0 : receivedConfig.rowGroupState) ?? [],
|
|
15158
15161
|
filterState: (receivedConfig == null ? void 0 : receivedConfig.filterState) ?? {},
|
|
@@ -15325,7 +15328,6 @@ var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
|
|
|
15325
15328
|
|
|
15326
15329
|
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15327
15330
|
var DataTableSavedViews = forwardRef11((props, ref) => {
|
|
15328
|
-
var _a;
|
|
15329
15331
|
const { tableApi, userId, projectId, companyId } = props;
|
|
15330
15332
|
const presetViews = useNormalizedDefaultViews2(
|
|
15331
15333
|
props.defaultViews,
|
|
@@ -15333,7 +15335,7 @@ var DataTableSavedViews = forwardRef11((props, ref) => {
|
|
|
15333
15335
|
);
|
|
15334
15336
|
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15335
15337
|
const [internalTableConfig, setInternalTableConfig] = useState6(
|
|
15336
|
-
|
|
15338
|
+
ViewStorage.load(props.stickyViewsKey, defaultView).table_config
|
|
15337
15339
|
);
|
|
15338
15340
|
useImperativeHandle(ref, () => ({
|
|
15339
15341
|
setTableConfig: (newConfig) => {
|
package/dist/modern/index.js
CHANGED
|
@@ -11878,7 +11878,9 @@ var PanelContent = (props) => {
|
|
|
11878
11878
|
const { showToast } = (0, import_toast_alert2.useToastAlertContext)();
|
|
11879
11879
|
const I18n = (0, import_core_react8.useI18nContext)();
|
|
11880
11880
|
const { data: savedViewsFromQuery, error: savedViewsError } = useSavedViewsQuery(props.queryInput);
|
|
11881
|
-
const
|
|
11881
|
+
const updateMutation = useUpdateSavedView(queryInput);
|
|
11882
|
+
const { mutate: updateSavedView } = updateMutation;
|
|
11883
|
+
const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
|
|
11882
11884
|
const savedViews = props.savedViews ?? savedViewsFromQuery;
|
|
11883
11885
|
const errorToastRef = import_react9.default.useRef(null);
|
|
11884
11886
|
import_react9.default.useEffect(() => {
|
|
@@ -14707,9 +14709,6 @@ var SharedViewFormModal = ({
|
|
|
14707
14709
|
);
|
|
14708
14710
|
};
|
|
14709
14711
|
|
|
14710
|
-
// src/components/saved-views/SavedViews.tsx
|
|
14711
|
-
var import_toast_alert4 = require("@procore/toast-alert");
|
|
14712
|
-
|
|
14713
14712
|
// src/utils/hooks/useViewSelection.ts
|
|
14714
14713
|
var import_react12 = require("react");
|
|
14715
14714
|
var import_react_router_dom = require("react-router-dom");
|
|
@@ -14723,8 +14722,14 @@ var ViewStorage = {
|
|
|
14723
14722
|
load(key, defaultView) {
|
|
14724
14723
|
try {
|
|
14725
14724
|
const stored = localStorage.getItem(key);
|
|
14726
|
-
|
|
14727
|
-
|
|
14725
|
+
if (!stored)
|
|
14726
|
+
return defaultView;
|
|
14727
|
+
const parsed = JSON.parse(stored);
|
|
14728
|
+
if (!parsed)
|
|
14729
|
+
return defaultView;
|
|
14730
|
+
const isTableConfigOnly = !parsed.id && !parsed.share_token;
|
|
14731
|
+
return isTableConfigOnly ? { ...defaultView, table_config: parsed } : parsed;
|
|
14732
|
+
} catch {
|
|
14728
14733
|
return defaultView;
|
|
14729
14734
|
}
|
|
14730
14735
|
},
|
|
@@ -14769,7 +14774,7 @@ var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
|
14769
14774
|
);
|
|
14770
14775
|
}
|
|
14771
14776
|
};
|
|
14772
|
-
var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
14777
|
+
var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) => {
|
|
14773
14778
|
const I18n = (0, import_core_react13.useI18nContext)();
|
|
14774
14779
|
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
|
|
14775
14780
|
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
@@ -14780,7 +14785,8 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14780
14785
|
return stored ?? config.defaultView;
|
|
14781
14786
|
});
|
|
14782
14787
|
const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
|
|
14783
|
-
|
|
14788
|
+
const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14789
|
+
return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
|
|
14784
14790
|
});
|
|
14785
14791
|
const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
|
|
14786
14792
|
(view) => {
|
|
@@ -14789,7 +14795,10 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14789
14795
|
},
|
|
14790
14796
|
[storageKey, setSearchParams]
|
|
14791
14797
|
);
|
|
14792
|
-
const baseViews =
|
|
14798
|
+
const baseViews = (0, import_react12.useMemo)(
|
|
14799
|
+
() => [...savedViews ?? [], ...presetViews ?? []],
|
|
14800
|
+
[savedViews, presetViews]
|
|
14801
|
+
);
|
|
14793
14802
|
const allViews = (0, import_react12.useMemo)(
|
|
14794
14803
|
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14795
14804
|
[baseViews, temporaryView]
|
|
@@ -14801,7 +14810,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14801
14810
|
persistViewToStorageAndUrl(viewToSelect);
|
|
14802
14811
|
return viewToSelect;
|
|
14803
14812
|
},
|
|
14804
|
-
[config, persistViewToStorageAndUrl
|
|
14813
|
+
[config, persistViewToStorageAndUrl]
|
|
14805
14814
|
);
|
|
14806
14815
|
const createTemporaryView = (0, import_react12.useCallback)(
|
|
14807
14816
|
(fetchedView) => {
|
|
@@ -14854,14 +14863,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14854
14863
|
if (savedViewId && allViews.length > 0) {
|
|
14855
14864
|
handleSavedViewFromUrl(savedViewId);
|
|
14856
14865
|
}
|
|
14857
|
-
}, [
|
|
14858
|
-
searchParams,
|
|
14859
|
-
savedViews,
|
|
14860
|
-
temporaryView,
|
|
14861
|
-
handleSavedViewFromUrl,
|
|
14862
|
-
setSearchParams,
|
|
14863
|
-
allViews.length
|
|
14864
|
-
]);
|
|
14866
|
+
}, [searchParams, handleSavedViewFromUrl, allViews.length]);
|
|
14865
14867
|
return {
|
|
14866
14868
|
selectedView: selectedSavedView,
|
|
14867
14869
|
selectView,
|
|
@@ -14920,6 +14922,7 @@ var SavedViewsContent = (props) => {
|
|
|
14920
14922
|
onSelect: props.onSelect
|
|
14921
14923
|
},
|
|
14922
14924
|
savedViews,
|
|
14925
|
+
props.presetViews,
|
|
14923
14926
|
openSharedViewModal
|
|
14924
14927
|
);
|
|
14925
14928
|
const { data: fetchedView, isError: fetchError } = useFetchSavedViewById(
|
|
@@ -15058,7 +15061,7 @@ var SavedViewsContent = (props) => {
|
|
|
15058
15061
|
));
|
|
15059
15062
|
};
|
|
15060
15063
|
var SavedViews = (props) => {
|
|
15061
|
-
return /* @__PURE__ */ import_react13.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react13.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react13.default.createElement(
|
|
15064
|
+
return /* @__PURE__ */ import_react13.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react13.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react13.default.createElement(import_toast_alert3.ToastAlertProvider, null, /* @__PURE__ */ import_react13.default.createElement(SavedViewsContent, { ...props }))));
|
|
15062
15065
|
};
|
|
15063
15066
|
|
|
15064
15067
|
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
@@ -15102,9 +15105,9 @@ var getColumnStateFromDefs = (columnDefs) => {
|
|
|
15102
15105
|
};
|
|
15103
15106
|
var extractDefaultView = (gridApi, receivedConfig) => {
|
|
15104
15107
|
const columnDefs = gridApi.getColumnDefs() ?? [];
|
|
15105
|
-
const defaultColumnState = getColumnStateFromDefs(columnDefs);
|
|
15108
|
+
const defaultColumnState = receivedConfig?.columnState?.length ? receivedConfig.columnState : getColumnStateFromDefs(columnDefs);
|
|
15106
15109
|
const result = {
|
|
15107
|
-
columnState:
|
|
15110
|
+
columnState: defaultColumnState,
|
|
15108
15111
|
columnGroupState: receivedConfig?.columnGroupState ?? [],
|
|
15109
15112
|
rowGroupState: receivedConfig?.rowGroupState ?? [],
|
|
15110
15113
|
filterState: receivedConfig?.filterState ?? {},
|
|
@@ -15278,7 +15281,7 @@ var DataTableSavedViews = (0, import_react18.forwardRef)((props, ref) => {
|
|
|
15278
15281
|
);
|
|
15279
15282
|
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15280
15283
|
const [internalTableConfig, setInternalTableConfig] = (0, import_react18.useState)(
|
|
15281
|
-
ViewStorage.load(props.stickyViewsKey, defaultView)
|
|
15284
|
+
ViewStorage.load(props.stickyViewsKey, defaultView).table_config
|
|
15282
15285
|
);
|
|
15283
15286
|
(0, import_react18.useImperativeHandle)(ref, () => ({
|
|
15284
15287
|
setTableConfig: (newConfig) => {
|
package/dist/modern/index.mjs
CHANGED
|
@@ -11885,7 +11885,9 @@ var PanelContent = (props) => {
|
|
|
11885
11885
|
const { showToast } = useToastAlertContext2();
|
|
11886
11886
|
const I18n = useI18nContext5();
|
|
11887
11887
|
const { data: savedViewsFromQuery, error: savedViewsError } = useSavedViewsQuery(props.queryInput);
|
|
11888
|
-
const
|
|
11888
|
+
const updateMutation = useUpdateSavedView(queryInput);
|
|
11889
|
+
const { mutate: updateSavedView } = updateMutation;
|
|
11890
|
+
const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
|
|
11889
11891
|
const savedViews = props.savedViews ?? savedViewsFromQuery;
|
|
11890
11892
|
const errorToastRef = React17.useRef(null);
|
|
11891
11893
|
React17.useEffect(() => {
|
|
@@ -12012,7 +12014,7 @@ import {
|
|
|
12012
12014
|
} from "@procore/core-react";
|
|
12013
12015
|
import React22, { useState as useState4, useEffect as useEffect3, useCallback as useCallback3 } from "react";
|
|
12014
12016
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
12015
|
-
import { useToastAlertContext as useToastAlertContext3 } from "@procore/toast-alert";
|
|
12017
|
+
import { useToastAlertContext as useToastAlertContext3, ToastAlertProvider } from "@procore/toast-alert";
|
|
12016
12018
|
|
|
12017
12019
|
// src/components/modals/DeleteConfirmationModal.tsx
|
|
12018
12020
|
import {
|
|
@@ -14751,9 +14753,6 @@ var SharedViewFormModal = ({
|
|
|
14751
14753
|
);
|
|
14752
14754
|
};
|
|
14753
14755
|
|
|
14754
|
-
// src/components/saved-views/SavedViews.tsx
|
|
14755
|
-
import { ToastAlertProvider } from "@procore/toast-alert";
|
|
14756
|
-
|
|
14757
14756
|
// src/utils/hooks/useViewSelection.ts
|
|
14758
14757
|
import { useState as useState3, useCallback as useCallback2, useEffect as useEffect2, useRef as useRef2, useMemo } from "react";
|
|
14759
14758
|
import { useSearchParams } from "react-router-dom";
|
|
@@ -14767,8 +14766,14 @@ var ViewStorage = {
|
|
|
14767
14766
|
load(key, defaultView) {
|
|
14768
14767
|
try {
|
|
14769
14768
|
const stored = localStorage.getItem(key);
|
|
14770
|
-
|
|
14771
|
-
|
|
14769
|
+
if (!stored)
|
|
14770
|
+
return defaultView;
|
|
14771
|
+
const parsed = JSON.parse(stored);
|
|
14772
|
+
if (!parsed)
|
|
14773
|
+
return defaultView;
|
|
14774
|
+
const isTableConfigOnly = !parsed.id && !parsed.share_token;
|
|
14775
|
+
return isTableConfigOnly ? { ...defaultView, table_config: parsed } : parsed;
|
|
14776
|
+
} catch {
|
|
14772
14777
|
return defaultView;
|
|
14773
14778
|
}
|
|
14774
14779
|
},
|
|
@@ -14813,7 +14818,7 @@ var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
|
14813
14818
|
);
|
|
14814
14819
|
}
|
|
14815
14820
|
};
|
|
14816
|
-
var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
14821
|
+
var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) => {
|
|
14817
14822
|
const I18n = useI18nContext10();
|
|
14818
14823
|
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
|
|
14819
14824
|
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
@@ -14824,7 +14829,8 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14824
14829
|
return stored ?? config.defaultView;
|
|
14825
14830
|
});
|
|
14826
14831
|
const [temporaryView, setTemporaryView] = useState3(() => {
|
|
14827
|
-
|
|
14832
|
+
const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14833
|
+
return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
|
|
14828
14834
|
});
|
|
14829
14835
|
const persistViewToStorageAndUrl = useCallback2(
|
|
14830
14836
|
(view) => {
|
|
@@ -14833,7 +14839,10 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14833
14839
|
},
|
|
14834
14840
|
[storageKey, setSearchParams]
|
|
14835
14841
|
);
|
|
14836
|
-
const baseViews =
|
|
14842
|
+
const baseViews = useMemo(
|
|
14843
|
+
() => [...savedViews ?? [], ...presetViews ?? []],
|
|
14844
|
+
[savedViews, presetViews]
|
|
14845
|
+
);
|
|
14837
14846
|
const allViews = useMemo(
|
|
14838
14847
|
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14839
14848
|
[baseViews, temporaryView]
|
|
@@ -14845,7 +14854,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14845
14854
|
persistViewToStorageAndUrl(viewToSelect);
|
|
14846
14855
|
return viewToSelect;
|
|
14847
14856
|
},
|
|
14848
|
-
[config, persistViewToStorageAndUrl
|
|
14857
|
+
[config, persistViewToStorageAndUrl]
|
|
14849
14858
|
);
|
|
14850
14859
|
const createTemporaryView = useCallback2(
|
|
14851
14860
|
(fetchedView) => {
|
|
@@ -14898,14 +14907,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14898
14907
|
if (savedViewId && allViews.length > 0) {
|
|
14899
14908
|
handleSavedViewFromUrl(savedViewId);
|
|
14900
14909
|
}
|
|
14901
|
-
}, [
|
|
14902
|
-
searchParams,
|
|
14903
|
-
savedViews,
|
|
14904
|
-
temporaryView,
|
|
14905
|
-
handleSavedViewFromUrl,
|
|
14906
|
-
setSearchParams,
|
|
14907
|
-
allViews.length
|
|
14908
|
-
]);
|
|
14910
|
+
}, [searchParams, handleSavedViewFromUrl, allViews.length]);
|
|
14909
14911
|
return {
|
|
14910
14912
|
selectedView: selectedSavedView,
|
|
14911
14913
|
selectView,
|
|
@@ -14964,6 +14966,7 @@ var SavedViewsContent = (props) => {
|
|
|
14964
14966
|
onSelect: props.onSelect
|
|
14965
14967
|
},
|
|
14966
14968
|
savedViews,
|
|
14969
|
+
props.presetViews,
|
|
14967
14970
|
openSharedViewModal
|
|
14968
14971
|
);
|
|
14969
14972
|
const { data: fetchedView, isError: fetchError } = useFetchSavedViewById(
|
|
@@ -15146,9 +15149,9 @@ var getColumnStateFromDefs = (columnDefs) => {
|
|
|
15146
15149
|
};
|
|
15147
15150
|
var extractDefaultView = (gridApi, receivedConfig) => {
|
|
15148
15151
|
const columnDefs = gridApi.getColumnDefs() ?? [];
|
|
15149
|
-
const defaultColumnState = getColumnStateFromDefs(columnDefs);
|
|
15152
|
+
const defaultColumnState = receivedConfig?.columnState?.length ? receivedConfig.columnState : getColumnStateFromDefs(columnDefs);
|
|
15150
15153
|
const result = {
|
|
15151
|
-
columnState:
|
|
15154
|
+
columnState: defaultColumnState,
|
|
15152
15155
|
columnGroupState: receivedConfig?.columnGroupState ?? [],
|
|
15153
15156
|
rowGroupState: receivedConfig?.rowGroupState ?? [],
|
|
15154
15157
|
filterState: receivedConfig?.filterState ?? {},
|
|
@@ -15327,7 +15330,7 @@ var DataTableSavedViews = forwardRef11((props, ref) => {
|
|
|
15327
15330
|
);
|
|
15328
15331
|
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15329
15332
|
const [internalTableConfig, setInternalTableConfig] = useState6(
|
|
15330
|
-
ViewStorage.load(props.stickyViewsKey, defaultView)
|
|
15333
|
+
ViewStorage.load(props.stickyViewsKey, defaultView).table_config
|
|
15331
15334
|
);
|
|
15332
15335
|
useImperativeHandle(ref, () => ({
|
|
15333
15336
|
setTableConfig: (newConfig) => {
|