@microsoft/omnichannel-chat-widget 0.1.0-main.2d7913d → 0.1.0-main.306098a
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 +2 -0
- package/lib/cjs/common/storage/default/defaultCacheManager.js +34 -0
- package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +114 -0
- package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +86 -0
- package/lib/cjs/common/telemetry/TelemetryConstants.js +15 -0
- package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +31 -18
- package/lib/cjs/common/utils.js +20 -7
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -4
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
- package/lib/cjs/components/footerstateful/FooterStateful.js +5 -13
- package/lib/cjs/components/headerstateful/HeaderStateful.js +12 -5
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
- package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
- package/lib/cjs/components/livechatwidget/common/authHelper.js +65 -0
- package/lib/cjs/components/livechatwidget/common/createAdapter.js +4 -0
- package/lib/cjs/components/livechatwidget/common/createFooter.js +7 -16
- package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +12 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +23 -8
- package/lib/cjs/components/livechatwidget/common/endChat.js +3 -3
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +4 -0
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +55 -35
- package/lib/cjs/components/livechatwidget/common/startChat.js +55 -27
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +139 -57
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +20 -4
- package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
- package/lib/cjs/components/{livechatwidget/interfaces/IAuthProps.js → webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js} +0 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +2 -1
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +13 -5
- package/lib/cjs/contexts/createReducer.js +10 -2
- package/lib/esm/common/Constants.js +2 -0
- package/lib/esm/common/storage/default/defaultCacheManager.js +19 -0
- package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +102 -0
- package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +71 -0
- package/lib/esm/common/telemetry/TelemetryConstants.js +15 -0
- package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +29 -13
- package/lib/esm/common/utils.js +14 -5
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -4
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
- package/lib/esm/components/footerstateful/FooterStateful.js +5 -13
- package/lib/esm/components/headerstateful/HeaderStateful.js +12 -5
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
- package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
- package/lib/esm/components/livechatwidget/common/authHelper.js +50 -0
- package/lib/esm/components/livechatwidget/common/createAdapter.js +4 -1
- package/lib/esm/components/livechatwidget/common/createFooter.js +4 -15
- package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +8 -0
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +23 -8
- package/lib/esm/components/livechatwidget/common/endChat.js +3 -3
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +4 -0
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +55 -37
- package/lib/esm/components/livechatwidget/common/startChat.js +51 -28
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +138 -59
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +15 -2
- package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
- package/lib/esm/components/{livechatwidget/interfaces/IAuthProps.js → webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js} +0 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +2 -1
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +11 -5
- package/lib/esm/contexts/createReducer.js +10 -2
- package/lib/types/common/Constants.d.ts +1 -0
- package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
- package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
- package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +7 -1
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -1
- package/lib/types/common/utils.d.ts +5 -4
- package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
- package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
- package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
- package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
- package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
- package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -5
- package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/startChat.d.ts +3 -3
- package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +1 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +1 -2
- package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -1
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +3 -2
- package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
- package/package.json +5 -4
- package/lib/types/components/livechatwidget/interfaces/IAuthProps.d.ts +0 -4
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Deferred = void 0;
|
|
7
|
+
|
|
8
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
+
|
|
10
|
+
class Deferred {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
+
constructor() {
|
|
13
|
+
_defineProperty(this, "_promise", void 0);
|
|
14
|
+
|
|
15
|
+
_defineProperty(this, "_resolve", void 0);
|
|
16
|
+
|
|
17
|
+
_defineProperty(this, "_reject", () => {
|
|
18
|
+
return;
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
_defineProperty(this, "resolve", value => {
|
|
22
|
+
this._resolve(value);
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
_defineProperty(this, "reject", value => {
|
|
26
|
+
this._reject(value);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
this._promise = new Promise((resolve, reject) => {
|
|
30
|
+
this._resolve = resolve;
|
|
31
|
+
this._reject = reject;
|
|
32
|
+
});
|
|
33
|
+
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
get promise() {
|
|
37
|
+
return this._promise;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
exports.Deferred = Deferred;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.removeAuthTokenProvider = exports.handleAuthentication = exports.getAuthClientFunction = void 0;
|
|
7
|
+
|
|
8
|
+
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
9
|
+
|
|
10
|
+
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
11
|
+
|
|
12
|
+
var _utils = require("../../../common/utils");
|
|
13
|
+
|
|
14
|
+
const getAuthClientFunction = chatConfig => {
|
|
15
|
+
let authClientFunction = undefined;
|
|
16
|
+
|
|
17
|
+
if (chatConfig !== null && chatConfig !== void 0 && chatConfig.LiveChatConfigAuthSettings) {
|
|
18
|
+
var _chatConfig$LiveChatC;
|
|
19
|
+
|
|
20
|
+
authClientFunction = (chatConfig === null || chatConfig === void 0 ? void 0 : (_chatConfig$LiveChatC = chatConfig.LiveChatConfigAuthSettings) === null || _chatConfig$LiveChatC === void 0 ? void 0 : _chatConfig$LiveChatC.msdyn_javascriptclientfunction) ?? undefined;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return authClientFunction;
|
|
24
|
+
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
exports.getAuthClientFunction = getAuthClientFunction;
|
|
28
|
+
|
|
29
|
+
const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
|
|
30
|
+
const authClientFunction = getAuthClientFunction(chatConfig);
|
|
31
|
+
|
|
32
|
+
if (getAuthToken && authClientFunction) {
|
|
33
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
34
|
+
Event: _TelemetryConstants.TelemetryEvent.GetAuthTokenCalled
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const token = await getAuthToken(authClientFunction);
|
|
38
|
+
|
|
39
|
+
if (!(0, _utils.isNullOrEmptyString)(token)) {
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
chatSDK.setAuthTokenProvider(async () => {
|
|
42
|
+
return token;
|
|
43
|
+
});
|
|
44
|
+
return true;
|
|
45
|
+
} else {
|
|
46
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
47
|
+
Event: _TelemetryConstants.TelemetryEvent.ReceivedNullOrEmptyToken
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
return false;
|
|
55
|
+
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
exports.handleAuthentication = handleAuthentication;
|
|
59
|
+
|
|
60
|
+
const removeAuthTokenProvider = chatSDK => {
|
|
61
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
|
+
chatSDK.authenticatedUserToken = null;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
exports.removeAuthTokenProvider = removeAuthTokenProvider;
|
|
@@ -15,6 +15,8 @@ var _defaultMiddlewareLocalizedTexts = require("../../webchatcontainerstateful/c
|
|
|
15
15
|
|
|
16
16
|
var _ChatAdapterShim = require("./ChatAdapterShim");
|
|
17
17
|
|
|
18
|
+
var _PauseActivitySubscriber = require("./ActivitySubscriber/PauseActivitySubscriber");
|
|
19
|
+
|
|
18
20
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
21
|
const createAdapter = async chatSDK => {
|
|
20
22
|
const chatAdapterOptionalParams = {
|
|
@@ -40,6 +42,8 @@ const createAdapter = async chatSDK => {
|
|
|
40
42
|
|
|
41
43
|
if (chatSDK.isMockModeOn !== true) {
|
|
42
44
|
adapter = new _ChatAdapterShim.ChatAdapterShim(adapter);
|
|
45
|
+
adapter.addSubscriber(new _PauseActivitySubscriber.PauseActivitySubscriber());
|
|
46
|
+
return adapter.chatAdapter;
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
return adapter;
|
|
@@ -16,26 +16,17 @@ var _componentController = require("../../../controller/componentController");
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
18
18
|
const createFooter = (props, state) => {
|
|
19
|
-
var _props$
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
hideEmailTranscriptButton: true,
|
|
25
|
-
hideAudioNotificationButton: true
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
const footer = !((_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hideFooter) && (0, _componentController.shouldShowFooter)(state) ? (0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.footer) || /*#__PURE__*/_react.default.createElement(_FooterStateful.default, {
|
|
19
|
+
var _props$controlProps, _props$componentOverr;
|
|
20
|
+
|
|
21
|
+
const hideFooterDisplay = !((_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hideFooter) && (0, _componentController.shouldShowFooter)(state) ? false : true;
|
|
22
|
+
|
|
23
|
+
const footer = (0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.footer) || /*#__PURE__*/_react.default.createElement(_FooterStateful.default, {
|
|
29
24
|
footerProps: props.footerProps,
|
|
30
25
|
downloadTranscriptProps: props.downloadTranscriptProps,
|
|
31
26
|
audioNotificationProps: props.audioNotificationProps,
|
|
32
|
-
hideFooterDisplay:
|
|
33
|
-
}) : (0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr2 = props.componentOverrides) === null || _props$componentOverr2 === void 0 ? void 0 : _props$componentOverr2.footer) || /*#__PURE__*/_react.default.createElement(_FooterStateful.default, {
|
|
34
|
-
footerProps: footerPropsHidden,
|
|
35
|
-
downloadTranscriptProps: props.downloadTranscriptProps,
|
|
36
|
-
audioNotificationProps: props.audioNotificationProps,
|
|
37
|
-
hideFooterDisplay: true
|
|
27
|
+
hideFooterDisplay: hideFooterDisplay
|
|
38
28
|
});
|
|
29
|
+
|
|
39
30
|
return footer;
|
|
40
31
|
};
|
|
41
32
|
|
|
@@ -13,6 +13,10 @@ var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcont
|
|
|
13
13
|
|
|
14
14
|
var _defaultMiddlewareLocalizedTexts = require("../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts");
|
|
15
15
|
|
|
16
|
+
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
17
|
+
|
|
18
|
+
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
19
|
+
|
|
16
20
|
const isInternetConnected = async () => {
|
|
17
21
|
try {
|
|
18
22
|
const response = await fetch(_Constants.Constants.internetConnectionTestUrl);
|
|
@@ -28,8 +32,16 @@ const createInternetConnectionChangeHandler = async () => {
|
|
|
28
32
|
const connected = await isInternetConnected();
|
|
29
33
|
|
|
30
34
|
if (!connected) {
|
|
35
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.WARN, {
|
|
36
|
+
Event: _TelemetryConstants.TelemetryEvent.NetworkDisconnected
|
|
37
|
+
});
|
|
38
|
+
|
|
31
39
|
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.InternetConnection, _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION);
|
|
32
40
|
} else {
|
|
41
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.WARN, {
|
|
42
|
+
Event: _TelemetryConstants.TelemetryEvent.NetworkReconnected
|
|
43
|
+
});
|
|
44
|
+
|
|
33
45
|
_NotificationHandler.NotificationHandler.notifySuccess(_NotificationScenarios.NotificationScenarios.InternetConnection, _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE);
|
|
34
46
|
}
|
|
35
47
|
}; // Checking connection status on online & offline events due to possible false positives
|
|
@@ -339,7 +339,8 @@ const dummyDefaultProps = {
|
|
|
339
339
|
hideChatTitle: false,
|
|
340
340
|
hideNotificationBubble: true,
|
|
341
341
|
unreadMessageString: "new messages",
|
|
342
|
-
largeUnreadMessageString: "99+"
|
|
342
|
+
largeUnreadMessageString: "99+",
|
|
343
|
+
ariaLabelUnreadMessageString: "you have new messages"
|
|
343
344
|
},
|
|
344
345
|
styleProps: {
|
|
345
346
|
generalStyleProps: {
|
|
@@ -890,7 +891,7 @@ const dummyDefaultProps = {
|
|
|
890
891
|
className: undefined
|
|
891
892
|
},
|
|
892
893
|
closeButtonProps: {
|
|
893
|
-
id: "oc-lcw-header-
|
|
894
|
+
id: "oc-lcw-header-close-button",
|
|
894
895
|
type: "icon",
|
|
895
896
|
iconName: "ChromeClose",
|
|
896
897
|
ariaLabel: "Close",
|
|
@@ -1206,7 +1207,17 @@ const dummyDefaultProps = {
|
|
|
1206
1207
|
hideSubtitle: false,
|
|
1207
1208
|
subtitleText: "Live chat support!",
|
|
1208
1209
|
hideCloseButton: false,
|
|
1209
|
-
|
|
1210
|
+
closeButtonProps: {
|
|
1211
|
+
id: "oc-lcw-proactivechat-closebutton",
|
|
1212
|
+
type: "icon",
|
|
1213
|
+
iconName: "ChromeClose",
|
|
1214
|
+
ariaLabel: "Close",
|
|
1215
|
+
imageIconProps: undefined,
|
|
1216
|
+
text: "Close",
|
|
1217
|
+
onClick: undefined,
|
|
1218
|
+
className: undefined,
|
|
1219
|
+
hideButtonTitle: true
|
|
1220
|
+
},
|
|
1210
1221
|
isBodyContainerHorizantal: false,
|
|
1211
1222
|
hideBodyTitle: false,
|
|
1212
1223
|
bodyTitleText: "Hi! Have any questions? I am here to help.",
|
|
@@ -1675,6 +1686,9 @@ const dummyDefaultProps = {
|
|
|
1675
1686
|
},
|
|
1676
1687
|
attachmentSizeStyles: {
|
|
1677
1688
|
display: "none"
|
|
1689
|
+
},
|
|
1690
|
+
receivedMessageAnchorStyles: {
|
|
1691
|
+
color: "white"
|
|
1678
1692
|
}
|
|
1679
1693
|
},
|
|
1680
1694
|
localizedTexts: {
|
|
@@ -1702,12 +1716,13 @@ const dummyDefaultProps = {
|
|
|
1702
1716
|
botMagicCode: {
|
|
1703
1717
|
disabled: false,
|
|
1704
1718
|
fwdUrl: ""
|
|
1719
|
+
},
|
|
1720
|
+
adaptiveCardStyles: {
|
|
1721
|
+
background: "white",
|
|
1722
|
+
color: "black"
|
|
1705
1723
|
}
|
|
1706
1724
|
},
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
setAuthTokenProviderToChatSdk: undefined
|
|
1710
|
-
},
|
|
1711
|
-
telemetryConfig: undefined
|
|
1725
|
+
telemetryConfig: undefined,
|
|
1726
|
+
getAuthToken: undefined
|
|
1712
1727
|
};
|
|
1713
1728
|
exports.dummyDefaultProps = dummyDefaultProps;
|
|
@@ -48,7 +48,7 @@ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, disp
|
|
|
48
48
|
if (isPostChatEnabled === "true" && ((_conversationDetails = conversationDetails) === null || _conversationDetails === void 0 ? void 0 : _conversationDetails.canRenderPostChat) === _Constants.Constants.truePascal) {
|
|
49
49
|
const skipEndChatSDK = false;
|
|
50
50
|
const skipCloseChat = true;
|
|
51
|
-
await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat,
|
|
51
|
+
await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, false);
|
|
52
52
|
|
|
53
53
|
if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
|
|
54
54
|
dispatch({
|
|
@@ -151,9 +151,9 @@ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, a
|
|
|
151
151
|
});
|
|
152
152
|
|
|
153
153
|
if (postMessageToOtherTab) {
|
|
154
|
-
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2;
|
|
154
|
+
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps;
|
|
155
155
|
|
|
156
|
-
const endChatEventName = (0, _utils.getWidgetEndChatEventName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId);
|
|
156
|
+
const endChatEventName = (0, _utils.getWidgetEndChatEventName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
|
|
157
157
|
|
|
158
158
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
159
159
|
eventName: endChatEventName
|
|
@@ -125,6 +125,10 @@ const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles)
|
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
} else {
|
|
128
|
+
dispatch({
|
|
129
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
130
|
+
payload: _ConversationState.ConversationState.InActive
|
|
131
|
+
});
|
|
128
132
|
dispatch({
|
|
129
133
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
|
|
130
134
|
payload: true
|
|
@@ -17,24 +17,34 @@ var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidget
|
|
|
17
17
|
|
|
18
18
|
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
19
19
|
|
|
20
|
+
var _authHelper = require("./authHelper");
|
|
21
|
+
|
|
20
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
|
-
const getChatReconnectContext = async (chatSDK, reconnectId) => {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
23
|
+
const getChatReconnectContext = async (chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId) => {
|
|
24
|
+
if (isReconnectEnabled) {
|
|
25
|
+
try {
|
|
26
|
+
if (reconnectId) {
|
|
27
|
+
const chatReconnectOptionalParams = {
|
|
28
|
+
reconnectId: reconnectId
|
|
29
|
+
};
|
|
30
|
+
return await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext(chatReconnectOptionalParams));
|
|
31
|
+
} else {
|
|
32
|
+
// set auth token to chat sdk to get reconnectId for auth chat
|
|
33
|
+
await (0, _authHelper.handleAuthentication)(chatSDK, chatConfig, getAuthToken);
|
|
34
|
+
const reconnectChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext()); // remove auth token after reconnectId is fetched
|
|
35
|
+
// this will be reset later at start chat
|
|
36
|
+
|
|
37
|
+
(0, _authHelper.removeAuthTokenProvider)(chatSDK);
|
|
38
|
+
return reconnectChatContext;
|
|
36
39
|
}
|
|
37
|
-
})
|
|
40
|
+
} catch (ex) {
|
|
41
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
42
|
+
Event: _TelemetryConstants.TelemetryEvent.GetChatReconnectContextSDKCallFailed,
|
|
43
|
+
ExceptionDetails: {
|
|
44
|
+
exception: ex
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
38
48
|
}
|
|
39
49
|
|
|
40
50
|
return null;
|
|
@@ -44,13 +54,23 @@ const getChatReconnectContext = async (chatSDK, reconnectId) => {
|
|
|
44
54
|
exports.getChatReconnectContext = getChatReconnectContext;
|
|
45
55
|
|
|
46
56
|
const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
|
|
47
|
-
var _props$
|
|
57
|
+
var _props$chatConfig, _props$reconnectChatP;
|
|
58
|
+
|
|
59
|
+
let authClientFunction = undefined;
|
|
48
60
|
|
|
49
|
-
if ((_props$
|
|
61
|
+
if ((_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && _props$chatConfig.LiveChatConfigAuthSettings) {
|
|
62
|
+
var _props$chatConfig2, _props$chatConfig2$Li;
|
|
63
|
+
|
|
64
|
+
authClientFunction = ((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Li = _props$chatConfig2.LiveChatConfigAuthSettings) === null || _props$chatConfig2$Li === void 0 ? void 0 : _props$chatConfig2$Li.msdyn_javascriptclientfunction) ?? undefined;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.isReconnectEnabled && authClientFunction // TODO: Implement this after storage is in place
|
|
50
68
|
|
|
51
69
|
/* && !isLoadWithState() */
|
|
52
70
|
) {
|
|
53
|
-
|
|
71
|
+
var _props$reconnectChatP2;
|
|
72
|
+
|
|
73
|
+
const previousActiveSessionResponse = await getChatReconnectContext(chatSDK, props.chatConfig, props.getAuthToken, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled);
|
|
54
74
|
|
|
55
75
|
if (previousActiveSessionResponse && previousActiveSessionResponse.reconnectId) {
|
|
56
76
|
return previousActiveSessionResponse.reconnectId;
|
|
@@ -63,31 +83,31 @@ const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
|
|
|
63
83
|
|
|
64
84
|
exports.getReconnectIdForAuthenticatedChat = getReconnectIdForAuthenticatedChat;
|
|
65
85
|
|
|
66
|
-
const handleUnauthenticatedReconnectChat = async (chatSDK,
|
|
67
|
-
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
|
|
86
|
+
const handleUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isReconnectEnabled, reconnectId, initStartChat, redirectInSameWindow) => {
|
|
87
|
+
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
|
|
68
88
|
|
|
69
89
|
if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
70
|
-
await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK,
|
|
90
|
+
await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
|
|
71
91
|
} else {
|
|
72
|
-
await setReconnectIdAndStartChat(chatSDK,
|
|
92
|
+
await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
|
|
73
93
|
}
|
|
74
94
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
75
95
|
|
|
76
96
|
|
|
77
97
|
exports.handleUnauthenticatedReconnectChat = handleUnauthenticatedReconnectChat;
|
|
78
98
|
|
|
79
|
-
const startUnauthenticatedReconnectChat = async (chatSDK,
|
|
80
|
-
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
|
|
99
|
+
const startUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isReconnectEnabled, reconnectId, initStartChat) => {
|
|
100
|
+
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
|
|
81
101
|
|
|
82
102
|
if (!shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
83
|
-
await setReconnectIdAndStartChat(chatSDK,
|
|
103
|
+
await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
|
|
84
104
|
}
|
|
85
105
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
106
|
|
|
87
107
|
|
|
88
108
|
exports.startUnauthenticatedReconnectChat = startUnauthenticatedReconnectChat;
|
|
89
109
|
|
|
90
|
-
const setReconnectIdAndStartChat = async (chatSDK,
|
|
110
|
+
const setReconnectIdAndStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat) => {
|
|
91
111
|
const startUnauthenticatedReconnectChat = {
|
|
92
112
|
eventName: _TelemetryConstants.BroadcastEvent.StartUnauthenticatedReconnectChat
|
|
93
113
|
};
|
|
@@ -105,7 +125,7 @@ const setReconnectIdAndStartChat = async (chatSDK, authProps, dispatch, setAdapt
|
|
|
105
125
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
106
126
|
payload: _ConversationState.ConversationState.Loading
|
|
107
127
|
});
|
|
108
|
-
await initStartChat(chatSDK,
|
|
128
|
+
await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, optionalParams);
|
|
109
129
|
};
|
|
110
130
|
|
|
111
131
|
const redirectPage = (redirectURL, redirectInSameWindow) => {
|
|
@@ -128,7 +148,7 @@ const shouldRedirectOrStartNewChat = reconnectAvailabilityResponse => {
|
|
|
128
148
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
129
149
|
|
|
130
150
|
|
|
131
|
-
const startNewChatEmptyRedirectionUrl = async (chatSDK,
|
|
151
|
+
const startNewChatEmptyRedirectionUrl = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat) => {
|
|
132
152
|
const startUnauthenticatedReconnectChat = {
|
|
133
153
|
eventName: _TelemetryConstants.BroadcastEvent.StartUnauthenticatedReconnectChat
|
|
134
154
|
};
|
|
@@ -153,26 +173,26 @@ const startNewChatEmptyRedirectionUrl = async (chatSDK, authProps, dispatch, set
|
|
|
153
173
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
154
174
|
payload: _ConversationState.ConversationState.Loading
|
|
155
175
|
});
|
|
156
|
-
await initStartChat(chatSDK,
|
|
176
|
+
await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
|
|
157
177
|
}
|
|
158
178
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
159
179
|
|
|
160
180
|
|
|
161
|
-
const handleRedirectUnauthenticatedReconnectChat = async (chatSDK,
|
|
162
|
-
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, reconnectId);
|
|
181
|
+
const handleRedirectUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, isReconnectEnabled, reconnectId, redirectInSameWindow) => {
|
|
182
|
+
const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
|
|
163
183
|
|
|
164
184
|
if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
165
|
-
await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK,
|
|
185
|
+
await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
|
|
166
186
|
}
|
|
167
187
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
168
188
|
|
|
169
189
|
|
|
170
190
|
exports.handleRedirectUnauthenticatedReconnectChat = handleRedirectUnauthenticatedReconnectChat;
|
|
171
191
|
|
|
172
|
-
const redirectOrStartNewChat = async (reconnectAvailabilityResponse, chatSDK,
|
|
192
|
+
const redirectOrStartNewChat = async (reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow) => {
|
|
173
193
|
if (reconnectAvailabilityResponse.redirectURL) {
|
|
174
194
|
redirectPage(reconnectAvailabilityResponse.redirectURL, redirectInSameWindow);
|
|
175
195
|
} else {
|
|
176
|
-
await startNewChatEmptyRedirectionUrl(chatSDK,
|
|
196
|
+
await startNewChatEmptyRedirectionUrl(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat);
|
|
177
197
|
}
|
|
178
198
|
};
|
|
@@ -35,14 +35,21 @@ var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
|
|
|
35
35
|
|
|
36
36
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
37
37
|
|
|
38
|
+
var _ActivityStreamHandler = require("./ActivityStreamHandler");
|
|
39
|
+
|
|
40
|
+
var _authHelper = require("./authHelper");
|
|
41
|
+
|
|
38
42
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
43
|
let optionalParams = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
44
|
|
|
45
|
+
let widgetInstanceId; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
|
+
|
|
41
47
|
const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
42
|
-
var _props$reconnectChatP;
|
|
48
|
+
var _props$controlProps, _props$reconnectChatP;
|
|
43
49
|
|
|
44
50
|
optionalParams = {}; //Resetting to ensure no stale values
|
|
45
|
-
|
|
51
|
+
|
|
52
|
+
widgetInstanceId = props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId; // Can connect to existing chat session
|
|
46
53
|
|
|
47
54
|
if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
|
|
48
55
|
return;
|
|
@@ -50,9 +57,9 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
|
|
|
50
57
|
|
|
51
58
|
|
|
52
59
|
if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
|
|
53
|
-
var _props$reconnectChatP2, _props$reconnectChatP3;
|
|
60
|
+
var _props$reconnectChatP2, _props$reconnectChatP3, _props$reconnectChatP4;
|
|
54
61
|
|
|
55
|
-
await (0, _reconnectChatHelper.handleRedirectUnauthenticatedReconnectChat)(chatSDK, props.
|
|
62
|
+
await (0, _reconnectChatHelper.handleRedirectUnauthenticatedReconnectChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, initStartChat, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.reconnectId, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.redirectInSameWindow);
|
|
56
63
|
return;
|
|
57
64
|
} // Getting reconnectId for authenticated chat
|
|
58
65
|
|
|
@@ -69,21 +76,19 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
|
|
|
69
76
|
payload: _ConversationState.ConversationState.ReconnectChat
|
|
70
77
|
});
|
|
71
78
|
return;
|
|
72
|
-
} //
|
|
73
|
-
|
|
79
|
+
} // Setting Proactive chat settings
|
|
74
80
|
|
|
75
|
-
setCustomContextParams(props, chatSDK); // Setting Proactive chat settings
|
|
76
81
|
|
|
77
82
|
const isProactiveChat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat;
|
|
78
83
|
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat; //Setting PreChat and intiate chat
|
|
79
84
|
|
|
80
|
-
setPreChatAndInitiateChat(chatSDK, props.
|
|
85
|
+
setPreChatAndInitiateChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat);
|
|
81
86
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
82
87
|
|
|
83
88
|
|
|
84
89
|
exports.prepareStartChat = prepareStartChat;
|
|
85
90
|
|
|
86
|
-
const setPreChatAndInitiateChat = async (chatSDK,
|
|
91
|
+
const setPreChatAndInitiateChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState) => {
|
|
87
92
|
// Getting prechat Survey Context
|
|
88
93
|
const parseToJson = false;
|
|
89
94
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
@@ -106,16 +111,27 @@ const setPreChatAndInitiateChat = async (chatSDK, authProps, dispatch, setAdapte
|
|
|
106
111
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
107
112
|
payload: _ConversationState.ConversationState.Loading
|
|
108
113
|
});
|
|
109
|
-
await initStartChat(chatSDK,
|
|
114
|
+
await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
|
|
110
115
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
111
116
|
|
|
112
117
|
|
|
113
118
|
exports.setPreChatAndInitiateChat = setPreChatAndInitiateChat;
|
|
114
119
|
|
|
115
|
-
const initStartChat = async (chatSDK,
|
|
120
|
+
const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, params, persistedState) => {
|
|
116
121
|
try {
|
|
117
122
|
var _newAdapter$activity$, _TelemetryTimers$Widg;
|
|
118
123
|
|
|
124
|
+
const authClientFunction = (0, _authHelper.getAuthClientFunction)(chatConfig);
|
|
125
|
+
|
|
126
|
+
if (getAuthToken && authClientFunction) {
|
|
127
|
+
// set auth token to chat sdk before start chat
|
|
128
|
+
const authSuccess = await (0, _authHelper.handleAuthentication)(chatSDK, chatConfig, getAuthToken);
|
|
129
|
+
|
|
130
|
+
if (!authSuccess) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
119
135
|
let isStartChatSuccessful = false; //Check if chat retrieved from cache
|
|
120
136
|
|
|
121
137
|
if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
|
|
@@ -136,15 +152,11 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
|
|
|
136
152
|
|
|
137
153
|
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
138
154
|
Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
|
|
139
|
-
}); // Set
|
|
140
|
-
|
|
155
|
+
}); // Set custom context params
|
|
141
156
|
|
|
142
|
-
optionalParams = Object.assign({}, params, optionalParams); // set auth token to chat sdk before start chat
|
|
143
|
-
|
|
144
|
-
if (authProps && authProps.setAuthTokenProviderToChatSdk) {
|
|
145
|
-
await authProps.setAuthTokenProviderToChatSdk(chatSDK, authProps.authClientFunction);
|
|
146
|
-
}
|
|
147
157
|
|
|
158
|
+
setCustomContextParams(chatSDK);
|
|
159
|
+
optionalParams = Object.assign({}, params, optionalParams);
|
|
148
160
|
await chatSDK.startChat(optionalParams);
|
|
149
161
|
isStartChatSuccessful = true;
|
|
150
162
|
} catch (error) {
|
|
@@ -196,6 +208,8 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
|
|
|
196
208
|
await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
|
|
197
209
|
|
|
198
210
|
if (isStartChatSuccessful) {
|
|
211
|
+
_ActivityStreamHandler.ActivityStreamHandler.uncork();
|
|
212
|
+
|
|
199
213
|
dispatch({
|
|
200
214
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
201
215
|
payload: _ConversationState.ConversationState.Active
|
|
@@ -230,6 +244,7 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
|
|
|
230
244
|
}
|
|
231
245
|
} finally {
|
|
232
246
|
optionalParams = {};
|
|
247
|
+
widgetInstanceId = "";
|
|
233
248
|
}
|
|
234
249
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
235
250
|
|
|
@@ -237,14 +252,14 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
|
|
|
237
252
|
exports.initStartChat = initStartChat;
|
|
238
253
|
|
|
239
254
|
const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
240
|
-
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _persistedState$domai6, _persistedState$appSt;
|
|
255
|
+
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps2, _persistedState$domai6, _persistedState$appSt;
|
|
241
256
|
|
|
242
257
|
// By pass this function in case of popout chat
|
|
243
258
|
if (state.appStates.skipChatButtonRendering === true) {
|
|
244
259
|
return false;
|
|
245
260
|
}
|
|
246
261
|
|
|
247
|
-
const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId); //Connect to only active chat session
|
|
262
|
+
const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? ""); //Connect to only active chat session
|
|
248
263
|
|
|
249
264
|
if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai6 = persistedState.domainStates) === null || _persistedState$domai6 === void 0 ? void 0 : _persistedState$domai6.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === _ConversationState.ConversationState.Active) {
|
|
250
265
|
var _persistedState$domai7;
|
|
@@ -256,7 +271,7 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
256
271
|
const optionalParams = {
|
|
257
272
|
liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai7 = persistedState.domainStates) === null || _persistedState$domai7 === void 0 ? void 0 : _persistedState$domai7.liveChatContext
|
|
258
273
|
};
|
|
259
|
-
await initStartChat(chatSDK, props.
|
|
274
|
+
await initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams, persistedState);
|
|
260
275
|
return true;
|
|
261
276
|
} else {
|
|
262
277
|
return false;
|
|
@@ -264,17 +279,30 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
264
279
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
265
280
|
|
|
266
281
|
|
|
267
|
-
const setCustomContextParams =
|
|
268
|
-
var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4,
|
|
282
|
+
const setCustomContextParams = chatSDK => {
|
|
283
|
+
var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4, _persistedState$domai8;
|
|
269
284
|
|
|
270
285
|
// Add custom context only for unauthenticated chat
|
|
271
|
-
const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.widgetId);
|
|
286
|
+
const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.widgetId, widgetInstanceId ?? "");
|
|
272
287
|
|
|
273
|
-
if (!(
|
|
274
|
-
var _persistedState$domai9;
|
|
288
|
+
if (!(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext)) {
|
|
289
|
+
var _persistedState$domai9, _persistedState$domai10;
|
|
290
|
+
|
|
291
|
+
if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai9 = persistedState.domainStates.liveChatConfig) !== null && _persistedState$domai9 !== void 0 && _persistedState$domai9.LiveChatConfigAuthSettings) {
|
|
292
|
+
const errorMessage = "Use of custom context with authenticated chat is deprecated. The chat would not go through.";
|
|
293
|
+
|
|
294
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.WARN, {
|
|
295
|
+
Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
|
|
296
|
+
ExceptionDetails: {
|
|
297
|
+
exception: errorMessage
|
|
298
|
+
}
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
throw new Error(errorMessage);
|
|
302
|
+
}
|
|
275
303
|
|
|
276
304
|
optionalParams = Object.assign({}, optionalParams, {
|
|
277
|
-
customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$
|
|
305
|
+
customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai10 = persistedState.domainStates) === null || _persistedState$domai10 === void 0 ? void 0 : _persistedState$domai10.customContext
|
|
278
306
|
});
|
|
279
307
|
}
|
|
280
308
|
};
|