@zextras/carbonio-shell-ui 15.3.24 → 15.4.0

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.
@@ -9,7 +9,7 @@ export declare const registerFunctions: (...items: Array<{
9
9
  type: string;
10
10
  }>) => void, removeActions: (...ids: Array<string>) => void, removeComponents: (...ids: Array<string>) => void;
11
11
  export { getUserAccount, getUserAccounts, getUserSetting, getUserSettings, useUserAccount, useUserAccounts, useUserSetting, useUserSettings, useUserRight, useUserRights, getUserRight, getUserRights, useAuthenticated, useChangePasswordURL, updateSettings, updateAccount } from '../../store/account';
12
- export { closeBoard, updateBoard, updateBoardContext, getBoardById, getBoardContextById, useBoardContextById, useBoardById, useBoard, minimizeBoards, expandBoards, reopenBoards, setCurrentBoard, useBoardHooks } from '../../store/boards';
12
+ export { closeBoard, updateBoard, setBoardContentStatus, updateBoardContext, getBoardById, getBoardContextById, useBoardContextById, useBoardById, useBoard, minimizeBoards, expandBoards, reopenBoards, setCurrentBoard, useBoardHooks } from '../../store/boards';
13
13
  export { useCurrentRoute } from '../../history/hooks';
14
14
  export { getNotificationManager } from '../../notification/NotificationManager';
15
15
  export { useLocalStorage } from '../../shell/hooks/useLocalStorage';
@@ -6,8 +6,8 @@
6
6
  */
7
7
  var _a, _b;
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.removeSettingsView = exports.removeBoardView = exports.removeRoute = exports.setRouteVisibility = exports.updatePrimaryBadge = exports.useLocalStorage = exports.getNotificationManager = exports.useCurrentRoute = exports.useBoardHooks = exports.setCurrentBoard = exports.reopenBoards = exports.expandBoards = exports.minimizeBoards = exports.useBoard = exports.useBoardById = exports.useBoardContextById = exports.getBoardContextById = exports.getBoardById = exports.updateBoardContext = exports.updateBoard = exports.closeBoard = exports.updateAccount = exports.updateSettings = exports.useChangePasswordURL = exports.useAuthenticated = exports.getUserRights = exports.getUserRight = exports.useUserRights = exports.useUserRight = exports.useUserSettings = exports.useUserSetting = exports.useUserAccounts = exports.useUserAccount = exports.getUserSettings = exports.getUserSetting = exports.getUserAccounts = exports.getUserAccount = exports.removeComponents = exports.removeActions = exports.registerActions = exports.removeFunctions = exports.registerFunctions = exports.getIntegratedFunction = exports.getIntegratedComponent = exports.getActions = exports.getAction = exports.useIntegratedFunction = exports.useIntegratedComponent = exports.useActions = exports.useAction = void 0;
10
- exports.AuthGuard = exports.AppContextProvider = exports.useTracker = exports.useFeatureFlag = exports.useIsCarbonioCE = exports.upsertApp = exports.removeSecondaryAccessoryView = exports.removePrimaryAccessoryView = exports.removeUtilityView = void 0;
9
+ exports.removeBoardView = exports.removeRoute = exports.setRouteVisibility = exports.updatePrimaryBadge = exports.useLocalStorage = exports.getNotificationManager = exports.useCurrentRoute = exports.useBoardHooks = exports.setCurrentBoard = exports.reopenBoards = exports.expandBoards = exports.minimizeBoards = exports.useBoard = exports.useBoardById = exports.useBoardContextById = exports.getBoardContextById = exports.getBoardById = exports.updateBoardContext = exports.setBoardContentStatus = exports.updateBoard = exports.closeBoard = exports.updateAccount = exports.updateSettings = exports.useChangePasswordURL = exports.useAuthenticated = exports.getUserRights = exports.getUserRight = exports.useUserRights = exports.useUserRight = exports.useUserSettings = exports.useUserSetting = exports.useUserAccounts = exports.useUserAccount = exports.getUserSettings = exports.getUserSetting = exports.getUserAccounts = exports.getUserAccount = exports.removeComponents = exports.removeActions = exports.registerActions = exports.removeFunctions = exports.registerFunctions = exports.getIntegratedFunction = exports.getIntegratedComponent = exports.getActions = exports.getAction = exports.useIntegratedFunction = exports.useIntegratedComponent = exports.useActions = exports.useAction = void 0;
10
+ exports.AuthGuard = exports.AppContextProvider = exports.useTracker = exports.useFeatureFlag = exports.useIsCarbonioCE = exports.upsertApp = exports.removeSecondaryAccessoryView = exports.removePrimaryAccessoryView = exports.removeUtilityView = exports.removeSettingsView = void 0;
11
11
  const app_1 = require("../../store/app");
12
12
  const store_1 = require("../../store/integrations/store");
13
13
  var hooks_1 = require("../../store/integrations/hooks");
@@ -41,6 +41,7 @@ Object.defineProperty(exports, "updateAccount", { enumerable: true, get: functio
41
41
  var boards_1 = require("../../store/boards");
42
42
  Object.defineProperty(exports, "closeBoard", { enumerable: true, get: function () { return boards_1.closeBoard; } });
43
43
  Object.defineProperty(exports, "updateBoard", { enumerable: true, get: function () { return boards_1.updateBoard; } });
44
+ Object.defineProperty(exports, "setBoardContentStatus", { enumerable: true, get: function () { return boards_1.setBoardContentStatus; } });
44
45
  Object.defineProperty(exports, "updateBoardContext", { enumerable: true, get: function () { return boards_1.updateBoardContext; } });
45
46
  Object.defineProperty(exports, "getBoardById", { enumerable: true, get: function () { return boards_1.getBoardById; } });
46
47
  Object.defineProperty(exports, "getBoardContextById", { enumerable: true, get: function () { return boards_1.getBoardContextById; } });
@@ -1 +1 @@
1
- {"version":3,"file":"app-direct-exports.js","sourceRoot":"","sources":["../../../src/boot/app/app-direct-exports.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;AAEH,yCAA8C;AAC9C,0DAAsE;AAEtE,wDAKwC;AAJvC,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,+GAAA,sBAAsB,OAAA;AACtB,8GAAA,qBAAqB,OAAA;AAGtB,4DAK0C;AAJzC,oGAAA,SAAS,OAAA;AACT,qGAAA,UAAU,OAAA;AACV,iHAAA,sBAAsB,OAAA;AACtB,gHAAA,qBAAqB,OAAA;AAGT,KAMT,4BAAoB,CAAC,QAAQ,EAAE,EALlC,yBAAiB,yBACjB,uBAAe,uBACf,uBAAe,uBACf,qBAAa,qBACb,wBAAgB,uBACmB;AAEpC,+CAiB6B;AAhB5B,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,2GAAA,gBAAgB,OAAA;AAChB,+GAAA,oBAAoB,OAAA;AACpB,yGAAA,cAAc,OAAA;AACd,wGAAA,aAAa,OAAA;AAGd,6CAc4B;AAb3B,oGAAA,UAAU,OAAA;AACV,qGAAA,WAAW,OAAA;AACX,4GAAA,kBAAkB,OAAA;AAClB,sGAAA,YAAY,OAAA;AACZ,6GAAA,mBAAmB,OAAA;AACnB,6GAAA,mBAAmB,OAAA;AACnB,sGAAA,YAAY,OAAA;AACZ,kGAAA,QAAQ,OAAA;AACR,wGAAA,cAAc,OAAA;AACd,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,yGAAA,eAAe,OAAA;AACf,uGAAA,aAAa,OAAA;AAGd,6CAAsD;AAA7C,wGAAA,eAAe,OAAA;AAExB,8EAAgF;AAAvE,6HAAA,sBAAsB,OAAA;AAE/B,qEAAoE;AAA3D,kHAAA,eAAe,OAAA;AAEX,KAoBT,iBAAW,CAAC,QAAQ,EAAE,EAnBzB,0BAAkB,0BAClB,0BAAkB,0BAClB,mBAAW,mBACX,uBAAe,uBACf,0BAAkB,0BAClB,yBAAiB,yBACjB,kCAA0B,kCAC1B,oCAA4B;AAC5B;;;;;;;;;GASG;AACH,iBAAS,gBACiB;AAE3B,iDAA0E;AAAjE,wGAAA,eAAe,OAAA;AAAE,uGAAA,cAAc,OAAA;AAKxC,iDAAmD;AAA1C,qGAAA,UAAU,OAAA;AAEnB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAG3B,yDAAuD;AAA9C,uGAAA,SAAS,OAAA"}
1
+ {"version":3,"file":"app-direct-exports.js","sourceRoot":"","sources":["../../../src/boot/app/app-direct-exports.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;AAEH,yCAA8C;AAC9C,0DAAsE;AAEtE,wDAKwC;AAJvC,kGAAA,SAAS,OAAA;AACT,mGAAA,UAAU,OAAA;AACV,+GAAA,sBAAsB,OAAA;AACtB,8GAAA,qBAAqB,OAAA;AAGtB,4DAK0C;AAJzC,oGAAA,SAAS,OAAA;AACT,qGAAA,UAAU,OAAA;AACV,iHAAA,sBAAsB,OAAA;AACtB,gHAAA,qBAAqB,OAAA;AAGT,KAMT,4BAAoB,CAAC,QAAQ,EAAE,EALlC,yBAAiB,yBACjB,uBAAe,uBACf,uBAAe,uBACf,qBAAa,qBACb,wBAAgB,uBACmB;AAEpC,+CAiB6B;AAhB5B,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,yGAAA,cAAc,OAAA;AACd,0GAAA,eAAe,OAAA;AACf,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,wGAAA,aAAa,OAAA;AACb,2GAAA,gBAAgB,OAAA;AAChB,+GAAA,oBAAoB,OAAA;AACpB,yGAAA,cAAc,OAAA;AACd,wGAAA,aAAa,OAAA;AAGd,6CAe4B;AAd3B,oGAAA,UAAU,OAAA;AACV,qGAAA,WAAW,OAAA;AACX,+GAAA,qBAAqB,OAAA;AACrB,4GAAA,kBAAkB,OAAA;AAClB,sGAAA,YAAY,OAAA;AACZ,6GAAA,mBAAmB,OAAA;AACnB,6GAAA,mBAAmB,OAAA;AACnB,sGAAA,YAAY,OAAA;AACZ,kGAAA,QAAQ,OAAA;AACR,wGAAA,cAAc,OAAA;AACd,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,yGAAA,eAAe,OAAA;AACf,uGAAA,aAAa,OAAA;AAGd,6CAAsD;AAA7C,wGAAA,eAAe,OAAA;AAExB,8EAAgF;AAAvE,6HAAA,sBAAsB,OAAA;AAE/B,qEAAoE;AAA3D,kHAAA,eAAe,OAAA;AAEX,KAoBT,iBAAW,CAAC,QAAQ,EAAE,EAnBzB,0BAAkB,0BAClB,0BAAkB,0BAClB,mBAAW,mBACX,uBAAe,uBACf,0BAAkB,0BAClB,yBAAiB,yBACjB,kCAA0B,kCAC1B,oCAA4B;AAC5B;;;;;;;;;GASG;AACH,iBAAS,gBACiB;AAE3B,iDAA0E;AAAjE,wGAAA,eAAe,OAAA;AAAE,uGAAA,cAAc,OAAA;AAKxC,iDAAmD;AAA1C,qGAAA,UAAU,OAAA;AAEnB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA;AAG3B,yDAAuD;AAA9C,uGAAA,SAAS,OAAA"}
package/lib/lib.d.ts CHANGED
@@ -32,7 +32,7 @@ export declare const getApp: AppDependantExports['getApp'];
32
32
  export declare const addBoard: AppDependantExports['addBoard'];
33
33
  export type { PrimaryBarComponentProps, SecondaryBarComponentProps, UtilityBarComponentProps, BoardViewComponentProps, AppViewComponentProps, SettingsViewProps, PrimaryAccessoryViewProps, SecondaryAccessoryViewProps, SettingsSubSection, BadgeInfo } from './types/apps';
34
34
  export type { BooleanString, Duration, Account, AccountSettings, Identity, IdentityAttrs } from './types/account';
35
- export type { Board } from './types/boards';
35
+ export type { Board, BoardContentStatus } from './types/boards';
36
36
  export type { BoardHooksContext } from './store/boards/hooks';
37
37
  export type { INotificationManager, NotificationConfig, AudioNotificationConfig, PopupNotificationConfig } from './notification/NotificationManager';
38
38
  export type { Grant } from './types/misc';
@@ -0,0 +1,12 @@
1
+ type BeforeShellExitListener = () => void;
2
+ /**
3
+ * Subscribe to the notification emitted right before the shell deliberately
4
+ * navigates away from the page (logout, expired session, redirect to login).
5
+ * The listeners are invoked synchronously, so they can release whatever
6
+ * would prevent or delay the navigation (e.g. a beforeunload handler).
7
+ *
8
+ * @returns the function to unsubscribe the listener
9
+ */
10
+ export declare function onBeforeShellExit(listener: BeforeShellExitListener): () => void;
11
+ export declare function notifyBeforeShellExit(): void;
12
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*
3
+ * SPDX-FileCopyrightText: 2026 Zextras <https://www.zextras.com>
4
+ *
5
+ * SPDX-License-Identifier: AGPL-3.0-only
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.onBeforeShellExit = onBeforeShellExit;
9
+ exports.notifyBeforeShellExit = notifyBeforeShellExit;
10
+ const listeners = new Set();
11
+ /**
12
+ * Subscribe to the notification emitted right before the shell deliberately
13
+ * navigates away from the page (logout, expired session, redirect to login).
14
+ * The listeners are invoked synchronously, so they can release whatever
15
+ * would prevent or delay the navigation (e.g. a beforeunload handler).
16
+ *
17
+ * @returns the function to unsubscribe the listener
18
+ */
19
+ function onBeforeShellExit(listener) {
20
+ listeners.add(listener);
21
+ return () => {
22
+ listeners.delete(listener);
23
+ };
24
+ }
25
+ function notifyBeforeShellExit() {
26
+ [...listeners].forEach((listener) => {
27
+ try {
28
+ listener();
29
+ }
30
+ catch (error) {
31
+ console.error(error);
32
+ }
33
+ });
34
+ }
35
+ //# sourceMappingURL=before-shell-exit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"before-shell-exit.js","sourceRoot":"","sources":["../../src/network/before-shell-exit.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAcH,8CAKC;AAED,sDAQC;AAzBD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA2B,CAAC;AAErD;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,QAAiC;IAClE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,GAAS,EAAE;QACjB,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC,CAAC;AACH,CAAC;AAED,SAAgB,qBAAqB;IACpC,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;QACnC,IAAI,CAAC;YACJ,QAAQ,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
@@ -7,10 +7,13 @@
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.goToLogin = goToLogin;
9
9
  exports.goTo = goTo;
10
+ const before_shell_exit_1 = require("./before-shell-exit");
10
11
  function goToLogin() {
12
+ (0, before_shell_exit_1.notifyBeforeShellExit)();
11
13
  window.location.assign(`${window.location.origin}/static/login`);
12
14
  }
13
15
  function goTo(location) {
16
+ (0, before_shell_exit_1.notifyBeforeShellExit)();
14
17
  window.location.assign(location);
15
18
  }
16
19
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/network/utils.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAEH,8BAEC;AAED,oBAEC;AAND,SAAgB,SAAS;IACxB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,IAAI,CAAC,QAAgB;IACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/network/utils.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAIH,8BAGC;AAED,oBAGC;AAVD,2DAA4D;AAE5D,SAAgB,SAAS;IACxB,IAAA,yCAAqB,GAAE,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC;AAClE,CAAC;AAED,SAAgB,IAAI,CAAC,QAAgB;IACpC,IAAA,yCAAqB,GAAE,CAAC;IACxB,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { Board } from '../../types/boards';
2
+ import type { Board, BoardContentStatus } from '../../types/boards';
3
3
  export declare const useBoardById: <T>(id: string) => Board<T> | undefined;
4
4
  export declare const getBoardById: <T>(id: string) => Board<T> | undefined;
5
5
  export declare const useBoardContextById: <T>(id: string) => T | undefined;
@@ -9,6 +9,11 @@ export type BoardHooksContext = {
9
9
  closeBoard: () => void;
10
10
  updateBoard: (b: Partial<Board>) => void;
11
11
  setCurrentBoard: () => void;
12
+ /**
13
+ * Set the content status of the board, so that the shell can warn the user before losing unsaved changes.
14
+ * It is optional because shells which don't provide it still exist: call it with `setContentStatus?.()`.
15
+ */
16
+ setContentStatus?: (contentStatus: BoardContentStatus) => void;
12
17
  getBoardContext: <T>() => T;
13
18
  getBoard: <T>() => Board<T>;
14
19
  };
@@ -30,7 +30,8 @@ const BoardProvider = ({ children, id }) => {
30
30
  getBoard: () => (0, exports.getBoardById)(id),
31
31
  closeBoard: () => (0, store_1.closeBoard)(id),
32
32
  updateBoard: (b) => (0, store_1.updateBoard)(id, b),
33
- setCurrentBoard: () => (0, store_1.setCurrentBoard)(id)
33
+ setCurrentBoard: () => (0, store_1.setCurrentBoard)(id),
34
+ setContentStatus: (contentStatus) => (0, store_1.setBoardContentStatus)(id, contentStatus)
34
35
  }), [id]);
35
36
  return ((0, jsx_runtime_1.jsx)(exports.boardHooksContext.Provider, { value: callbacks, children: (0, jsx_runtime_1.jsx)(exports.boardContext.Provider, { value: board, children: children }) }));
36
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/store/boards/hooks.tsx"],"names":[],"mappings":";;;;AAAA;;;;GAIG;AACH,iCAAkE;AAElE,mCAAkF;AAG3E,MAAM,YAAY,GAAG,CAAK,EAAU,EAAwB,EAAE,CACpE,IAAA,qBAAa,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAyB,CAAC;AAD/C,QAAA,YAAY,gBACmC;AACrD,MAAM,YAAY,GAAG,CAAK,EAAU,EAAwB,EAAE,CACpE,qBAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAyB,CAAC;AADhD,QAAA,YAAY,gBACoC;AACtD,MAAM,mBAAmB,GAAG,CAAK,EAAU,EAAiB,EAAE,CACpE,IAAA,qBAAa,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAO,CAAkB,CAAC;AADjD,QAAA,mBAAmB,uBAC8B;AACvD,MAAM,mBAAmB,GAAG,CAAK,EAAU,EAAiB,EAAE,CACpE,qBAAa,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,OAAwB,CAAC;AADlD,QAAA,mBAAmB,uBAC+B;AAE/D,yCAAyC;AAC5B,QAAA,YAAY,GAAG,IAAA,qBAAa,EAAoB,SAAS,CAAC,CAAC;AASxE,yCAAyC;AAC5B,QAAA,iBAAiB,GAAG,IAAA,qBAAa,EAAgC,SAAS,CAAC,CAAC;AAIlF,MAAM,aAAa,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAsB,EAAqB,EAAE;IACxF,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAA,eAAO,EACxB,GAAG,EAAE,CAAC,CAAC;QACN,mEAAmE;QACnE,6CAA6C;QAC7C,eAAe,EAAE,GAAU,EAAE,CAAC,IAAA,2BAAmB,EAAC,EAAE,CAAM;QAC1D,QAAQ,EAAE,GAAiB,EAAE,CAAC,IAAA,oBAAY,EAAC,EAAE,CAAa;QAC1D,UAAU,EAAE,GAAS,EAAE,CAAC,IAAA,kBAAU,EAAC,EAAE,CAAC;QACtC,WAAW,EAAE,CAAC,CAAC,EAAQ,EAAE,CAAC,IAAA,mBAAW,EAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,eAAe,EAAE,GAAS,EAAE,CAAC,IAAA,uBAAe,EAAC,EAAE,CAAC;KAChD,CAAC,EACF,CAAC,EAAE,CAAC,CACJ,CAAC;IACF,OAAO,CACN,uBAAC,yBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,YAC3C,uBAAC,oBAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAAyB,GAC3C,CAC7B,CAAC;AACH,CAAC,CAAC;AAnBW,QAAA,aAAa,iBAmBxB;AAEF;;;;GAIG;AACI,MAAM,aAAa,GAAG,GAAsB,EAAE;IACpD,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,yBAAiB,CAAC,CAAC;IAC5C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACd,8HAA8H,CAC9H,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AARW,QAAA,aAAa,iBAQxB;AAEF;;;;GAIG;AACI,MAAM,QAAQ,GAAG,GAAyC,EAAE;IAClE,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,oBAAY,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACd,wHAAwH,CACxH,CAAC;IACH,CAAC;IACD,OAAO,KAA6B,CAAC;AACtC,CAAC,CAAC;AARW,QAAA,QAAQ,YAQnB"}
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/store/boards/hooks.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Board } from '../../types/boards';
1
+ import type { Board, BoardContentStatus } from '../../types/boards';
2
2
  export type BoardState = {
3
3
  orderedBoards: Array<string>;
4
4
  boards: Record<string, Board>;
@@ -20,4 +20,5 @@ export declare const expandBoards: () => void;
20
20
  export declare const reduceBoards: () => void;
21
21
  export declare const setCurrentBoard: (id: string) => void;
22
22
  export declare const updateBoard: <T = unknown>(id: string, board: Partial<Board<T>>) => void;
23
+ export declare const setBoardContentStatus: (id: string, contentStatus: BoardContentStatus) => void;
23
24
  export declare const updateBoardContext: <T = unknown>(id: string, context: T) => void;
@@ -5,7 +5,7 @@
5
5
  * SPDX-License-Identifier: AGPL-3.0-only
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.updateBoardContext = exports.updateBoard = exports.setCurrentBoard = exports.reduceBoards = exports.expandBoards = exports.reopenBoards = exports.minimizeBoards = exports.onGoToPanel = exports.closeAllBoards = exports.closeBoard = exports.addBoard = exports.useBoardStore = void 0;
8
+ exports.updateBoardContext = exports.setBoardContentStatus = exports.updateBoard = exports.setCurrentBoard = exports.reduceBoards = exports.expandBoards = exports.reopenBoards = exports.minimizeBoards = exports.onGoToPanel = exports.closeAllBoards = exports.closeBoard = exports.addBoard = exports.useBoardStore = void 0;
9
9
  const immer_1 = require("immer");
10
10
  const lodash_1 = require("lodash");
11
11
  const zustand_1 = require("zustand");
@@ -112,6 +112,14 @@ const updateBoard = (id, board) => {
112
112
  }));
113
113
  };
114
114
  exports.updateBoard = updateBoard;
115
+ const setBoardContentStatus = (id, contentStatus) => {
116
+ exports.useBoardStore.setState((0, immer_1.produce)((state) => {
117
+ if (state.boards[id]) {
118
+ state.boards[id].contentStatus = contentStatus;
119
+ }
120
+ }));
121
+ };
122
+ exports.setBoardContentStatus = setBoardContentStatus;
115
123
  const updateBoardContext = (id, context) => {
116
124
  exports.useBoardStore.setState((0, immer_1.produce)((state) => {
117
125
  if (state.boards[id]) {
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/store/boards/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/store/boards/store.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.60.0"
8
+ "packageVersion": "7.60.1"
9
9
  }
10
10
  ]
11
11
  }
@@ -1,8 +1,20 @@
1
+ /**
2
+ * Persistence status of the content of a board:
3
+ * - dirty: the board has changes which have not been saved yet
4
+ * - saving: the changes are being saved
5
+ * - saved: the changes have just been saved, there are no pending changes
6
+ * - pristine: the board has no pending changes since its creation or its changes have been reverted
7
+ */
8
+ export type BoardContentStatus = 'dirty' | 'saving' | 'saved' | 'pristine';
1
9
  export type Board<T = unknown> = {
2
10
  id: string;
3
11
  boardViewId: string;
4
12
  app: string;
5
13
  icon: string;
14
+ /** Icon shown in place of `icon` while the board has pending changes (contentStatus is 'dirty' or 'saving') */
15
+ dirtyIcon?: string;
16
+ /** Content status of the board. Updated by the app responsible for the board. Missing means 'pristine' */
17
+ contentStatus?: BoardContentStatus;
6
18
  title: string;
7
19
  context?: T;
8
20
  onClose?: (board: Board<T>) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zextras/carbonio-shell-ui",
3
- "version": "15.3.24",
3
+ "version": "15.4.0",
4
4
  "description": "The Zextras Carbonio web client",
5
5
  "main": "./lib/lib.js",
6
6
  "types": "./lib/lib.d.ts",
@@ -78,7 +78,7 @@
78
78
  "@emotion/babel-plugin": "11.13.5",
79
79
  "@emotion/jest": "11.14.2",
80
80
  "@faker-js/faker": "10.6.0",
81
- "@microsoft/api-extractor": "7.60.0",
81
+ "@microsoft/api-extractor": "7.60.1",
82
82
  "@semantic-release/changelog": "7.0.0",
83
83
  "@semantic-release/commit-analyzer": "13.0.1",
84
84
  "@semantic-release/git": "11.0.1",
@@ -128,7 +128,7 @@
128
128
  "@fontsource/roboto": "5.3.0",
129
129
  "@zextras/carbonio-design-system": "12.2.1",
130
130
  "@zextras/carbonio-ui-preview": "5.0.19",
131
- "@zextras/carbonio-ui-soap-lib": "1.3.2",
131
+ "@zextras/carbonio-ui-soap-lib": "1.3.3",
132
132
  "darkreader": "4.9.133",
133
133
  "date-fns": "4.4.0",
134
134
  "i18next": "22.5.1",