@microsoft/omnichannel-chat-widget 0.1.0-main.d48dae2 → 0.1.0-main.d4c1f9e
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/utils.js +20 -7
- package/lib/cjs/components/headerstateful/HeaderStateful.js +2 -1
- 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 +52 -0
- package/lib/cjs/components/livechatwidget/common/createAdapter.js +3 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +6 -1
- 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 +35 -23
- package/lib/cjs/components/livechatwidget/common/startChat.js +39 -47
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +87 -42
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +11 -0
- 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/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +1 -0
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -1
- package/lib/cjs/contexts/createReducer.js +8 -0
- package/lib/esm/common/Constants.js +2 -0
- package/lib/esm/common/utils.js +14 -5
- package/lib/esm/components/headerstateful/HeaderStateful.js +2 -1
- 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 +39 -0
- package/lib/esm/components/livechatwidget/common/createAdapter.js +3 -1
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +6 -1
- 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 +36 -25
- package/lib/esm/components/livechatwidget/common/startChat.js +35 -47
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +86 -44
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +10 -0
- 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/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +1 -0
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -1
- package/lib/esm/contexts/createReducer.js +8 -0
- package/lib/types/common/Constants.d.ts +1 -0
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -1
- package/lib/types/common/utils.d.ts +4 -3
- 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 +4 -0
- package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +4 -4
- package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/startChat.d.ts +2 -2
- 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/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/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/avatarMiddleware.d.ts +1 -1
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +2 -1
- package/package.json +4 -3
|
@@ -169,6 +169,8 @@ _defineProperty(Constants, "ChatWidgetStateChangedPrefix", "ChatWidgetStateChang
|
|
|
169
169
|
|
|
170
170
|
_defineProperty(Constants, "PostChatLoadingDurationInMs", 2000);
|
|
171
171
|
|
|
172
|
+
_defineProperty(Constants, "BrowserUnloadConfirmationMessage", "Do you want to leave chat?");
|
|
173
|
+
|
|
172
174
|
const Regex = (_class = class Regex {}, _defineProperty(_class, "EmailRegex", "(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"), _class);
|
|
173
175
|
exports.Regex = Regex;
|
|
174
176
|
|
package/lib/cjs/common/utils.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
|
|
6
|
+
exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getBroadcastChannelName = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
|
|
7
7
|
|
|
8
8
|
var _Constants = require("./Constants");
|
|
9
9
|
|
|
@@ -13,6 +13,8 @@ var _KeyCodes = require("./KeyCodes");
|
|
|
13
13
|
|
|
14
14
|
var _TelemetryConstants = require("./telemetry/TelemetryConstants");
|
|
15
15
|
|
|
16
|
+
var _md5Typescript = require("md5-typescript");
|
|
17
|
+
|
|
16
18
|
const getElementBySelector = selector => {
|
|
17
19
|
let element;
|
|
18
20
|
|
|
@@ -354,26 +356,31 @@ const getDomain = hostValue => {
|
|
|
354
356
|
|
|
355
357
|
exports.getDomain = getDomain;
|
|
356
358
|
|
|
357
|
-
const getWidgetCacheId = (orgId, widgetId) => {
|
|
358
|
-
|
|
359
|
+
const getWidgetCacheId = (orgId, widgetId, widgetInstanceId) => {
|
|
360
|
+
const widgetCacheId = `${widgetInstanceId}_${orgId}_${widgetId}`;
|
|
361
|
+
return _md5Typescript.Md5.init(widgetCacheId);
|
|
359
362
|
};
|
|
360
363
|
|
|
361
364
|
exports.getWidgetCacheId = getWidgetCacheId;
|
|
362
365
|
|
|
363
|
-
const getWidgetEndChatEventName = (orgId, widgetId) => {
|
|
366
|
+
const getWidgetEndChatEventName = (orgId, widgetId, widgetInstanceId) => {
|
|
367
|
+
if (!isNullOrEmptyString(widgetInstanceId)) {
|
|
368
|
+
return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${widgetInstanceId}_${orgId}_${widgetId}`;
|
|
369
|
+
}
|
|
370
|
+
|
|
364
371
|
return `${_TelemetryConstants.BroadcastEvent.ChatEnded}_${orgId}_${widgetId}`;
|
|
365
372
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
366
373
|
|
|
367
374
|
|
|
368
375
|
exports.getWidgetEndChatEventName = getWidgetEndChatEventName;
|
|
369
376
|
|
|
370
|
-
const getStateFromCache = (orgId, widgetId) => {
|
|
377
|
+
const getStateFromCache = (orgId, widgetId, widgetInstanceId) => {
|
|
371
378
|
// Getting updated state from cache
|
|
372
379
|
try {
|
|
373
380
|
if (_DataStoreManager.DataStoreManager.clientDataStore) {
|
|
374
381
|
var _DataStoreManager$cli;
|
|
375
382
|
|
|
376
|
-
const widgetStateEventName = getWidgetCacheId(orgId, widgetId);
|
|
383
|
+
const widgetStateEventName = getWidgetCacheId(orgId, widgetId, widgetInstanceId);
|
|
377
384
|
const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
|
|
378
385
|
const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
|
|
379
386
|
return persistedState;
|
|
@@ -408,4 +415,10 @@ const addDelayInMs = ms => {
|
|
|
408
415
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
409
416
|
};
|
|
410
417
|
|
|
411
|
-
exports.addDelayInMs = addDelayInMs;
|
|
418
|
+
exports.addDelayInMs = addDelayInMs;
|
|
419
|
+
|
|
420
|
+
const getBroadcastChannelName = (widgetId, widgetInstanceId) => {
|
|
421
|
+
return widgetInstanceId && !isNullOrEmptyString(widgetInstanceId) ? `${widgetInstanceId}_${widgetId}` : widgetId;
|
|
422
|
+
};
|
|
423
|
+
|
|
424
|
+
exports.getBroadcastChannelName = getBroadcastChannelName;
|
|
@@ -72,7 +72,8 @@ const HeaderStateful = props => {
|
|
|
72
72
|
} else {
|
|
73
73
|
const skipEndChatSDK = true;
|
|
74
74
|
const skipCloseChat = false;
|
|
75
|
-
|
|
75
|
+
const postMessageToOtherTabs = true;
|
|
76
|
+
await endChat(adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTabs);
|
|
76
77
|
}
|
|
77
78
|
|
|
78
79
|
dispatch({
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ActivityStreamHandler = void 0;
|
|
7
|
+
|
|
8
|
+
var _Deferred = require("./Deferred");
|
|
9
|
+
|
|
10
|
+
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; }
|
|
11
|
+
|
|
12
|
+
class ActivityStreamHandler {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Use of a deferred pattern, to hold the execution of the activity.
|
|
18
|
+
*
|
|
19
|
+
* */
|
|
20
|
+
static cork() {
|
|
21
|
+
ActivityStreamHandler.restoreDeferred = new _Deferred.Deferred();
|
|
22
|
+
ActivityStreamHandler.restorePromise = ActivityStreamHandler.restoreDeferred.promise;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Resolve the promise, releasing it to continue with the execution of the activity.
|
|
26
|
+
*
|
|
27
|
+
* */
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
static uncork() {
|
|
31
|
+
ActivityStreamHandler.restoreDeferred.resolve();
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
exports.ActivityStreamHandler = ActivityStreamHandler;
|
|
37
|
+
|
|
38
|
+
_defineProperty(ActivityStreamHandler, "restoreDeferred", {
|
|
39
|
+
resolve: () => {
|
|
40
|
+
return "initialState";
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
_defineProperty(ActivityStreamHandler, "restorePromise", void 0);
|
package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.PauseActivitySubscriber = void 0;
|
|
7
|
+
|
|
8
|
+
var _ActivityStreamHandler = require("../ActivityStreamHandler");
|
|
9
|
+
|
|
10
|
+
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; }
|
|
11
|
+
|
|
12
|
+
class PauseActivitySubscriber {
|
|
13
|
+
constructor() {
|
|
14
|
+
_defineProperty(this, "observer", void 0);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
+
async apply(activity) {
|
|
19
|
+
await _ActivityStreamHandler.ActivityStreamHandler.restorePromise;
|
|
20
|
+
return activity;
|
|
21
|
+
} // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
applicable(activity) {
|
|
25
|
+
return true;
|
|
26
|
+
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
async next(activity) {
|
|
30
|
+
if (this.applicable(activity)) {
|
|
31
|
+
return await this.apply(activity);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return activity;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
exports.PauseActivitySubscriber = PauseActivitySubscriber;
|
|
@@ -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,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.removeAuthTokenProvider = exports.handleAuthentication = 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
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
+
const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
|
|
16
|
+
let authClientFunction = undefined;
|
|
17
|
+
|
|
18
|
+
if (chatConfig !== null && chatConfig !== void 0 && chatConfig.LiveChatConfigAuthSettings) {
|
|
19
|
+
var _chatConfig$LiveChatC;
|
|
20
|
+
|
|
21
|
+
authClientFunction = (chatConfig === null || chatConfig === void 0 ? void 0 : (_chatConfig$LiveChatC = chatConfig.LiveChatConfigAuthSettings) === null || _chatConfig$LiveChatC === void 0 ? void 0 : _chatConfig$LiveChatC.msdyn_javascriptclientfunction) ?? undefined;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (getAuthToken && authClientFunction) {
|
|
25
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
26
|
+
Event: _TelemetryConstants.TelemetryEvent.GetAuthTokenCalled
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const token = await getAuthToken(authClientFunction);
|
|
30
|
+
|
|
31
|
+
if (!(0, _utils.isNullOrEmptyString)(token)) {
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
|
+
chatSDK.setAuthTokenProvider(async () => {
|
|
34
|
+
return token;
|
|
35
|
+
});
|
|
36
|
+
} else {
|
|
37
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
38
|
+
Event: _TelemetryConstants.TelemetryEvent.ReceivedNullOrEmptyToken
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
exports.handleAuthentication = handleAuthentication;
|
|
46
|
+
|
|
47
|
+
const removeAuthTokenProvider = chatSDK => {
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
chatSDK.authenticatedUserToken = null;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
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,7 @@ 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());
|
|
43
46
|
return adapter.chatAdapter;
|
|
44
47
|
}
|
|
45
48
|
|
|
@@ -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: {
|
|
@@ -1702,6 +1703,10 @@ const dummyDefaultProps = {
|
|
|
1702
1703
|
botMagicCode: {
|
|
1703
1704
|
disabled: false,
|
|
1704
1705
|
fwdUrl: ""
|
|
1706
|
+
},
|
|
1707
|
+
adaptiveCardStyles: {
|
|
1708
|
+
background: "white",
|
|
1709
|
+
color: "black"
|
|
1705
1710
|
}
|
|
1706
1711
|
},
|
|
1707
1712
|
telemetryConfig: undefined,
|
|
@@ -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;
|
|
@@ -58,7 +68,9 @@ const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
|
|
|
58
68
|
|
|
59
69
|
/* && !isLoadWithState() */
|
|
60
70
|
) {
|
|
61
|
-
|
|
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);
|
|
62
74
|
|
|
63
75
|
if (previousActiveSessionResponse && previousActiveSessionResponse.reconnectId) {
|
|
64
76
|
return previousActiveSessionResponse.reconnectId;
|
|
@@ -71,8 +83,8 @@ const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
|
|
|
71
83
|
|
|
72
84
|
exports.getReconnectIdForAuthenticatedChat = getReconnectIdForAuthenticatedChat;
|
|
73
85
|
|
|
74
|
-
const handleUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat, redirectInSameWindow) => {
|
|
75
|
-
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);
|
|
76
88
|
|
|
77
89
|
if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
78
90
|
await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
|
|
@@ -84,8 +96,8 @@ const handleUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthTo
|
|
|
84
96
|
|
|
85
97
|
exports.handleUnauthenticatedReconnectChat = handleUnauthenticatedReconnectChat;
|
|
86
98
|
|
|
87
|
-
const startUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat) => {
|
|
88
|
-
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);
|
|
89
101
|
|
|
90
102
|
if (!shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
91
103
|
await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
|
|
@@ -166,8 +178,8 @@ const startNewChatEmptyRedirectionUrl = async (chatSDK, chatConfig, getAuthToken
|
|
|
166
178
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
167
179
|
|
|
168
180
|
|
|
169
|
-
const handleRedirectUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, reconnectId, redirectInSameWindow) => {
|
|
170
|
-
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);
|
|
171
183
|
|
|
172
184
|
if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
|
|
173
185
|
await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
|
|
@@ -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.chatConfig, props.getAuthToken, dispatch, setAdapter, initStartChat, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.
|
|
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,11 +76,9 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
|
|
|
69
76
|
payload: _ConversationState.ConversationState.ReconnectChat
|
|
70
77
|
});
|
|
71
78
|
return;
|
|
72
|
-
} //
|
|
79
|
+
} // Setting Proactive chat settings
|
|
73
80
|
|
|
74
81
|
|
|
75
|
-
setCustomContextParams(props, chatSDK); // Setting Proactive chat settings
|
|
76
|
-
|
|
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
|
|
|
@@ -112,36 +117,6 @@ const setPreChatAndInitiateChat = async (chatSDK, chatConfig, getAuthToken, disp
|
|
|
112
117
|
|
|
113
118
|
exports.setPreChatAndInitiateChat = setPreChatAndInitiateChat;
|
|
114
119
|
|
|
115
|
-
const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
|
|
116
|
-
if (getAuthToken) {
|
|
117
|
-
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
118
|
-
Event: _TelemetryConstants.TelemetryEvent.GetAuthTokenCalled
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
let authClientFunction = undefined;
|
|
122
|
-
|
|
123
|
-
if (chatConfig !== null && chatConfig !== void 0 && chatConfig.LiveChatConfigAuthSettings) {
|
|
124
|
-
var _chatConfig$LiveChatC;
|
|
125
|
-
|
|
126
|
-
authClientFunction = (chatConfig === null || chatConfig === void 0 ? void 0 : (_chatConfig$LiveChatC = chatConfig.LiveChatConfigAuthSettings) === null || _chatConfig$LiveChatC === void 0 ? void 0 : _chatConfig$LiveChatC.msdyn_javascriptclientfunction) ?? undefined;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
const token = await getAuthToken(authClientFunction);
|
|
130
|
-
|
|
131
|
-
if (!(0, _utils.isNullOrEmptyString)(token)) {
|
|
132
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
133
|
-
chatSDK.setAuthTokenProvider(async () => {
|
|
134
|
-
return token;
|
|
135
|
-
});
|
|
136
|
-
} else {
|
|
137
|
-
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
138
|
-
Event: _TelemetryConstants.TelemetryEvent.ReceivedNullOrEmptyToken
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
143
|
-
|
|
144
|
-
|
|
145
120
|
const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, params, persistedState) => {
|
|
146
121
|
try {
|
|
147
122
|
var _newAdapter$activity$, _TelemetryTimers$Widg;
|
|
@@ -166,12 +141,13 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
166
141
|
|
|
167
142
|
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
168
143
|
Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
|
|
169
|
-
}); // Set
|
|
144
|
+
}); // Set custom context params
|
|
170
145
|
|
|
171
146
|
|
|
147
|
+
setCustomContextParams(chatSDK);
|
|
172
148
|
optionalParams = Object.assign({}, params, optionalParams); // set auth token to chat sdk before start chat
|
|
173
149
|
|
|
174
|
-
await handleAuthentication(chatSDK, chatConfig, getAuthToken);
|
|
150
|
+
await (0, _authHelper.handleAuthentication)(chatSDK, chatConfig, getAuthToken);
|
|
175
151
|
await chatSDK.startChat(optionalParams);
|
|
176
152
|
isStartChatSuccessful = true;
|
|
177
153
|
} catch (error) {
|
|
@@ -223,6 +199,8 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
223
199
|
await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
|
|
224
200
|
|
|
225
201
|
if (isStartChatSuccessful) {
|
|
202
|
+
_ActivityStreamHandler.ActivityStreamHandler.uncork();
|
|
203
|
+
|
|
226
204
|
dispatch({
|
|
227
205
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
228
206
|
payload: _ConversationState.ConversationState.Active
|
|
@@ -257,6 +235,7 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
257
235
|
}
|
|
258
236
|
} finally {
|
|
259
237
|
optionalParams = {};
|
|
238
|
+
widgetInstanceId = "";
|
|
260
239
|
}
|
|
261
240
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
262
241
|
|
|
@@ -264,14 +243,14 @@ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAda
|
|
|
264
243
|
exports.initStartChat = initStartChat;
|
|
265
244
|
|
|
266
245
|
const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
267
|
-
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _persistedState$domai6, _persistedState$appSt;
|
|
246
|
+
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps2, _persistedState$domai6, _persistedState$appSt;
|
|
268
247
|
|
|
269
248
|
// By pass this function in case of popout chat
|
|
270
249
|
if (state.appStates.skipChatButtonRendering === true) {
|
|
271
250
|
return false;
|
|
272
251
|
}
|
|
273
252
|
|
|
274
|
-
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
|
|
253
|
+
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
|
|
275
254
|
|
|
276
255
|
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) {
|
|
277
256
|
var _persistedState$domai7;
|
|
@@ -291,17 +270,30 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
291
270
|
}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
292
271
|
|
|
293
272
|
|
|
294
|
-
const setCustomContextParams =
|
|
295
|
-
var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4,
|
|
273
|
+
const setCustomContextParams = chatSDK => {
|
|
274
|
+
var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4, _persistedState$domai8;
|
|
296
275
|
|
|
297
276
|
// Add custom context only for unauthenticated chat
|
|
298
|
-
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);
|
|
277
|
+
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 ?? "");
|
|
278
|
+
|
|
279
|
+
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)) {
|
|
280
|
+
var _persistedState$domai9, _persistedState$domai10;
|
|
299
281
|
|
|
300
|
-
|
|
301
|
-
|
|
282
|
+
if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai9 = persistedState.domainStates.liveChatConfig) !== null && _persistedState$domai9 !== void 0 && _persistedState$domai9.LiveChatConfigAuthSettings) {
|
|
283
|
+
const errorMessage = "Use of custom context with authenticated chat is deprecated. The chat would not go through.";
|
|
284
|
+
|
|
285
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.WARN, {
|
|
286
|
+
Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
|
|
287
|
+
ExceptionDetails: {
|
|
288
|
+
exception: errorMessage
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
throw new Error(errorMessage);
|
|
293
|
+
}
|
|
302
294
|
|
|
303
295
|
optionalParams = Object.assign({}, optionalParams, {
|
|
304
|
-
customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$
|
|
296
|
+
customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai10 = persistedState.domainStates) === null || _persistedState$domai10 === void 0 ? void 0 : _persistedState$domai10.customContext
|
|
305
297
|
});
|
|
306
298
|
}
|
|
307
299
|
};
|