@vizzly/dashboard 0.14.4-dev-a0b1f2b460bae8e2dcaf46786f7f4aae10749727 → 0.14.4-dev-eaaec8b3050228b960681eeb4fab1bb93dddc66a

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.
@@ -14887,6 +14887,7 @@ var ADMIN_FEATURE_TOGGLES = {
14887
14887
  parameters: true,
14888
14888
  disableAutoSave: true,
14889
14889
  showGlobalFilters: true,
14890
+ hideToolbar: false,
14890
14891
  showResetButton: false,
14891
14892
  canManageGlobalFilters: true,
14892
14893
  canEditComponentLibrary: true,
@@ -14924,6 +14925,7 @@ var END_USER_DEFAULT_FEATURE_TOGGLES = {
14924
14925
  parameters: true,
14925
14926
  disableAutoSave: false,
14926
14927
  showGlobalFilters: true,
14928
+ hideToolbar: false,
14927
14929
  showResetButton: true,
14928
14930
  canAddTags: true,
14929
14931
  canManageGlobalFilters: true,
@@ -15879,7 +15881,7 @@ var init$b = function init(overrides, includeComponentTypes, excludeComponentTyp
15879
15881
  organizationName: overrides.organizationName,
15880
15882
  dateTimeFormatOptions: buildDateTimeFormatOptions(_extends({}, base.dateTimeFormatOptions, wrapOverridesInDateObjects(overrides.dateTimeFormatOptions ? overrides.dateTimeFormatOptions : {})), queryEngineConfig),
15881
15883
  datePickerFormat: overrides.datePickerFormat ? overrides.datePickerFormat : base.datePickerFormat,
15882
- disableToolbar: overrides.disableToolbar,
15884
+ disableToolbar: featureToggles.hideToolbar ? featureToggles.hideToolbar : overrides.disableToolbar,
15883
15885
  scheduledReports: overrides.scheduledReports || base.scheduledReports
15884
15886
  });
15885
15887
  };
@@ -41635,7 +41637,7 @@ var AdminTools = function AdminTools(props) {
41635
41637
  logDebug('Received from VizzlyState, `save()`');
41636
41638
  doSave();
41637
41639
  }
41638
- });
41640
+ }, undefined, [dashboard]);
41639
41641
  if (disableToolbar) return null;
41640
41642
  var close = function close() {
41641
41643
  setShowConfirmAdminSave(false);
@@ -42670,18 +42672,31 @@ var useCheckIfPageClosing = function useCheckIfPageClosing(params) {
42670
42672
  var _useState2 = useState(null),
42671
42673
  initialDashboardState = _useState2[0],
42672
42674
  setInitialDashboardState = _useState2[1];
42675
+ var _useState3 = useState(null),
42676
+ lastSavedDashboardState = _useState3[0],
42677
+ setLastSavedDashboardState = _useState3[1];
42673
42678
  useEffect(function () {
42674
42679
  if (params.dashboard) {
42675
42680
  var dashboard = params.dashboard;
42676
42681
  var emptyDashboard = emptyCurrentDashboard(dashboard);
42677
- if (initialDashboardState !== null && hashDashboard(emptyDashboard) !== hashDashboard(initialDashboardState)) {
42682
+ var isSaved = hashDashboard(lastSavedDashboardState) === hashDashboard(dashboard);
42683
+ if (initialDashboardState !== null && hashDashboard(emptyDashboard) !== hashDashboard(initialDashboardState) && !isSaved) {
42678
42684
  setHasChanges(true);
42679
42685
  }
42680
42686
  }
42681
- }, [params]);
42687
+ }, [params.dashboard]);
42682
42688
  useEffect(function () {
42683
42689
  setInitialDashboardState(params.dashboard);
42684
42690
  }, []);
42691
+ useEffect(function () {
42692
+ if (params.saving) {
42693
+ var saving = params.saving;
42694
+ if (saving === 'Saved') {
42695
+ setLastSavedDashboardState(params.dashboard);
42696
+ setHasChanges(false);
42697
+ }
42698
+ }
42699
+ }, [params.saving]);
42685
42700
  useEffect(function () {
42686
42701
  var handleBeforeunload = function handleBeforeunload(event) {
42687
42702
  if (mode === 'admin' && hasChanges) {
@@ -58300,7 +58315,6 @@ function buildFieldCollectorItems(values, dataSet, purpose, queryEngineConfig, _
58300
58315
  value: func
58301
58316
  };
58302
58317
  });
58303
- console.log('selectOptions', selectOptions);
58304
58318
  } else if (purpose === 'grouping' && field.dataType === 'date_time') {
58305
58319
  selectOptions = getDateTimeSelectOptions(field.allowedGranularities, queryEngineConfig.supportedTimeTruncFunctions);
58306
58320
  }
@@ -69846,7 +69860,8 @@ var StudioApp = function StudioApp() {
69846
69860
  isResizing = _useState2[0],
69847
69861
  setIsResizing = _useState2[1];
69848
69862
  useCheckIfPageClosing({
69849
- dashboard: dashboard
69863
+ dashboard: dashboard,
69864
+ saving: saving
69850
69865
  });
69851
69866
  var handleResize = function handleResize(timeout) {
69852
69867
  if (prevWindowWidth.current !== windowWidth) {
@@ -76171,6 +76186,17 @@ var useOnDashboardLoadCallback = function useOnDashboardLoadCallback(session, on
76171
76186
  })]);
76172
76187
  };
76173
76188
 
76189
+ var FailedToSaveError = /*#__PURE__*/function (_Error) {
76190
+ function FailedToSaveError(message) {
76191
+ var _this;
76192
+ _this = _Error.call(this, "Failed to save dashboard.") || this;
76193
+ _this.message = message;
76194
+ return _this;
76195
+ }
76196
+ _inheritsLoose(FailedToSaveError, _Error);
76197
+ return FailedToSaveError;
76198
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
76199
+
76174
76200
  var GlobalProvider = function GlobalProvider(props) {
76175
76201
  var _useState = useState(0),
76176
76202
  resetKey = _useState[0],
@@ -76234,15 +76260,23 @@ var GlobalProviderContents = function GlobalProviderContents(props) {
76234
76260
  });
76235
76261
  var onSave = /*#__PURE__*/function () {
76236
76262
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(dashboard, abortSignal) {
76263
+ var error;
76237
76264
  return _regeneratorRuntime().wrap(function _callee$(_context) {
76238
76265
  while (1) switch (_context.prev = _context.next) {
76239
76266
  case 0:
76240
76267
  if (session.scope == 'read_write') {
76241
- session.vizzly.updateDashboard({
76242
- dashboardId: dashboard.id,
76243
- definition: toSaveableDefinition(dashboard),
76244
- abortSignal: abortSignal
76245
- });
76268
+ try {
76269
+ session.vizzly.updateDashboard({
76270
+ dashboardId: dashboard.id,
76271
+ definition: toSaveableDefinition(dashboard),
76272
+ abortSignal: abortSignal
76273
+ });
76274
+ } catch (e) {
76275
+ if (props.onError) {
76276
+ error = new FailedToSaveError(e);
76277
+ props.onError(error, error.message);
76278
+ }
76279
+ }
76246
76280
  }
76247
76281
  case 1:
76248
76282
  case "end":
@@ -1,5 +1,6 @@
1
1
  export declare type FeatureToggles = {
2
2
  showGlobalFilters: boolean;
3
+ hideToolbar: boolean;
3
4
  showResetButton: boolean;
4
5
  parameters: boolean;
5
6
  canManageGlobalFilters: boolean;
@@ -1,6 +1,8 @@
1
1
  import { Dashboard } from '../../../../shared-logic/src/Dashboard';
2
2
  import { Component } from '../../../../shared-logic/src/Component/types';
3
+ import { SavingState } from '../../../../shared-logic/src/VizzlyState';
3
4
  export declare const useCheckIfPageClosing: (params: {
4
5
  dashboard?: Dashboard;
5
6
  component?: Component;
7
+ saving?: SavingState;
6
8
  }) => void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vizzly/dashboard",
3
3
  "author": "james@vizzly.co",
4
- "version": "0.14.4-dev-a0b1f2b460bae8e2dcaf46786f7f4aae10749727",
4
+ "version": "0.14.4-dev-eaaec8b3050228b960681eeb4fab1bb93dddc66a",
5
5
  "source": "src/index.tsx",
6
6
  "types": "./dist/dashboard/src/index.d.ts",
7
7
  "module": "./dist/dashboard.esm.js",