@microsoft/omnichannel-chat-widget 1.7.2-main.f7a7d61 → 1.7.2
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/common/Constants.js +6 -2
- package/lib/cjs/components/livechatwidget/common/createMarkdown.js +2 -0
- package/lib/cjs/components/livechatwidget/common/endChat.js +4 -0
- package/lib/cjs/components/livechatwidget/common/liveChatConfigUtils.js +14 -0
- package/lib/cjs/components/livechatwidget/common/renderSurveyHelpers.js +19 -15
- package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +16 -12
- package/lib/cjs/components/livechatwidget/common/startChatErrorHandler.js +4 -0
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +3 -0
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +7 -0
- package/lib/esm/common/Constants.js +4 -1
- package/lib/esm/components/livechatwidget/common/createMarkdown.js +2 -0
- package/lib/esm/components/livechatwidget/common/endChat.js +4 -0
- package/lib/esm/components/livechatwidget/common/liveChatConfigUtils.js +7 -0
- package/lib/esm/components/livechatwidget/common/renderSurveyHelpers.js +21 -16
- package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +16 -12
- package/lib/esm/components/livechatwidget/common/startChatErrorHandler.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +3 -0
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +7 -0
- package/lib/types/common/Constants.d.ts +4 -0
- package/lib/types/components/livechatwidget/common/liveChatConfigUtils.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +5 -0
- package/package.json +3 -2
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.WidgetLoadTelemetryMessage = exports.WidgetLoadCustomErrorString = exports.WebChatMiddlewareConstants = exports.TranscriptConstants = exports.StorageType = exports.StartChatErrorPaneConstants = exports.Regex = exports.PrepareEndChatDescriptionConstants = exports.ParticipantType = exports.NotificationPaneConstants = exports.MimeTypes = exports.LocaleConstants = exports.LiveWorkItemState = exports.HtmlIdNames = exports.HtmlElementSelectors = exports.HtmlClassNames = exports.HtmlAttributeNames = exports.EnvironmentVersion = exports.ElementType = exports.E2VVOptions = exports.ConversationMode = exports.ConversationEndEntity = exports.Constants = exports.ConfirmationState = exports.AriaTelemetryConstants = exports.AMSConstants = void 0;
|
|
6
|
+
exports.WidgetLoadTelemetryMessage = exports.WidgetLoadCustomErrorString = exports.WebChatMiddlewareConstants = exports.TranscriptConstants = exports.StorageType = exports.StartChatErrorPaneConstants = exports.Regex = exports.PrepareEndChatDescriptionConstants = exports.PostChatSurveyTelemetryMessage = exports.ParticipantType = exports.NotificationPaneConstants = exports.MimeTypes = exports.LocaleConstants = exports.LiveWorkItemState = exports.HtmlIdNames = exports.HtmlElementSelectors = exports.HtmlClassNames = exports.HtmlAttributeNames = exports.EnvironmentVersion = exports.ElementType = exports.E2VVOptions = exports.ConversationMode = exports.ConversationEndEntity = exports.Constants = exports.ConfirmationState = exports.AriaTelemetryConstants = exports.AMSConstants = void 0;
|
|
7
7
|
var _class;
|
|
8
8
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
9
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
@@ -318,4 +318,8 @@ _defineProperty(PrepareEndChatDescriptionConstants, "InitiateEndChatReceived", "
|
|
|
318
318
|
_defineProperty(PrepareEndChatDescriptionConstants, "EndChatReceivedFromOtherTabs", "Received EndChat BroadcastEvent from other tabs. Closing this chat.");
|
|
319
319
|
_defineProperty(PrepareEndChatDescriptionConstants, "CustomerCloseChatOnFailureOrPostChat", "Customer is trying to close chat widget on start chat failure or post chat pane.");
|
|
320
320
|
_defineProperty(PrepareEndChatDescriptionConstants, "CustomerCloseInactiveChat", "Chat was Inactive and customer is trying to close chat widget or refreshing the page.");
|
|
321
|
-
_defineProperty(PrepareEndChatDescriptionConstants, "BrowserUnload", "Browser unload event received. Ending chat.");
|
|
321
|
+
_defineProperty(PrepareEndChatDescriptionConstants, "BrowserUnload", "Browser unload event received. Ending chat.");
|
|
322
|
+
class PostChatSurveyTelemetryMessage {}
|
|
323
|
+
exports.PostChatSurveyTelemetryMessage = PostChatSurveyTelemetryMessage;
|
|
324
|
+
_defineProperty(PostChatSurveyTelemetryMessage, "PostChatContextCallFailed", "Failed to get post chat context.");
|
|
325
|
+
_defineProperty(PostChatSurveyTelemetryMessage, "PostChatContextCallSucceed", "Postchat context call succeed.");
|
|
@@ -38,6 +38,8 @@ const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineMarkdown
|
|
|
38
38
|
]);
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
markdown.disable(["strikethrough"]);
|
|
42
|
+
|
|
41
43
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
42
44
|
markdown.use(_markdownItForInline.default, "url_new_win", "link_open", function (tokens, idx, env) {
|
|
43
45
|
const targetAttrIndex = tokens[idx].attrIndex(_Constants.Constants.Target);
|
|
@@ -179,6 +179,10 @@ const endChat = async (props, chatSDK, state, dispatch, setAdapter, setWebChatSt
|
|
|
179
179
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
|
|
180
180
|
payload: 0
|
|
181
181
|
});
|
|
182
|
+
dispatch({
|
|
183
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
|
|
184
|
+
payload: undefined
|
|
185
|
+
});
|
|
182
186
|
// Always allow to close the chat for embedded mode irrespective of end chat errors
|
|
183
187
|
closeChatWidget(dispatch, props, state);
|
|
184
188
|
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isPostChatSurveyEnabled = void 0;
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
|
+
const isPostChatSurveyEnabled = async chatSDK => {
|
|
9
|
+
var _chatConfig$LiveWSAnd;
|
|
10
|
+
const chatConfig = await chatSDK.getLiveChatConfig();
|
|
11
|
+
const postChatEnabled = (_chatConfig$LiveWSAnd = chatConfig.LiveWSAndLiveChatEngJoin) === null || _chatConfig$LiveWSAnd === void 0 ? void 0 : _chatConfig$LiveWSAnd.msdyn_postconversationsurveyenable.toString().toLowerCase();
|
|
12
|
+
return postChatEnabled === "true";
|
|
13
|
+
};
|
|
14
|
+
exports.isPostChatSurveyEnabled = isPostChatSurveyEnabled;
|
|
@@ -11,6 +11,7 @@ var _utils = require("../../../common/utils");
|
|
|
11
11
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
12
12
|
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
13
13
|
var _PostChatSurveyMode = require("../../postchatsurveypanestateful/enums/PostChatSurveyMode");
|
|
14
|
+
var _liveChatConfigUtils = require("./liveChatConfigUtils");
|
|
14
15
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
16
|
let conversationDetails = undefined;
|
|
16
17
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -108,24 +109,27 @@ const isPostChatEnabled = (props, state) => {
|
|
|
108
109
|
exports.checkPostChatEnabled = isPostChatEnabled;
|
|
109
110
|
const getPostChatContext = async (chatSDK, state, dispatch) => {
|
|
110
111
|
try {
|
|
111
|
-
|
|
112
|
-
if (
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
112
|
+
const postChatEnabled = await (0, _liveChatConfigUtils.isPostChatSurveyEnabled)(chatSDK);
|
|
113
|
+
if (postChatEnabled) {
|
|
114
|
+
var _state$domainStates2;
|
|
115
|
+
if ((state === null || state === void 0 ? void 0 : (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.postChatContext) === undefined) {
|
|
116
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
117
|
+
const context = await chatSDK.getPostChatSurveyContext();
|
|
118
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
119
|
+
Event: _TelemetryConstants.TelemetryEvent.PostChatContextCallSucceed,
|
|
120
|
+
Description: _Constants.PostChatSurveyTelemetryMessage.PostChatContextCallSucceed
|
|
121
|
+
});
|
|
122
|
+
dispatch({
|
|
123
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
|
|
124
|
+
payload: context
|
|
125
|
+
});
|
|
126
|
+
return context;
|
|
127
|
+
}
|
|
124
128
|
}
|
|
125
129
|
} catch (error) {
|
|
126
|
-
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.
|
|
130
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
127
131
|
Event: _TelemetryConstants.TelemetryEvent.PostChatContextCallFailed,
|
|
128
|
-
Description:
|
|
132
|
+
Description: _Constants.PostChatSurveyTelemetryMessage.PostChatContextCallFailed
|
|
129
133
|
});
|
|
130
134
|
}
|
|
131
135
|
};
|
|
@@ -9,20 +9,25 @@ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components
|
|
|
9
9
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
10
10
|
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
11
11
|
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
12
|
+
var _Constants = require("../../../common/Constants");
|
|
13
|
+
var _liveChatConfigUtils = require("./liveChatConfigUtils");
|
|
12
14
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
15
|
const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat) => {
|
|
14
16
|
try {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
const postChatEnabled = await (0, _liveChatConfigUtils.isPostChatSurveyEnabled)(chatSDK);
|
|
18
|
+
if (postChatEnabled) {
|
|
19
|
+
if (!persistedChat) {
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
+
const context = await chatSDK.getPostChatSurveyContext();
|
|
22
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
23
|
+
Event: _TelemetryConstants.TelemetryEvent.PostChatContextCallSucceed,
|
|
24
|
+
Description: _Constants.PostChatSurveyTelemetryMessage.PostChatContextCallSucceed
|
|
25
|
+
});
|
|
26
|
+
dispatch({
|
|
27
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
|
|
28
|
+
payload: context
|
|
29
|
+
});
|
|
30
|
+
}
|
|
26
31
|
}
|
|
27
32
|
} catch (ex) {
|
|
28
33
|
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
@@ -32,7 +37,6 @@ const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat)
|
|
|
32
37
|
}
|
|
33
38
|
});
|
|
34
39
|
}
|
|
35
|
-
|
|
36
40
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
37
41
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName("LoadPostChatSurvey").subscribe(msg => {
|
|
38
42
|
dispatch({
|
|
@@ -58,6 +58,10 @@ const handleStartChatError = (dispatch, chatSDK, props, ex, isStartChatSuccessfu
|
|
|
58
58
|
case _omnichannelChatSdk.ChatSDKErrorName.UninitializedChatSDK:
|
|
59
59
|
handleUninitializedChatSDK(ex);
|
|
60
60
|
break;
|
|
61
|
+
// Handle the case indicating failure to retrieve an authenticated chat conversation
|
|
62
|
+
case _omnichannelChatSdk.ChatSDKErrorName.AuthenticatedChatConversationRetrievalFailure:
|
|
63
|
+
logWidgetLoadCompleteWithError(ex);
|
|
64
|
+
break;
|
|
61
65
|
case _omnichannelChatSdk.ChatSDKErrorName.InvalidConversation:
|
|
62
66
|
case _omnichannelChatSdk.ChatSDKErrorName.ClosedConversation:
|
|
63
67
|
handleInvalidOrClosedConversation(dispatch, chatSDK, props, ex);
|
|
@@ -218,6 +218,9 @@ const WebChatContainerStateful = props => {
|
|
|
218
218
|
.webchat__stacked-layout_container>div {
|
|
219
219
|
background: ${(props === null || props === void 0 ? void 0 : (_props$webChatContain9 = props.webChatContainerProps) === null || _props$webChatContain9 === void 0 ? void 0 : (_props$webChatContain10 = _props$webChatContain9.containerStyles) === null || _props$webChatContain10 === void 0 ? void 0 : _props$webChatContain10.background) ?? ""}
|
|
220
220
|
}
|
|
221
|
+
.webchat__toaster__expandText {
|
|
222
|
+
display: flex;
|
|
223
|
+
}
|
|
221
224
|
`), /*#__PURE__*/_react2.default.createElement(_react.Stack, {
|
|
222
225
|
styles: containerStyles,
|
|
223
226
|
className: "webchat__stacked-layout_container"
|
|
@@ -286,4 +286,7 @@ _defineProperty(PrepareEndChatDescriptionConstants, "InitiateEndChatReceived", "
|
|
|
286
286
|
_defineProperty(PrepareEndChatDescriptionConstants, "EndChatReceivedFromOtherTabs", "Received EndChat BroadcastEvent from other tabs. Closing this chat.");
|
|
287
287
|
_defineProperty(PrepareEndChatDescriptionConstants, "CustomerCloseChatOnFailureOrPostChat", "Customer is trying to close chat widget on start chat failure or post chat pane.");
|
|
288
288
|
_defineProperty(PrepareEndChatDescriptionConstants, "CustomerCloseInactiveChat", "Chat was Inactive and customer is trying to close chat widget or refreshing the page.");
|
|
289
|
-
_defineProperty(PrepareEndChatDescriptionConstants, "BrowserUnload", "Browser unload event received. Ending chat.");
|
|
289
|
+
_defineProperty(PrepareEndChatDescriptionConstants, "BrowserUnload", "Browser unload event received. Ending chat.");
|
|
290
|
+
export class PostChatSurveyTelemetryMessage {}
|
|
291
|
+
_defineProperty(PostChatSurveyTelemetryMessage, "PostChatContextCallFailed", "Failed to get post chat context.");
|
|
292
|
+
_defineProperty(PostChatSurveyTelemetryMessage, "PostChatContextCallSucceed", "Postchat context call succeed.");
|
|
@@ -32,6 +32,8 @@ export const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineM
|
|
|
32
32
|
]);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
+
markdown.disable(["strikethrough"]);
|
|
36
|
+
|
|
35
37
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
38
|
markdown.use(MarkdownItForInline, "url_new_win", "link_open", function (tokens, idx, env) {
|
|
37
39
|
const targetAttrIndex = tokens[idx].attrIndex(Constants.Target);
|
|
@@ -173,6 +173,10 @@ const endChat = async (props, chatSDK, state, dispatch, setAdapter, setWebChatSt
|
|
|
173
173
|
type: LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
|
|
174
174
|
payload: 0
|
|
175
175
|
});
|
|
176
|
+
dispatch({
|
|
177
|
+
type: LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
|
|
178
|
+
payload: undefined
|
|
179
|
+
});
|
|
176
180
|
// Always allow to close the chat for embedded mode irrespective of end chat errors
|
|
177
181
|
closeChatWidget(dispatch, props, state);
|
|
178
182
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2
|
+
export const isPostChatSurveyEnabled = async chatSDK => {
|
|
3
|
+
var _chatConfig$LiveWSAnd;
|
|
4
|
+
const chatConfig = await chatSDK.getLiveChatConfig();
|
|
5
|
+
const postChatEnabled = (_chatConfig$LiveWSAnd = chatConfig.LiveWSAndLiveChatEngJoin) === null || _chatConfig$LiveWSAnd === void 0 ? void 0 : _chatConfig$LiveWSAnd.msdyn_postconversationsurveyenable.toString().toLowerCase();
|
|
6
|
+
return postChatEnabled === "true";
|
|
7
|
+
};
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { Constants, ParticipantType } from "../../../common/Constants";
|
|
1
|
+
import { Constants, ParticipantType, PostChatSurveyTelemetryMessage } from "../../../common/Constants";
|
|
2
2
|
import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
|
|
3
3
|
import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
|
|
4
4
|
import { addDelayInMs } from "../../../common/utils";
|
|
5
5
|
import { ConversationState } from "../../../contexts/common/ConversationState";
|
|
6
6
|
import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
|
|
7
7
|
import { PostChatSurveyMode } from "../../postchatsurveypanestateful/enums/PostChatSurveyMode";
|
|
8
|
+
import { isPostChatSurveyEnabled } from "./liveChatConfigUtils";
|
|
9
|
+
|
|
8
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9
11
|
let conversationDetails = undefined;
|
|
10
12
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -100,24 +102,27 @@ const isPostChatEnabled = (props, state) => {
|
|
|
100
102
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
103
|
const getPostChatContext = async (chatSDK, state, dispatch) => {
|
|
102
104
|
try {
|
|
103
|
-
|
|
104
|
-
if (
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
105
|
+
const postChatEnabled = await isPostChatSurveyEnabled(chatSDK);
|
|
106
|
+
if (postChatEnabled) {
|
|
107
|
+
var _state$domainStates2;
|
|
108
|
+
if ((state === null || state === void 0 ? void 0 : (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.postChatContext) === undefined) {
|
|
109
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
|
+
const context = await chatSDK.getPostChatSurveyContext();
|
|
111
|
+
TelemetryHelper.logSDKEvent(LogLevel.INFO, {
|
|
112
|
+
Event: TelemetryEvent.PostChatContextCallSucceed,
|
|
113
|
+
Description: PostChatSurveyTelemetryMessage.PostChatContextCallSucceed
|
|
114
|
+
});
|
|
115
|
+
dispatch({
|
|
116
|
+
type: LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
|
|
117
|
+
payload: context
|
|
118
|
+
});
|
|
119
|
+
return context;
|
|
120
|
+
}
|
|
116
121
|
}
|
|
117
122
|
} catch (error) {
|
|
118
|
-
TelemetryHelper.logSDKEvent(LogLevel.
|
|
123
|
+
TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
|
|
119
124
|
Event: TelemetryEvent.PostChatContextCallFailed,
|
|
120
|
-
Description:
|
|
125
|
+
Description: PostChatSurveyTelemetryMessage.PostChatContextCallFailed
|
|
121
126
|
});
|
|
122
127
|
}
|
|
123
128
|
};
|
|
@@ -3,21 +3,26 @@ import { BroadcastService } from "@microsoft/omnichannel-chat-components";
|
|
|
3
3
|
import { ConversationState } from "../../../contexts/common/ConversationState";
|
|
4
4
|
import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
|
|
5
5
|
import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
|
|
6
|
+
import { PostChatSurveyTelemetryMessage } from "../../../common/Constants";
|
|
7
|
+
import { isPostChatSurveyEnabled } from "./liveChatConfigUtils";
|
|
6
8
|
|
|
7
9
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8
10
|
export const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat) => {
|
|
9
11
|
try {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
const postChatEnabled = await isPostChatSurveyEnabled(chatSDK);
|
|
13
|
+
if (postChatEnabled) {
|
|
14
|
+
if (!persistedChat) {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
16
|
+
const context = await chatSDK.getPostChatSurveyContext();
|
|
17
|
+
TelemetryHelper.logSDKEvent(LogLevel.INFO, {
|
|
18
|
+
Event: TelemetryEvent.PostChatContextCallSucceed,
|
|
19
|
+
Description: PostChatSurveyTelemetryMessage.PostChatContextCallSucceed
|
|
20
|
+
});
|
|
21
|
+
dispatch({
|
|
22
|
+
type: LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT,
|
|
23
|
+
payload: context
|
|
24
|
+
});
|
|
25
|
+
}
|
|
21
26
|
}
|
|
22
27
|
} catch (ex) {
|
|
23
28
|
TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
|
|
@@ -27,7 +32,6 @@ export const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persist
|
|
|
27
32
|
}
|
|
28
33
|
});
|
|
29
34
|
}
|
|
30
|
-
|
|
31
35
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
32
36
|
BroadcastService.getMessageByEventName("LoadPostChatSurvey").subscribe(msg => {
|
|
33
37
|
dispatch({
|
|
@@ -53,6 +53,10 @@ export const handleStartChatError = (dispatch, chatSDK, props, ex, isStartChatSu
|
|
|
53
53
|
case ChatSDKErrorName.UninitializedChatSDK:
|
|
54
54
|
handleUninitializedChatSDK(ex);
|
|
55
55
|
break;
|
|
56
|
+
// Handle the case indicating failure to retrieve an authenticated chat conversation
|
|
57
|
+
case ChatSDKErrorName.AuthenticatedChatConversationRetrievalFailure:
|
|
58
|
+
logWidgetLoadCompleteWithError(ex);
|
|
59
|
+
break;
|
|
56
60
|
case ChatSDKErrorName.InvalidConversation:
|
|
57
61
|
case ChatSDKErrorName.ClosedConversation:
|
|
58
62
|
handleInvalidOrClosedConversation(dispatch, chatSDK, props, ex);
|
|
@@ -210,6 +210,9 @@ export const WebChatContainerStateful = props => {
|
|
|
210
210
|
.webchat__stacked-layout_container>div {
|
|
211
211
|
background: ${(props === null || props === void 0 ? void 0 : (_props$webChatContain9 = props.webChatContainerProps) === null || _props$webChatContain9 === void 0 ? void 0 : (_props$webChatContain10 = _props$webChatContain9.containerStyles) === null || _props$webChatContain10 === void 0 ? void 0 : _props$webChatContain10.background) ?? ""}
|
|
212
212
|
}
|
|
213
|
+
.webchat__toaster__expandText {
|
|
214
|
+
display: flex;
|
|
215
|
+
}
|
|
213
216
|
`), /*#__PURE__*/React.createElement(Stack, {
|
|
214
217
|
styles: containerStyles,
|
|
215
218
|
className: "webchat__stacked-layout_container"
|
|
@@ -267,3 +267,7 @@ export declare class PrepareEndChatDescriptionConstants {
|
|
|
267
267
|
static readonly CustomerCloseInactiveChat = "Chat was Inactive and customer is trying to close chat widget or refreshing the page.";
|
|
268
268
|
static readonly BrowserUnload = "Browser unload event received. Ending chat.";
|
|
269
269
|
}
|
|
270
|
+
export declare class PostChatSurveyTelemetryMessage {
|
|
271
|
+
static readonly PostChatContextCallFailed = "Failed to get post chat context.";
|
|
272
|
+
static readonly PostChatContextCallSucceed = "Postchat context call succeed.";
|
|
273
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const isPostChatSurveyEnabled: (chatSDK: any) => Promise<boolean>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/omnichannel-chat-widget",
|
|
3
|
-
"version": "1.7.2
|
|
3
|
+
"version": "1.7.2",
|
|
4
4
|
"description": "Microsoft Omnichannel Chat Widget",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"types": "lib/types/index.d.ts",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
77
|
"@microsoft/omnichannel-chat-components": "1.1.5",
|
|
78
|
-
"@microsoft/omnichannel-chat-sdk": "^1.9.
|
|
78
|
+
"@microsoft/omnichannel-chat-sdk": "^1.9.5",
|
|
79
79
|
"abort-controller-es5": "^2.0.1",
|
|
80
80
|
"dompurify": "^2.3.4",
|
|
81
81
|
"markdown-it": "^12.3.2",
|
|
@@ -101,6 +101,7 @@
|
|
|
101
101
|
"test:all": "yarn test:unit && yarn test:visual",
|
|
102
102
|
"build:esm": "babel ./src --config-file ./babel.esm.config.json --out-dir lib/esm --extensions .ts,.js,.tsx --ignore **/*.test.ts,**/*.stories.tsx,**/*.test.tsx,**/*.spec.ts,**/*.spec.tsx",
|
|
103
103
|
"build:cjs": "babel ./src --config-file ./babel.config.json --out-dir lib/cjs --extensions .ts,.js,.tsx --ignore **/*.test.ts,**/*.stories.tsx,**/*.test.tsx,**/*.spec.ts,**/*.spec.tsx",
|
|
104
|
+
"build:umd": "webpack --config ./webpack.umd.config.cjs",
|
|
104
105
|
"verify": "yarn install && yarn build-storybook && yarn test:all && yarn build && yarn storybook",
|
|
105
106
|
"testpack": "yarn build && yarn pack",
|
|
106
107
|
"build-sample": "yarn build && webpack --config ./webpack.config.cjs",
|