@itwin/appui-react 3.3.0-dev.71 → 3.3.0-dev.72
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/lib/cjs/appui-react/messages/ActivityMessage.d.ts +26 -0
- package/lib/cjs/appui-react/messages/ActivityMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessage.js +64 -5
- package/lib/cjs/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.js +3 -11
- package/lib/cjs/appui-react/messages/ActivityMessagePopup.js.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.d.ts +17 -0
- package/lib/cjs/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/MessageManager.js +44 -0
- package/lib/cjs/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.js +33 -28
- package/lib/cjs/appui-react/messages/StatusMessageRenderer.js.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.js +1 -0
- package/lib/cjs/appui-react/messages/StatusMessagesContainer.js.map +1 -1
- package/lib/cjs/appui-react/messages/StickyMessage.d.ts +1 -0
- package/lib/cjs/appui-react/messages/StickyMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/StickyMessage.js +8 -6
- package/lib/cjs/appui-react/messages/StickyMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.d.ts +1 -0
- package/lib/cjs/appui-react/messages/ToastMessage.d.ts.map +1 -1
- package/lib/cjs/appui-react/messages/ToastMessage.js +7 -5
- package/lib/cjs/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/cjs/appui-react/messages/getToastCategory.d.ts +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts +2 -8
- package/lib/cjs/appui-react/statusbar/StatusBar.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusbar/StatusBar.js +26 -24
- package/lib/cjs/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/cjs/appui-react/statusfields/MessageCenter.js +1 -0
- package/lib/cjs/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts +26 -0
- package/lib/esm/appui-react/messages/ActivityMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessage.js +63 -7
- package/lib/esm/appui-react/messages/ActivityMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ActivityMessagePopup.js +4 -12
- package/lib/esm/appui-react/messages/ActivityMessagePopup.js.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.d.ts +17 -0
- package/lib/esm/appui-react/messages/MessageManager.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/MessageManager.js +44 -0
- package/lib/esm/appui-react/messages/MessageManager.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts +2 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessageRenderer.js +33 -28
- package/lib/esm/appui-react/messages/StatusMessageRenderer.js.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts +1 -0
- package/lib/esm/appui-react/messages/StatusMessagesContainer.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/StatusMessagesContainer.js +1 -0
- package/lib/esm/appui-react/messages/StatusMessagesContainer.js.map +1 -1
- package/lib/esm/appui-react/messages/StickyMessage.d.ts +1 -0
- package/lib/esm/appui-react/messages/StickyMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/StickyMessage.js +9 -7
- package/lib/esm/appui-react/messages/StickyMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.d.ts +1 -0
- package/lib/esm/appui-react/messages/ToastMessage.d.ts.map +1 -1
- package/lib/esm/appui-react/messages/ToastMessage.js +8 -6
- package/lib/esm/appui-react/messages/ToastMessage.js.map +1 -1
- package/lib/esm/appui-react/messages/getToastCategory.d.ts +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts +2 -8
- package/lib/esm/appui-react/statusbar/StatusBar.d.ts.map +1 -1
- package/lib/esm/appui-react/statusbar/StatusBar.js +26 -24
- package/lib/esm/appui-react/statusbar/StatusBar.js.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.d.ts.map +1 -1
- package/lib/esm/appui-react/statusfields/MessageCenter.js +1 -0
- package/lib/esm/appui-react/statusfields/MessageCenter.js.map +1 -1
- package/package.json +32 -32
|
@@ -10,62 +10,67 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.StatusMessageRenderer = void 0;
|
|
11
11
|
require("./StatusMessageRenderer.scss");
|
|
12
12
|
const React = require("react");
|
|
13
|
-
const classnames_1 = require("classnames");
|
|
14
13
|
const MessageManager_1 = require("./MessageManager");
|
|
15
|
-
const
|
|
14
|
+
const ActivityMessage_1 = require("./ActivityMessage");
|
|
16
15
|
/** Message Popup React component that renders one or more Toast or Sticky messages and an Activity message without a StatusBar.
|
|
17
16
|
* @note This component was formerly named MessageRenderer in previous releases.
|
|
18
17
|
* @public
|
|
18
|
+
* @deprecated Use `toaster` from iTwinui-react to display status messages.
|
|
19
19
|
*/
|
|
20
|
-
function StatusMessageRenderer(
|
|
21
|
-
const
|
|
20
|
+
function StatusMessageRenderer({ closeMessage, cancelActivityMessage: cancelActivityMessageProp, dismissActivityMessage, }) {
|
|
21
|
+
const messages = React.useRef([]);
|
|
22
22
|
const [activityMessageInfo, setActivityMessageInfo] = React.useState(undefined);
|
|
23
|
-
const
|
|
23
|
+
const updateMessages = () => {
|
|
24
|
+
const updatedMessages = [...messages.current];
|
|
25
|
+
messages.current.forEach((m) => {
|
|
26
|
+
if (!MessageManager_1.MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {
|
|
27
|
+
m.close();
|
|
28
|
+
const index = updatedMessages.findIndex((msg) => msg.id === m.id);
|
|
29
|
+
updatedMessages.splice(index, 1);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
messages.current = updatedMessages;
|
|
33
|
+
};
|
|
24
34
|
React.useEffect(() => {
|
|
25
|
-
const handleMessageAddedEvent = (
|
|
26
|
-
|
|
35
|
+
const handleMessageAddedEvent = ({ message }) => {
|
|
36
|
+
updateMessages();
|
|
37
|
+
const messagesToAdd = MessageManager_1.MessageManager.activeMessageManager.messages.filter((msg) => !messages.current.find((m) => m.id === msg.id));
|
|
38
|
+
messagesToAdd.forEach((msg) => {
|
|
39
|
+
const displayedMessage = MessageManager_1.MessageManager.displayMessage(message, { onRemove: () => onRemove(msg.id) }, { placement: "top", order: "descending" });
|
|
40
|
+
if (!!displayedMessage)
|
|
41
|
+
messages.current.push({ close: displayedMessage.close, id: msg.id });
|
|
42
|
+
});
|
|
27
43
|
};
|
|
28
44
|
return MessageManager_1.MessageManager.onMessageAddedEvent.addListener(handleMessageAddedEvent);
|
|
45
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29
46
|
}, []);
|
|
30
47
|
React.useEffect(() => {
|
|
31
48
|
/** Respond to clearing the message list */
|
|
32
|
-
|
|
33
|
-
setMessages(MessageManager_1.MessageManager.activeMessageManager.messages);
|
|
34
|
-
};
|
|
35
|
-
return MessageManager_1.MessageManager.onMessagesUpdatedEvent.addListener(handleMessagesUpdatedEvent);
|
|
49
|
+
return MessageManager_1.MessageManager.onMessagesUpdatedEvent.addListener(updateMessages);
|
|
36
50
|
}, []);
|
|
37
51
|
React.useEffect(() => {
|
|
38
52
|
const handleActivityMessageUpdatedEvent = (args) => {
|
|
39
53
|
setActivityMessageInfo(args);
|
|
40
|
-
if (args.restored)
|
|
41
|
-
setIsActivityMessageVisible(true);
|
|
42
54
|
};
|
|
43
55
|
return MessageManager_1.MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);
|
|
44
|
-
}, [
|
|
56
|
+
}, []);
|
|
45
57
|
React.useEffect(() => {
|
|
46
58
|
const handleActivityMessageCancelledEvent = () => {
|
|
47
59
|
setActivityMessageInfo(undefined);
|
|
48
|
-
setIsActivityMessageVisible(false);
|
|
49
60
|
};
|
|
50
61
|
return MessageManager_1.MessageManager.onActivityMessageCancelledEvent.addListener(handleActivityMessageCancelledEvent);
|
|
51
62
|
}, []);
|
|
52
|
-
const
|
|
63
|
+
const onRemove = React.useCallback((id) => {
|
|
53
64
|
MessageManager_1.MessageManager.activeMessageManager.remove(id);
|
|
54
65
|
MessageManager_1.MessageManager.updateMessages();
|
|
55
|
-
|
|
56
|
-
}, [
|
|
66
|
+
closeMessage === null || closeMessage === void 0 ? void 0 : closeMessage(id);
|
|
67
|
+
}, [closeMessage]);
|
|
57
68
|
const cancelActivityMessage = React.useCallback(() => {
|
|
58
69
|
MessageManager_1.MessageManager.endActivityMessage(false);
|
|
59
|
-
|
|
60
|
-
}, [
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
props.dismissActivityMessage && props.dismissActivityMessage();
|
|
64
|
-
}, [props]);
|
|
65
|
-
if (!(activityMessageInfo && isActivityMessageVisible) && messages.length === 0)
|
|
66
|
-
return null;
|
|
67
|
-
return (React.createElement("div", { className: (0, classnames_1.default)("uifw-message-renderer", props.className), style: props.style },
|
|
68
|
-
React.createElement(StatusMessagesContainer_1.StatusMessagesContainer, { messages: messages, activityMessageInfo: activityMessageInfo, isActivityMessageVisible: isActivityMessageVisible, toastTarget: null, closeMessage: closeMessage, cancelActivityMessage: cancelActivityMessage, dismissActivityMessage: dismissActivityMessage })));
|
|
70
|
+
cancelActivityMessageProp && cancelActivityMessageProp();
|
|
71
|
+
}, [cancelActivityMessageProp]);
|
|
72
|
+
(0, ActivityMessage_1.useActivityMessage)({ activityMessageInfo, cancelActivityMessage, dismissActivityMessage });
|
|
73
|
+
return React.createElement(React.Fragment, null);
|
|
69
74
|
}
|
|
70
75
|
exports.StatusMessageRenderer = StatusMessageRenderer;
|
|
71
76
|
//# sourceMappingURL=StatusMessageRenderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusMessageRenderer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessageRenderer.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wCAAsC;AACtC,+BAA+B;AAC/B,
|
|
1
|
+
{"version":3,"file":"StatusMessageRenderer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessageRenderer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./StatusMessageRenderer.scss\";\r\nimport * as React from \"react\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"./MessageManager\";\r\nimport { CommonProps } from \"@itwin/core-react\";\r\nimport { useActivityMessage } from \"./ActivityMessage\";\r\n\r\n/** Message type for the [[StatusMessageRenderer]] React component\r\n * @internal\r\n */\r\ninterface StatusMessageRendererrMessage {\r\n close: () => void;\r\n id: string;\r\n}\r\n\r\n/** Properties for [[StatusMessageRenderer]] component\r\n * @public\r\n */\r\nexport interface StatusMessageRendererProps extends CommonProps {\r\n closeMessage?: (id: string) => void;\r\n cancelActivityMessage?: () => void;\r\n dismissActivityMessage?: () => void;\r\n}\r\n\r\n/** Message Popup React component that renders one or more Toast or Sticky messages and an Activity message without a StatusBar.\r\n * @note This component was formerly named MessageRenderer in previous releases.\r\n * @public\r\n * @deprecated Use `toaster` from iTwinui-react to display status messages.\r\n */\r\nexport function StatusMessageRenderer({\r\n closeMessage,\r\n cancelActivityMessage: cancelActivityMessageProp,\r\n dismissActivityMessage,\r\n}: StatusMessageRendererProps) {\r\n const messages = React.useRef<StatusMessageRendererrMessage[]>([]);\r\n const [activityMessageInfo, setActivityMessageInfo] = React.useState<ActivityMessageEventArgs | undefined>(undefined);\r\n\r\n const updateMessages = () => {\r\n const updatedMessages = [...messages.current];\r\n messages.current.forEach((m) => {\r\n if (!MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {\r\n m.close();\r\n const index = updatedMessages.findIndex((msg) => msg.id === m.id);\r\n updatedMessages.splice(index, 1);\r\n }\r\n });\r\n\r\n messages.current = updatedMessages;\r\n };\r\n\r\n React.useEffect(() => {\r\n const handleMessageAddedEvent = ({ message }: MessageAddedEventArgs) => {\r\n updateMessages();\r\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter((msg) => !messages.current.find((m) => m.id === msg.id));\r\n messagesToAdd.forEach((msg) => {\r\n const displayedMessage = MessageManager.displayMessage(\r\n message,\r\n { onRemove: () => onRemove(msg.id) },\r\n { placement: \"top\", order: \"descending\" }\r\n );\r\n if(!!displayedMessage)\r\n messages.current.push({close: displayedMessage.close, id: msg.id});\r\n });\r\n };\r\n\r\n return MessageManager.onMessageAddedEvent.addListener(handleMessageAddedEvent);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n /** Respond to clearing the message list */\r\n return MessageManager.onMessagesUpdatedEvent.addListener(updateMessages);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n setActivityMessageInfo(args);\r\n };\r\n\r\n return MessageManager.onActivityMessageUpdatedEvent.addListener(handleActivityMessageUpdatedEvent);\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const handleActivityMessageCancelledEvent = () => {\r\n setActivityMessageInfo(undefined);\r\n };\r\n\r\n return MessageManager.onActivityMessageCancelledEvent.addListener(handleActivityMessageCancelledEvent);\r\n }, []);\r\n\r\n const onRemove = React.useCallback((id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n closeMessage?.(id);\r\n }, [closeMessage]);\r\n\r\n const cancelActivityMessage = React.useCallback(() => {\r\n MessageManager.endActivityMessage(false);\r\n cancelActivityMessageProp && cancelActivityMessageProp();\r\n }, [cancelActivityMessageProp]);\r\n\r\n useActivityMessage({activityMessageInfo, cancelActivityMessage, dismissActivityMessage});\r\n\r\n return <></>;\r\n}\r\n"]}
|
|
@@ -19,6 +19,7 @@ export interface StatusMessagesContainerProps {
|
|
|
19
19
|
}
|
|
20
20
|
/** Component that renders one or more Toast, Sticky or Activity messages
|
|
21
21
|
* @internal
|
|
22
|
+
* @deprecated
|
|
22
23
|
*/
|
|
23
24
|
export declare function StatusMessagesContainer(props: StatusMessagesContainerProps): JSX.Element | null;
|
|
24
25
|
//# sourceMappingURL=StatusMessagesContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusMessagesContainer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessagesContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAO5D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvC,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC1D,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED
|
|
1
|
+
{"version":3,"file":"StatusMessagesContainer.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessagesContainer.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,gCAAgC,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAO5D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACvC,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC1D,wBAAwB,EAAE,OAAO,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,sBAAsB,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,sBAqE1E"}
|
|
@@ -18,6 +18,7 @@ const ActivityMessage_1 = require("./ActivityMessage");
|
|
|
18
18
|
const core_react_1 = require("@itwin/core-react");
|
|
19
19
|
/** Component that renders one or more Toast, Sticky or Activity messages
|
|
20
20
|
* @internal
|
|
21
|
+
* @deprecated
|
|
21
22
|
*/
|
|
22
23
|
function StatusMessagesContainer(props) {
|
|
23
24
|
const [containerElement, setContainerElement] = React.useState(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusMessagesContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessagesContainer.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,0CAAwC;AACxC,+BAA+B;AAC/B,2CAAoC;AAGpC,wDAAyD;AACzD,iDAA8C;AAC9C,mDAAgD;AAChD,uDAAoD;AACpD,kDAA4D;AAe5D
|
|
1
|
+
{"version":3,"file":"StatusMessagesContainer.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StatusMessagesContainer.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./StatusMessagesContainer.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { StatusMessage } from \"./StatusMessageManager\";\r\nimport { ActivityMessageEventArgs } from \"./MessageManager\";\r\nimport { OutputMessageType } from \"@itwin/core-frontend\";\r\nimport { ToastMessage } from \"./ToastMessage\";\r\nimport { StickyMessage } from \"./StickyMessage\";\r\nimport { ActivityMessage } from \"./ActivityMessage\";\r\nimport { useLayoutResizeObserver } from \"@itwin/core-react\";\r\n\r\n/** Properties for [[StatusMessagesContainer]] component\r\n * @internal\r\n */\r\nexport interface StatusMessagesContainerProps {\r\n messages: ReadonlyArray<StatusMessage>;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n isActivityMessageVisible: boolean;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n cancelActivityMessage: () => void;\r\n dismissActivityMessage: () => void;\r\n}\r\n\r\n/** Component that renders one or more Toast, Sticky or Activity messages\r\n * @internal\r\n * @deprecated\r\n */\r\nexport function StatusMessagesContainer(props: StatusMessagesContainerProps) {\r\n const [containerElement, setContainerElement] = React.useState<HTMLDivElement | null>(null);\r\n const isMountedRef = React.useRef(false);\r\n\r\n React.useEffect(() => {\r\n if (!isMountedRef.current && containerRef.current) {\r\n isMountedRef.current = true;\r\n setContainerElement(containerRef.current);\r\n }\r\n }, []);\r\n\r\n const messages = props.messages;\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const [, height] = useLayoutResizeObserver(containerElement);\r\n const [addScroll, setAddScroll] = React.useState(false);\r\n\r\n React.useLayoutEffect(() => {\r\n // istanbul ignore else\r\n if (containerElement) {\r\n // istanbul ignore next\r\n const windowHeight = containerElement.ownerDocument.defaultView?.innerHeight ?? 800;\r\n const maxHeight = Math.floor(windowHeight * .66);\r\n setAddScroll((height ?? 0) >= maxHeight);\r\n }\r\n }, [height, containerElement]);\r\n\r\n if (!(props.activityMessageInfo && props.isActivityMessageVisible) && props.messages.length === 0)\r\n return null;\r\n\r\n return (\r\n <div ref={containerRef} className={classnames(\"uifw-statusbar-messages-container\", addScroll && \"uifw-scrollable\")}>\r\n <ul className=\"uifw-statusbar-message-list\">\r\n {messages.length > 0 &&\r\n messages.map((message: StatusMessage) => {\r\n let messageNode = null;\r\n if (message.messageDetails.msgType === OutputMessageType.Toast) {\r\n messageNode = (\r\n <li key={message.id}>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ToastMessage id={message.id} messageDetails={message.messageDetails} severity={message.severity}\r\n closeMessage={props.closeMessage} toastTarget={props.toastTarget} />\r\n </li>\r\n );\r\n } else if (message.messageDetails.msgType === OutputMessageType.Sticky) {\r\n messageNode = (\r\n <li key={message.id}>\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <StickyMessage id={message.id} messageDetails={message.messageDetails} severity={message.severity}\r\n closeMessage={props.closeMessage} />\r\n </li>\r\n );\r\n }\r\n return messageNode;\r\n })\r\n }\r\n {(props.activityMessageInfo !== undefined && props.isActivityMessageVisible) &&\r\n <li key=\"activity-message\">\r\n {/* eslint-disable-next-line deprecation/deprecation */}\r\n <ActivityMessage\r\n activityMessageInfo={props.activityMessageInfo}\r\n cancelActivityMessage={props.cancelActivityMessage}\r\n dismissActivityMessage={props.dismissActivityMessage}\r\n />\r\n </li>\r\n }\r\n </ul>\r\n </div>\r\n );\r\n\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StickyMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"StickyMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAEH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAKjF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,eAgDtD"}
|
|
@@ -12,15 +12,15 @@ require("./StickyMessage.scss");
|
|
|
12
12
|
const React = require("react");
|
|
13
13
|
const classnames_1 = require("classnames");
|
|
14
14
|
const appui_layout_react_1 = require("@itwin/appui-layout-react");
|
|
15
|
-
const Toast_1 = require("@itwin/itwinui-react/cjs/core/Toast/Toast");
|
|
16
15
|
const MessageLabel_1 = require("./MessageLabel");
|
|
17
|
-
const
|
|
16
|
+
const HollowIcon_1 = require("./HollowIcon");
|
|
17
|
+
const core_react_1 = require("@itwin/core-react");
|
|
18
18
|
/** Sticky Message React component
|
|
19
19
|
* @public
|
|
20
|
+
* @deprecated
|
|
20
21
|
*/
|
|
21
22
|
function StickyMessage(props) {
|
|
22
23
|
const { id, messageDetails, severity, closeMessage } = props;
|
|
23
|
-
const category = (0, getToastCategory_1.getToastCategory)(severity);
|
|
24
24
|
const [closing, setClosing] = React.useState(false);
|
|
25
25
|
const handleClose = () => {
|
|
26
26
|
setClosing(true);
|
|
@@ -28,10 +28,12 @@ function StickyMessage(props) {
|
|
|
28
28
|
};
|
|
29
29
|
const classNames = (0, classnames_1.default)("uifw-statusbar-sticky-message", closing && "uifw-closing");
|
|
30
30
|
return (React.createElement("div", { className: classNames },
|
|
31
|
-
React.createElement(
|
|
31
|
+
React.createElement(appui_layout_react_1.Message // eslint-disable-line deprecation/deprecation
|
|
32
|
+
, { status: appui_layout_react_1.StatusHelpers.severityToStatus(severity), icon: React.createElement(HollowIcon_1.HollowIcon, { iconSpec: core_react_1.MessageContainer.getIconClassName(severity, true) }) },
|
|
33
|
+
React.createElement(appui_layout_react_1.MessageLayout, { buttons: React.createElement(appui_layout_react_1.MessageButton, { onClick: handleClose, className: "uifw-statusbar-sticky-close" },
|
|
34
|
+
React.createElement(core_react_1.Icon, { iconSpec: "icon-close" })) },
|
|
32
35
|
React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.briefMessage, className: "uifw-statusbar-message-brief" }),
|
|
33
|
-
messageDetails.detailedMessage &&
|
|
34
|
-
React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" })) })));
|
|
36
|
+
messageDetails.detailedMessage && (React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))))));
|
|
35
37
|
}
|
|
36
38
|
exports.StickyMessage = StickyMessage;
|
|
37
39
|
//# sourceMappingURL=StickyMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StickyMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,gCAA8B;AAC9B,+BAA+B;AAC/B,2CAAoC;AAEpC,
|
|
1
|
+
{"version":3,"file":"StickyMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/StickyMessage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,gCAA8B;AAC9B,+BAA+B;AAC/B,2CAAoC;AAEpC,kEAKmC;AAEnC,iDAA8C;AAC9C,6CAA0C;AAC1C,kDAA2D;AAY3D;;;GAGG;AACH,SAAgB,aAAa,CAAC,KAAyB;IACrD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,UAAU,CAAC,IAAI,CAAC,CAAC;QACjB,UAAU,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,oBAAU,EAC3B,+BAA+B,EAC/B,OAAO,IAAI,cAAc,CAC1B,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAE,UAAU;QACxB,oBAAC,4BAAO,CAAC,8CAA8C;YACrD,MAAM,EAAE,kCAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAChD,IAAI,EACF,oBAAC,uBAAU,IACT,QAAQ,EAAE,6BAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC3D;YAGJ,oBAAC,kCAAa,IACZ,OAAO,EACL,oBAAC,kCAAa,IACZ,OAAO,EAAE,WAAW,EACpB,SAAS,EAAC,6BAA6B;oBAEvC,oBAAC,iBAAI,IAAC,QAAQ,EAAC,YAAY,GAAG,CAChB;gBAGlB,oBAAC,2BAAY,IACX,OAAO,EAAE,cAAc,CAAC,YAAY,EACpC,SAAS,EAAC,8BAA8B,GACxC;gBACD,cAAc,CAAC,eAAe,IAAI,CACjC,oBAAC,2BAAY,IACX,OAAO,EAAE,cAAc,CAAC,eAAe,EACvC,SAAS,EAAC,iCAAiC,GAC3C,CACH,CACa,CACR,CACN,CACP,CAAC;AACJ,CAAC;AAhDD,sCAgDC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport \"./StickyMessage.scss\";\r\nimport * as React from \"react\";\r\nimport classnames from \"classnames\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport {\r\n Message,\r\n MessageButton,\r\n MessageLayout,\r\n StatusHelpers,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { Icon, MessageContainer } from \"@itwin/core-react\";\r\n\r\n/** Properties for a [[StickyMessage]]\r\n * @public\r\n */\r\nexport interface StickyMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Sticky Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function StickyMessage(props: StickyMessageProps) {\r\n const { id, messageDetails, severity, closeMessage } = props;\r\n const [closing, setClosing] = React.useState(false);\r\n\r\n const handleClose = () => {\r\n setClosing(true);\r\n setTimeout(() => closeMessage(id), 500);\r\n };\r\n\r\n const classNames = classnames(\r\n \"uifw-statusbar-sticky-message\",\r\n closing && \"uifw-closing\",\r\n );\r\n\r\n return (\r\n <div className={classNames}>\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={StatusHelpers.severityToStatus(severity)}\r\n icon={\r\n <HollowIcon\r\n iconSpec={MessageContainer.getIconClassName(severity, true)}\r\n />\r\n }\r\n >\r\n <MessageLayout\r\n buttons={\r\n <MessageButton\r\n onClick={handleClose}\r\n className=\"uifw-statusbar-sticky-close\"\r\n >\r\n <Icon iconSpec=\"icon-close\" />\r\n </MessageButton>\r\n }\r\n >\r\n <MessageLabel\r\n message={messageDetails.briefMessage}\r\n className=\"uifw-statusbar-message-brief\"\r\n />\r\n {messageDetails.detailedMessage && (\r\n <MessageLabel\r\n message={messageDetails.detailedMessage}\r\n className=\"uifw-statusbar-message-detailed\"\r\n />\r\n )}\r\n </MessageLayout>\r\n </Message>\r\n </div>\r\n );\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ToastMessage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":"AAIA;;GAEG;;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAKjF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,wBAAwB,CAAC;IACzC,QAAQ,EAAE,eAAe,CAAC;IAC1B,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,eA2BpD"}
|
|
@@ -10,20 +10,22 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.ToastMessage = void 0;
|
|
11
11
|
const React = require("react");
|
|
12
12
|
const appui_layout_react_1 = require("@itwin/appui-layout-react");
|
|
13
|
-
const Toast_1 = require("@itwin/itwinui-react/cjs/core/Toast/Toast");
|
|
14
13
|
const MessageLabel_1 = require("./MessageLabel");
|
|
15
|
-
const
|
|
14
|
+
const HollowIcon_1 = require("./HollowIcon");
|
|
15
|
+
const core_react_1 = require("@itwin/core-react");
|
|
16
16
|
/** Toast Message React component
|
|
17
17
|
* @public
|
|
18
|
+
* @deprecated
|
|
18
19
|
*/
|
|
19
20
|
function ToastMessage(props) {
|
|
20
21
|
const { id, messageDetails, severity, toastTarget, closeMessage } = props;
|
|
21
|
-
const category = (0, getToastCategory_1.getToastCategory)(severity);
|
|
22
22
|
return (React.createElement(appui_layout_react_1.Toast // eslint-disable-line deprecation/deprecation
|
|
23
|
-
, { animateOutTo: toastTarget, onAnimatedOut: () => closeMessage(id), timeout: messageDetails.displayTime.milliseconds, content: React.createElement(
|
|
23
|
+
, { animateOutTo: toastTarget, onAnimatedOut: () => closeMessage(id), timeout: messageDetails.displayTime.milliseconds, content: React.createElement(appui_layout_react_1.Message // eslint-disable-line deprecation/deprecation
|
|
24
|
+
, { status: appui_layout_react_1.StatusHelpers.severityToStatus(severity), icon: React.createElement(HollowIcon_1.HollowIcon, { iconSpec: core_react_1.MessageContainer.getIconClassName(severity, true) }) },
|
|
25
|
+
React.createElement(appui_layout_react_1.MessageLayout, null,
|
|
24
26
|
React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.briefMessage, className: "uifw-statusbar-message-brief" }),
|
|
25
27
|
messageDetails.detailedMessage &&
|
|
26
|
-
React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))
|
|
28
|
+
React.createElement(MessageLabel_1.MessageLabel, { message: messageDetails.detailedMessage, className: "uifw-statusbar-message-detailed" }))) }));
|
|
27
29
|
}
|
|
28
30
|
exports.ToastMessage = ToastMessage;
|
|
29
31
|
//# sourceMappingURL=ToastMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,
|
|
1
|
+
{"version":3,"file":"ToastMessage.js","sourceRoot":"","sources":["../../../../src/appui-react/messages/ToastMessage.tsx"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,+BAA+B;AAE/B,kEAKmC;AAEnC,iDAA8C;AAC9C,6CAA0C;AAC1C,kDAAqD;AAarD;;;GAGG;AACH,SAAgB,YAAY,CAAC,KAAwB;IACnD,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IAE1E,OAAO,CACL,oBAAC,0BAAK,CAAC,8CAA8C;QACnD,YAAY,EAAE,WAAW,EACzB,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,EACrC,OAAO,EAAE,cAAc,CAAC,WAAW,CAAC,YAAY,EAChD,OAAO,EACL,oBAAC,4BAAO,CAAC,8CAA8C;YACrD,MAAM,EAAE,kCAAa,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAChD,IAAI,EACF,oBAAC,uBAAU,IACT,QAAQ,EAAE,6BAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,GAC3D;YAGJ,oBAAC,kCAAa;gBACZ,oBAAC,2BAAY,IAAC,OAAO,EAAE,cAAc,CAAC,YAAY,EAAE,SAAS,EAAC,8BAA8B,GAAG;gBAC9F,cAAc,CAAC,eAAe;oBAC7B,oBAAC,2BAAY,IAAC,OAAO,EAAE,cAAc,CAAC,eAAe,EAAE,SAAS,EAAC,iCAAiC,GAAG,CAEzF,CACR,GAEZ,CACH,CAAC;AACJ,CAAC;AA3BD,oCA2BC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Notification\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport { MessageSeverity } from \"@itwin/appui-abstract\";\r\nimport {\r\n Message,\r\n MessageLayout,\r\n StatusHelpers,\r\n Toast,\r\n} from \"@itwin/appui-layout-react\";\r\nimport { NotifyMessageDetailsType } from \"../messages/ReactNotifyMessageDetails\";\r\nimport { MessageLabel } from \"./MessageLabel\";\r\nimport { HollowIcon } from \"./HollowIcon\";\r\nimport { MessageContainer } from \"@itwin/core-react\";\r\n\r\n/** Properties for a [[ToastMessage]]\r\n * @public\r\n */\r\nexport interface ToastMessageProps {\r\n id: string;\r\n messageDetails: NotifyMessageDetailsType;\r\n severity: MessageSeverity;\r\n toastTarget: HTMLElement | null;\r\n closeMessage: (id: string) => void;\r\n}\r\n\r\n/** Toast Message React component\r\n * @public\r\n * @deprecated\r\n */\r\nexport function ToastMessage(props: ToastMessageProps) {\r\n const { id, messageDetails, severity, toastTarget, closeMessage } = props;\r\n\r\n return (\r\n <Toast // eslint-disable-line deprecation/deprecation\r\n animateOutTo={toastTarget}\r\n onAnimatedOut={() => closeMessage(id)}\r\n timeout={messageDetails.displayTime.milliseconds}\r\n content={\r\n <Message // eslint-disable-line deprecation/deprecation\r\n status={StatusHelpers.severityToStatus(severity)}\r\n icon={\r\n <HollowIcon\r\n iconSpec={MessageContainer.getIconClassName(severity, true)}\r\n />\r\n }\r\n >\r\n <MessageLayout>\r\n <MessageLabel message={messageDetails.briefMessage} className=\"uifw-statusbar-message-brief\" />\r\n {messageDetails.detailedMessage &&\r\n <MessageLabel message={messageDetails.detailedMessage} className=\"uifw-statusbar-message-detailed\" />\r\n }\r\n </MessageLayout>\r\n </Message>\r\n }\r\n />\r\n );\r\n}\r\n"]}
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { MessageSeverity } from "@itwin/appui-abstract";
|
|
5
5
|
/** @internal */
|
|
6
|
-
export declare function getToastCategory(severity: MessageSeverity): "
|
|
6
|
+
export declare function getToastCategory(severity: MessageSeverity): "positive" | "negative" | "informational" | "warning";
|
|
7
7
|
//# sourceMappingURL=getToastCategory.d.ts.map
|
|
@@ -6,16 +6,12 @@ import * as React from "react";
|
|
|
6
6
|
import { CommonDivProps, CommonProps } from "@itwin/core-react";
|
|
7
7
|
import { ActivityMessageEventArgs } from "../messages/MessageManager";
|
|
8
8
|
import { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from "./StatusBarWidgetControl";
|
|
9
|
-
import { StatusMessage } from "../messages/StatusMessageManager";
|
|
10
9
|
/** State for the [[StatusBar]] React component
|
|
11
10
|
* @internal
|
|
12
11
|
*/
|
|
13
12
|
interface StatusBarState {
|
|
14
13
|
openWidget: StatusBarFieldId;
|
|
15
|
-
messages: ReadonlyArray<StatusMessage>;
|
|
16
14
|
activityMessageInfo: ActivityMessageEventArgs | undefined;
|
|
17
|
-
isActivityMessageVisible: boolean;
|
|
18
|
-
toastTarget: HTMLElement | null;
|
|
19
15
|
}
|
|
20
16
|
/** Properties for the [[StatusBar]] React component
|
|
21
17
|
* @public
|
|
@@ -28,12 +24,14 @@ export interface StatusBarProps extends CommonProps {
|
|
|
28
24
|
* @public
|
|
29
25
|
*/
|
|
30
26
|
export declare class StatusBar extends React.Component<StatusBarProps, StatusBarState> {
|
|
27
|
+
private messages;
|
|
31
28
|
/** @internal */
|
|
32
29
|
constructor(props: StatusBarProps);
|
|
33
30
|
render(): React.ReactNode;
|
|
34
31
|
componentDidMount(): void;
|
|
35
32
|
componentWillUnmount(): void;
|
|
36
33
|
private _handleMessageAddedEvent;
|
|
34
|
+
private _updateMessages;
|
|
37
35
|
/** Respond to clearing the message list */
|
|
38
36
|
private _handleMessagesUpdatedEvent;
|
|
39
37
|
/**
|
|
@@ -50,10 +48,6 @@ export declare class StatusBar extends React.Component<StatusBarProps, StatusBar
|
|
|
50
48
|
* Ends canceled process and dismisses ActivityMessage
|
|
51
49
|
*/
|
|
52
50
|
private _cancelActivityMessage;
|
|
53
|
-
/**
|
|
54
|
-
* Dismisses ActivityMessage
|
|
55
|
-
*/
|
|
56
|
-
private _dismissActivityMessage;
|
|
57
51
|
private _handleOpenWidget;
|
|
58
52
|
private _closeMessage;
|
|
59
53
|
private _handleToastTargetRef;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAyC,MAAM,4BAA4B,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAO,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,wBAAwB,EAAyC,MAAM,4BAA4B,CAAC;AAG7G,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAKhH;;GAEG;AACH,UAAU,cAAc;IACtB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB,EAAE,wBAAwB,GAAG,SAAS,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,aAAa,CAAC,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,OAAO,CAAC;CACzB;AAUD;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAC5E,OAAO,CAAC,QAAQ,CAA0B;IAE1C,gBAAgB;gBACJ,KAAK,EAAE,cAAc;IASjB,MAAM,IAAI,KAAK,CAAC,SAAS;IAuCzB,iBAAiB;IASjB,oBAAoB;IAOpC,OAAO,CAAC,wBAAwB,CAQ9B;IAEF,OAAO,CAAC,eAAe,CAUrB;IAEF,2CAA2C;IAC3C,OAAO,CAAC,2BAA2B,CAEjC;IAEF;;;OAGG;IACH,OAAO,CAAC,kCAAkC,CAIxC;IAEF;;OAEG;IACH,OAAO,CAAC,oCAAoC,CAI1C;IAEF,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,sBAAsB,CAE5B;IAEF,OAAO,CAAC,iBAAiB,CAIvB;IAEF,OAAO,CAAC,aAAa,CAGnB;IAEF,OAAO,CAAC,qBAAqB,CAE3B;CACH;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,eAGzD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,eAG3D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,eAG1D;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,2CAK3B,CAAC"}
|
|
@@ -15,7 +15,7 @@ const appui_layout_react_1 = require("@itwin/appui-layout-react");
|
|
|
15
15
|
const MessageManager_1 = require("../messages/MessageManager");
|
|
16
16
|
const SafeAreaContext_1 = require("../safearea/SafeAreaContext");
|
|
17
17
|
const UiShowHideManager_1 = require("../utils/UiShowHideManager");
|
|
18
|
-
const
|
|
18
|
+
const ActivityMessage_1 = require("../messages/ActivityMessage");
|
|
19
19
|
/** Status Bar React component.
|
|
20
20
|
* @public
|
|
21
21
|
*/
|
|
@@ -23,29 +23,46 @@ class StatusBar extends React.Component {
|
|
|
23
23
|
/** @internal */
|
|
24
24
|
constructor(props) {
|
|
25
25
|
super(props);
|
|
26
|
+
this.messages = [];
|
|
26
27
|
this._handleMessageAddedEvent = (_args) => {
|
|
27
|
-
this.
|
|
28
|
+
this._updateMessages();
|
|
29
|
+
const messagesToAdd = MessageManager_1.MessageManager.activeMessageManager.messages.filter((msg) => !this.messages.find((m) => m.id === msg.id));
|
|
30
|
+
messagesToAdd.forEach((msg) => {
|
|
31
|
+
const displayedMessage = MessageManager_1.MessageManager.displayMessage(msg.messageDetails, { onRemove: () => this._closeMessage(msg.id) });
|
|
32
|
+
if (!!displayedMessage)
|
|
33
|
+
this.messages.push({ close: displayedMessage.close, id: msg.id });
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
this._updateMessages = () => {
|
|
37
|
+
const updatedMessages = [...this.messages];
|
|
38
|
+
this.messages.forEach((m) => {
|
|
39
|
+
if (!MessageManager_1.MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {
|
|
40
|
+
m.close();
|
|
41
|
+
const index = updatedMessages.findIndex((msg) => msg.id === m.id);
|
|
42
|
+
updatedMessages.splice(index, 1);
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
this.messages = updatedMessages;
|
|
28
46
|
};
|
|
29
47
|
/** Respond to clearing the message list */
|
|
30
48
|
this._handleMessagesUpdatedEvent = () => {
|
|
31
|
-
this.
|
|
49
|
+
this._updateMessages();
|
|
32
50
|
};
|
|
33
51
|
/**
|
|
34
52
|
* Sets state of the status bar to updated values reflecting activity progress.
|
|
35
53
|
* @param args New values to set for ActivityMessage
|
|
36
54
|
*/
|
|
37
55
|
this._handleActivityMessageUpdatedEvent = (args) => {
|
|
38
|
-
this.setState(
|
|
56
|
+
this.setState({
|
|
39
57
|
activityMessageInfo: args,
|
|
40
|
-
|
|
41
|
-
}));
|
|
58
|
+
});
|
|
42
59
|
};
|
|
43
60
|
/**
|
|
44
61
|
* Hides ActivityMessage after cancellation
|
|
45
62
|
*/
|
|
46
63
|
this._handleActivityMessageCancelledEvent = () => {
|
|
47
64
|
this.setState({
|
|
48
|
-
|
|
65
|
+
activityMessageInfo: undefined,
|
|
49
66
|
});
|
|
50
67
|
};
|
|
51
68
|
/**
|
|
@@ -53,15 +70,6 @@ class StatusBar extends React.Component {
|
|
|
53
70
|
*/
|
|
54
71
|
this._cancelActivityMessage = () => {
|
|
55
72
|
MessageManager_1.MessageManager.endActivityMessage(false);
|
|
56
|
-
this._dismissActivityMessage();
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Dismisses ActivityMessage
|
|
60
|
-
*/
|
|
61
|
-
this._dismissActivityMessage = () => {
|
|
62
|
-
this.setState({
|
|
63
|
-
isActivityMessageVisible: false,
|
|
64
|
-
});
|
|
65
73
|
};
|
|
66
74
|
this._handleOpenWidget = (openWidget) => {
|
|
67
75
|
this.setState({
|
|
@@ -73,14 +81,11 @@ class StatusBar extends React.Component {
|
|
|
73
81
|
MessageManager_1.MessageManager.updateMessages();
|
|
74
82
|
};
|
|
75
83
|
this._handleToastTargetRef = (toastTarget) => {
|
|
76
|
-
|
|
84
|
+
MessageManager_1.MessageManager.registerAnimateOutToElement(toastTarget);
|
|
77
85
|
};
|
|
78
86
|
this.state = {
|
|
79
87
|
openWidget: null,
|
|
80
|
-
messages: MessageManager_1.MessageManager.activeMessageManager.messages,
|
|
81
88
|
activityMessageInfo: undefined,
|
|
82
|
-
isActivityMessageVisible: false,
|
|
83
|
-
toastTarget: null,
|
|
84
89
|
};
|
|
85
90
|
}
|
|
86
91
|
render() {
|
|
@@ -109,7 +114,6 @@ class StatusBar extends React.Component {
|
|
|
109
114
|
MessageManager_1.MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);
|
|
110
115
|
MessageManager_1.MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);
|
|
111
116
|
MessageManager_1.MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);
|
|
112
|
-
MessageManager_1.MessageManager.activeMessageManager.initialize();
|
|
113
117
|
MessageManager_1.MessageManager.updateMessages();
|
|
114
118
|
}
|
|
115
119
|
componentWillUnmount() {
|
|
@@ -119,9 +123,7 @@ class StatusBar extends React.Component {
|
|
|
119
123
|
MessageManager_1.MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);
|
|
120
124
|
}
|
|
121
125
|
getFooterMessages() {
|
|
122
|
-
|
|
123
|
-
return null;
|
|
124
|
-
return (React.createElement(StatusMessagesContainer_1.StatusMessagesContainer, { messages: this.state.messages, activityMessageInfo: this.state.activityMessageInfo, isActivityMessageVisible: this.state.isActivityMessageVisible, toastTarget: this.state.toastTarget, closeMessage: this._closeMessage, cancelActivityMessage: this._cancelActivityMessage, dismissActivityMessage: this._dismissActivityMessage }));
|
|
126
|
+
return (React.createElement(ActivityMessage_1.CustomActivityMessageRenderer, { settings: { placement: "bottom" }, activityMessageInfo: this.state.activityMessageInfo, cancelActivityMessage: this._cancelActivityMessage }));
|
|
125
127
|
}
|
|
126
128
|
}
|
|
127
129
|
exports.StatusBar = StatusBar;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./StatusBar.scss\";\r\nimport * as React from \"react\";\r\nimport { CommonDivProps, CommonProps, Div } from \"@itwin/core-react\";\r\nimport { Footer } from \"@itwin/appui-layout-react\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from \"./StatusBarWidgetControl\";\r\nimport { StatusMessage } from \"../messages/StatusMessageManager\";\r\nimport { StatusMessagesContainer } from \"../messages/StatusMessagesContainer\";\r\n\r\n// cspell:ignore safearea\r\n\r\n/** State for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarState {\r\n openWidget: StatusBarFieldId;\r\n messages: ReadonlyArray<StatusMessage>;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n isActivityMessageVisible: boolean;\r\n toastTarget: HTMLElement | null;\r\n}\r\n\r\n/** Properties for the [[StatusBar]] React component\r\n * @public\r\n */\r\nexport interface StatusBarProps extends CommonProps {\r\n widgetControl?: StatusBarWidgetControl;\r\n isInFooterMode: boolean;\r\n}\r\n\r\n/** Status Bar React component.\r\n * @public\r\n */\r\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\r\n\r\n /** @internal */\r\n constructor(props: StatusBarProps) {\r\n super(props);\r\n\r\n this.state = {\r\n openWidget: null,\r\n messages: MessageManager.activeMessageManager.messages,\r\n activityMessageInfo: undefined,\r\n isActivityMessageVisible: false,\r\n toastTarget: null,\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let footerSections: React.ReactNode = null;\r\n const widgetControl = this.props.widgetControl;\r\n\r\n // istanbul ignore else\r\n if (widgetControl && widgetControl.getReactNode) {\r\n footerSections = widgetControl.getReactNode({\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n });\r\n }\r\n\r\n return (\r\n <StatusBarContext.Provider value={{\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n }}>\r\n <SafeAreaContext.Consumer>\r\n {(safeAreaInsets) => (\r\n <Footer // eslint-disable-line deprecation/deprecation\r\n className={this.props.className}\r\n messages={this.getFooterMessages()}\r\n isInFooterMode={this.props.isInFooterMode}\r\n onMouseEnter={UiShowHideManager.handleWidgetMouseEnter}\r\n safeAreaInsets={safeAreaInsets}\r\n style={this.props.style}\r\n >\r\n {footerSections}\r\n </Footer>\r\n )}\r\n </SafeAreaContext.Consumer>\r\n </StatusBarContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);\r\n\r\n MessageManager.activeMessageManager.initialize();\r\n MessageManager.updateMessages();\r\n }\r\n\r\n public override componentWillUnmount() {\r\n MessageManager.onMessageAddedEvent.removeListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.removeListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.removeListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);\r\n }\r\n\r\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\r\n this.setState({ messages: MessageManager.activeMessageManager.messages });\r\n };\r\n\r\n /** Respond to clearing the message list */\r\n private _handleMessagesUpdatedEvent = () => {\r\n this.setState({ messages: MessageManager.activeMessageManager.messages });\r\n };\r\n\r\n /**\r\n * Sets state of the status bar to updated values reflecting activity progress.\r\n * @param args New values to set for ActivityMessage\r\n */\r\n private _handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n this.setState((prevState) => ({\r\n activityMessageInfo: args,\r\n isActivityMessageVisible: args.restored ? true : prevState.isActivityMessageVisible,\r\n }));\r\n };\r\n\r\n /**\r\n * Hides ActivityMessage after cancellation\r\n */\r\n private _handleActivityMessageCancelledEvent = () => {\r\n this.setState({\r\n isActivityMessageVisible: false,\r\n });\r\n };\r\n\r\n private getFooterMessages(): React.ReactNode {\r\n if (!(this.state.activityMessageInfo && this.state.isActivityMessageVisible) && this.state.messages.length === 0)\r\n return null;\r\n\r\n return (\r\n <StatusMessagesContainer\r\n messages={this.state.messages}\r\n activityMessageInfo={this.state.activityMessageInfo}\r\n isActivityMessageVisible={this.state.isActivityMessageVisible}\r\n toastTarget={this.state.toastTarget}\r\n closeMessage={this._closeMessage}\r\n cancelActivityMessage={this._cancelActivityMessage}\r\n dismissActivityMessage={this._dismissActivityMessage}\r\n />\r\n );\r\n }\r\n\r\n /**\r\n * Ends canceled process and dismisses ActivityMessage\r\n */\r\n private _cancelActivityMessage = () => {\r\n MessageManager.endActivityMessage(false);\r\n this._dismissActivityMessage();\r\n };\r\n\r\n /**\r\n * Dismisses ActivityMessage\r\n */\r\n private _dismissActivityMessage = () => {\r\n this.setState({\r\n isActivityMessageVisible: false,\r\n });\r\n };\r\n\r\n private _handleOpenWidget = (openWidget: StatusBarFieldId) => {\r\n this.setState({\r\n openWidget,\r\n });\r\n };\r\n\r\n private _closeMessage = (id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n };\r\n\r\n private _handleToastTargetRef = (toastTarget: HTMLElement | null) => {\r\n this.setState({ toastTarget });\r\n };\r\n}\r\n\r\n/** StatusBar With Space Between Items React functional component\r\n * @public\r\n */\r\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-space-between\"} />;\r\n}\r\n\r\n/** StatusBar Left Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarLeftSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-left\"} />;\r\n}\r\n\r\n/** StatusBar Center Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarCenterSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-center\"} />;\r\n}\r\n\r\n/** StatusBar Right Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarRightSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-right\"} />;\r\n}\r\n\r\n/** Context providing values for StatusFieldProps and MessageCenterFieldProps\r\n * @internal\r\n */\r\nexport const StatusBarContext = React.createContext<StatusBarWidgetControlArgs>({ // eslint-disable-line @typescript-eslint/naming-convention\r\n isInFooterMode: true,\r\n onOpenWidget: /* istanbul ignore next */ () => { },\r\n openWidget: \"\",\r\n toastTargetRef: { current: null },\r\n});\r\n"]}
|
|
1
|
+
{"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../../../src/appui-react/statusbar/StatusBar.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module StatusBar\r\n */\r\n\r\nimport \"./StatusBar.scss\";\r\nimport * as React from \"react\";\r\nimport { CommonDivProps, CommonProps, Div } from \"@itwin/core-react\";\r\nimport { Footer } from \"@itwin/appui-layout-react\";\r\nimport { ActivityMessageEventArgs, MessageAddedEventArgs, MessageManager } from \"../messages/MessageManager\";\r\nimport { SafeAreaContext } from \"../safearea/SafeAreaContext\";\r\nimport { UiShowHideManager } from \"../utils/UiShowHideManager\";\r\nimport { StatusBarFieldId, StatusBarWidgetControl, StatusBarWidgetControlArgs } from \"./StatusBarWidgetControl\";\r\nimport { CustomActivityMessageRenderer } from \"../messages/ActivityMessage\";\r\n\r\n// cspell:ignore safearea\r\n\r\n/** State for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarState {\r\n openWidget: StatusBarFieldId;\r\n activityMessageInfo: ActivityMessageEventArgs | undefined;\r\n}\r\n\r\n/** Properties for the [[StatusBar]] React component\r\n * @public\r\n */\r\nexport interface StatusBarProps extends CommonProps {\r\n widgetControl?: StatusBarWidgetControl;\r\n isInFooterMode: boolean;\r\n}\r\n\r\n/** Message type for the [[StatusBar]] React component\r\n * @internal\r\n */\r\ninterface StatusBarMessage {\r\n close: () => void;\r\n id: string;\r\n}\r\n\r\n/** Status Bar React component.\r\n * @public\r\n */\r\nexport class StatusBar extends React.Component<StatusBarProps, StatusBarState> {\r\n private messages: StatusBarMessage[] = [];\r\n\r\n /** @internal */\r\n constructor(props: StatusBarProps) {\r\n super(props);\r\n\r\n this.state = {\r\n openWidget: null,\r\n activityMessageInfo: undefined,\r\n };\r\n }\r\n\r\n public override render(): React.ReactNode {\r\n let footerSections: React.ReactNode = null;\r\n const widgetControl = this.props.widgetControl;\r\n\r\n // istanbul ignore else\r\n if (widgetControl && widgetControl.getReactNode) {\r\n footerSections = widgetControl.getReactNode({\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n });\r\n }\r\n\r\n return (\r\n <StatusBarContext.Provider value={{\r\n isInFooterMode: this.props.isInFooterMode,\r\n openWidget: this.state.openWidget,\r\n toastTargetRef: this._handleToastTargetRef,\r\n onOpenWidget: this._handleOpenWidget,\r\n }}>\r\n <SafeAreaContext.Consumer>\r\n {(safeAreaInsets) => (\r\n <Footer // eslint-disable-line deprecation/deprecation\r\n className={this.props.className}\r\n messages={this.getFooterMessages()}\r\n isInFooterMode={this.props.isInFooterMode}\r\n onMouseEnter={UiShowHideManager.handleWidgetMouseEnter}\r\n safeAreaInsets={safeAreaInsets}\r\n style={this.props.style}\r\n >\r\n {footerSections}\r\n </Footer>\r\n )}\r\n </SafeAreaContext.Consumer>\r\n </StatusBarContext.Provider>\r\n );\r\n }\r\n\r\n public override componentDidMount() {\r\n MessageManager.onMessageAddedEvent.addListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.addListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.addListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.addListener(this._handleMessagesUpdatedEvent);\r\n\r\n MessageManager.updateMessages();\r\n }\r\n\r\n public override componentWillUnmount() {\r\n MessageManager.onMessageAddedEvent.removeListener(this._handleMessageAddedEvent);\r\n MessageManager.onActivityMessageUpdatedEvent.removeListener(this._handleActivityMessageUpdatedEvent);\r\n MessageManager.onActivityMessageCancelledEvent.removeListener(this._handleActivityMessageCancelledEvent);\r\n MessageManager.onMessagesUpdatedEvent.removeListener(this._handleMessagesUpdatedEvent);\r\n }\r\n\r\n private _handleMessageAddedEvent = (_args: MessageAddedEventArgs) => {\r\n this._updateMessages();\r\n const messagesToAdd = MessageManager.activeMessageManager.messages.filter((msg) => !this.messages.find((m) => m.id === msg.id));\r\n messagesToAdd.forEach((msg) => {\r\n const displayedMessage = MessageManager.displayMessage(msg.messageDetails, { onRemove: () => this._closeMessage(msg.id) });\r\n if(!!displayedMessage)\r\n this.messages.push({close: displayedMessage.close, id: msg.id});\r\n });\r\n };\r\n\r\n private _updateMessages = () => {\r\n const updatedMessages = [...this.messages];\r\n this.messages.forEach((m) => {\r\n if (!MessageManager.activeMessageManager.messages.some((msg) => m.id === msg.id)) {\r\n m.close();\r\n const index = updatedMessages.findIndex((msg) => msg.id === m.id);\r\n updatedMessages.splice(index, 1);\r\n }\r\n });\r\n this.messages = updatedMessages;\r\n };\r\n\r\n /** Respond to clearing the message list */\r\n private _handleMessagesUpdatedEvent = () => {\r\n this._updateMessages();\r\n };\r\n\r\n /**\r\n * Sets state of the status bar to updated values reflecting activity progress.\r\n * @param args New values to set for ActivityMessage\r\n */\r\n private _handleActivityMessageUpdatedEvent = (args: ActivityMessageEventArgs) => {\r\n this.setState({\r\n activityMessageInfo: args,\r\n });\r\n };\r\n\r\n /**\r\n * Hides ActivityMessage after cancellation\r\n */\r\n private _handleActivityMessageCancelledEvent = () => {\r\n this.setState({\r\n activityMessageInfo: undefined,\r\n });\r\n };\r\n\r\n private getFooterMessages(): React.ReactNode {\r\n return (\r\n <CustomActivityMessageRenderer settings={{placement: \"bottom\"}} activityMessageInfo={this.state.activityMessageInfo} cancelActivityMessage={this._cancelActivityMessage} />\r\n );\r\n }\r\n\r\n /**\r\n * Ends canceled process and dismisses ActivityMessage\r\n */\r\n private _cancelActivityMessage = () => {\r\n MessageManager.endActivityMessage(false);\r\n };\r\n\r\n private _handleOpenWidget = (openWidget: StatusBarFieldId) => {\r\n this.setState({\r\n openWidget,\r\n });\r\n };\r\n\r\n private _closeMessage = (id: string) => {\r\n MessageManager.activeMessageManager.remove(id);\r\n MessageManager.updateMessages();\r\n };\r\n\r\n private _handleToastTargetRef = (toastTarget: HTMLElement | null) => {\r\n MessageManager.registerAnimateOutToElement(toastTarget);\r\n };\r\n}\r\n\r\n/** StatusBar With Space Between Items React functional component\r\n * @public\r\n */\r\nexport function StatusBarSpaceBetween(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-space-between\"} />;\r\n}\r\n\r\n/** StatusBar Left Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarLeftSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-left\"} />;\r\n}\r\n\r\n/** StatusBar Center Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarCenterSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-center\"} />;\r\n}\r\n\r\n/** StatusBar Right Section React functional component\r\n * @public\r\n */\r\nexport function StatusBarRightSection(props: CommonDivProps) {\r\n const { className, ...divProps } = props;\r\n return <Div {...divProps} mainClassName={className ? className : \"uifw-statusbar-right\"} />;\r\n}\r\n\r\n/** Context providing values for StatusFieldProps and MessageCenterFieldProps\r\n * @internal\r\n */\r\nexport const StatusBarContext = React.createContext<StatusBarWidgetControlArgs>({ // eslint-disable-line @typescript-eslint/naming-convention\r\n isInFooterMode: true,\r\n onOpenWidget: /* istanbul ignore next */ () => { },\r\n openWidget: \"\",\r\n toastTargetRef: { current: null },\r\n});\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,aAAK,sBAAsB;IACzB,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,oCAAoC;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;IAClG,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,6BAA6B,CAAC,CAAa;IACnD,OAAO,CAAC,gCAAgC,CAAC,CAAa;gBAE1C,CAAC,EAAE,uBAAuB;IAetC,gBAAgB;IACA,iBAAiB;
|
|
1
|
+
{"version":3,"file":"MessageCenter.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/statusfields/MessageCenter.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,aAAK,sBAAsB;IACzB,WAAW,IAAA;IACX,QAAQ,IAAA;CACT;AAED;;GAEG;AACH,UAAU,kBAAkB;IAC1B,SAAS,EAAE,sBAAsB,CAAC;IAClC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,oCAAoC;IACpC,SAAS,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK,CAAC,SAAS,CAAC,uBAAuB,EAAE,kBAAkB,CAAC;IAClG,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,MAAM,CAAmD;IACjE,OAAO,CAAC,6BAA6B,CAAC,CAAa;IACnD,OAAO,CAAC,gCAAgC,CAAC,CAAa;gBAE1C,CAAC,EAAE,uBAAuB;IAetC,gBAAgB;IACA,iBAAiB;IAMjC,gBAAgB;IACA,oBAAoB;IAapC,OAAO,CAAC,2BAA2B,CAIjC;IAEF,OAAO,CAAC,6BAA6B,CAEnC;IAEc,MAAM,IAAI,KAAK,CAAC,SAAS;IAwDzC,OAAO,CAAC,gBAAgB,CAMtB;IAEF,OAAO,CAAC,YAAY,CAElB;IAEF,OAAO,CAAC,mBAAmB,CAOzB;IAEF,OAAO,CAAC,4BAA4B,CAOlC;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,aAAa;CAKtB"}
|