@microsoft/omnichannel-chat-widget 1.4.1-main.d29da65 → 1.4.1-main.d4130ad
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/README.md +1 -1
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +8 -11
- package/lib/cjs/components/livechatwidget/common/chatDisconnectHelper.js +3 -2
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +1 -1
- package/lib/cjs/components/livechatwidget/common/startChat.js +29 -15
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +22 -17
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +8 -11
- package/lib/esm/components/livechatwidget/common/chatDisconnectHelper.js +3 -2
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +1 -1
- package/lib/esm/components/livechatwidget/common/startChat.js +29 -15
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +22 -17
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -125,7 +125,7 @@ These are components that are included in the ```@microsoft/omnichannel-chat-com
|
|
|
125
125
|
| ProactiveChatSurveyPane | A pane that holds more information than a normal chat button and can be configured to proactively pop up | [IProactiveChatPaneProps](https://github.com/microsoft/omnichannel-chat-widget/blob/main/chat-components/src/components/proactivechatpane/interfaces/IProactiveChatPaneProps.ts) |
|
|
126
126
|
| ReconnectChatPane | The pane that shows up when the customer is re-connecting to the chat to add additional conversation | [IReconnectChatPaneProps](https://github.com/microsoft/omnichannel-chat-widget/blob/main/chat-components/src/components/reconnectchatpane/interfaces/IReconnectChatPaneProps.ts) |
|
|
127
127
|
|
|
128
|
-
> :warning: Because the components extend Microsoft's [Fluent UI](https://developer.microsoft.com/en-us/fluentui#/) components, the base interface for all the ```styleProps``` in the above table is [IStyle](https://github.com/microsoft/fluentui/blob/master/packages/merge-styles/src/IStyle.ts), which extends the [IRawStyleBase](https://
|
|
128
|
+
> :warning: Because the components extend Microsoft's [Fluent UI](https://developer.microsoft.com/en-us/fluentui#/) components, the base interface for all the ```styleProps``` in the above table is [IStyle](https://github.com/microsoft/fluentui/blob/master/packages/merge-styles/src/IStyle.ts), which extends the [IRawStyleBase](https://github.com/microsoft/fluentui/blob/master/packages/merge-styles/src/IRawStyleBase.ts#L280) interface, which is the most useful reference.
|
|
129
129
|
|
|
130
130
|
### Stateful Components
|
|
131
131
|
|
|
@@ -65,17 +65,14 @@ const ChatButtonStateful = props => {
|
|
|
65
65
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
66
66
|
Event: _TelemetryConstants.TelemetryEvent.LCWChatButtonClicked
|
|
67
67
|
});
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
payload: _ConversationState.ConversationState.OutOfOffice
|
|
77
|
-
});
|
|
78
|
-
}
|
|
68
|
+
state.appStates.isMinimized && dispatch({
|
|
69
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
|
|
70
|
+
payload: false
|
|
71
|
+
});
|
|
72
|
+
dispatch({
|
|
73
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
74
|
+
payload: _ConversationState.ConversationState.OutOfOffice
|
|
75
|
+
});
|
|
79
76
|
},
|
|
80
77
|
unreadMessageString: (_props$buttonProps3 = props.buttonProps) === null || _props$buttonProps3 === void 0 ? void 0 : (_props$buttonProps3$c = _props$buttonProps3.controlProps) === null || _props$buttonProps3$c === void 0 ? void 0 : _props$buttonProps3$c.unreadMessageString,
|
|
81
78
|
...(outOfOfficeButtonProps === null || outOfOfficeButtonProps === void 0 ? void 0 : outOfOfficeButtonProps.controlProps)
|
|
@@ -13,7 +13,8 @@ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
|
13
13
|
const handleChatDisconnect = (props, state, setWebChatStyles) => {
|
|
14
14
|
var _state$appStates;
|
|
15
15
|
if (state !== null && state !== void 0 && (_state$appStates = state.appStates) !== null && _state$appStates !== void 0 && _state$appStates.chatDisconnectEventReceived) {
|
|
16
|
-
var _props$webChatContain, _props$webChatContain2;
|
|
16
|
+
var _state$domainStates, _state$domainStates$m, _props$webChatContain, _props$webChatContain2;
|
|
17
|
+
const chatDisconnectMessage = (state === null || state === void 0 ? void 0 : (_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$m = _state$domainStates.middlewareLocalizedTexts) === null || _state$domainStates$m === void 0 ? void 0 : _state$domainStates$m.MIDDLEWARE_BANNER_CHAT_DISCONNECT) ?? _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_CHAT_DISCONNECT;
|
|
17
18
|
if ((props === null || props === void 0 ? void 0 : (_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : (_props$webChatContain2 = _props$webChatContain.renderingMiddlewareProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.hideSendboxOnConversationEnd) !== false) {
|
|
18
19
|
setWebChatStyles(styles => {
|
|
19
20
|
return {
|
|
@@ -22,7 +23,7 @@ const handleChatDisconnect = (props, state, setWebChatStyles) => {
|
|
|
22
23
|
};
|
|
23
24
|
});
|
|
24
25
|
}
|
|
25
|
-
_NotificationHandler.NotificationHandler.notifyWarning(_NotificationScenarios.NotificationScenarios.ChatDisconnect,
|
|
26
|
+
_NotificationHandler.NotificationHandler.notifyWarning(_NotificationScenarios.NotificationScenarios.ChatDisconnect, chatDisconnectMessage);
|
|
26
27
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
27
28
|
Event: _TelemetryConstants.TelemetryEvent.ChatDisconnectThreadEventReceived,
|
|
28
29
|
Description: "Chat disconnected due to timeout, left or removed."
|
|
@@ -25,7 +25,7 @@ const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initSta
|
|
|
25
25
|
// Get chat reconnect context
|
|
26
26
|
const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat);
|
|
27
27
|
|
|
28
|
-
//Redirect if enabled
|
|
28
|
+
// Redirect if enabled
|
|
29
29
|
if (reconnectChatContext !== null && reconnectChatContext !== void 0 && reconnectChatContext.redirectURL) {
|
|
30
30
|
var _props$reconnectChatP;
|
|
31
31
|
redirectPage(reconnectChatContext.redirectURL, (_props$reconnectChatP = props.reconnectChatPaneProps) === null || _props$reconnectChatP === void 0 ? void 0 : _props$reconnectChatP.redirectInSameWindow);
|
|
@@ -69,15 +69,29 @@ const setPreChatAndInitiateChat = async (chatSDK, dispatch, setAdapter, isProact
|
|
|
69
69
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
70
70
|
const showPrechat = isProactiveChat ? preChatSurveyResponse && proactiveChatEnablePrechatState : preChatSurveyResponse && !(props !== null && props !== void 0 && (_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hidePreChatSurveyPane);
|
|
71
71
|
if (showPrechat) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
72
|
+
var _state$domainStates, _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3;
|
|
73
|
+
const isOutOfOperatingHours = (state === null || state === void 0 ? void 0 : (_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$l = _state$domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : (_state$domainStates$l3 = _state$domainStates$l2.OutOfOperatingHours) === null || _state$domainStates$l3 === void 0 ? void 0 : _state$domainStates$l3.toLowerCase()) === "true";
|
|
74
|
+
if (isOutOfOperatingHours) {
|
|
75
|
+
(state === null || state === void 0 ? void 0 : state.appStates.isMinimized) && dispatch({
|
|
76
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
|
|
77
|
+
payload: false
|
|
78
|
+
});
|
|
79
|
+
dispatch({
|
|
80
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
81
|
+
payload: _ConversationState.ConversationState.OutOfOffice
|
|
82
|
+
});
|
|
83
|
+
return;
|
|
84
|
+
} else {
|
|
85
|
+
dispatch({
|
|
86
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
|
|
87
|
+
payload: preChatSurveyResponse
|
|
88
|
+
});
|
|
89
|
+
dispatch({
|
|
90
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
91
|
+
payload: _ConversationState.ConversationState.Prechat
|
|
92
|
+
});
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
81
95
|
}
|
|
82
96
|
|
|
83
97
|
//Initiate start chat
|
|
@@ -303,17 +317,17 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
303
317
|
|
|
304
318
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
305
319
|
const setCustomContextParams = async (state, props) => {
|
|
306
|
-
var _props$chatConfig, _props$chatConfig$Liv, _state$
|
|
320
|
+
var _props$chatConfig, _props$chatConfig$Liv, _state$domainStates2, _persistedState$domai8;
|
|
307
321
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
308
322
|
const isAuthenticatedChat = props !== null && props !== void 0 && (_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && (_props$chatConfig$Liv = _props$chatConfig.LiveChatConfigAuthSettings) !== null && _props$chatConfig$Liv !== void 0 && _props$chatConfig$Liv.msdyn_javascriptclientfunction ? true : false;
|
|
309
323
|
//Should not set custom context for auth chat
|
|
310
324
|
if (isAuthenticatedChat) {
|
|
311
325
|
return;
|
|
312
326
|
}
|
|
313
|
-
if (state !== null && state !== void 0 && (_state$
|
|
314
|
-
var _state$
|
|
327
|
+
if (state !== null && state !== void 0 && (_state$domainStates2 = state.domainStates) !== null && _state$domainStates2 !== void 0 && _state$domainStates2.customContext) {
|
|
328
|
+
var _state$domainStates3;
|
|
315
329
|
optionalParams = Object.assign({}, optionalParams, {
|
|
316
|
-
customContext: JSON.parse(JSON.stringify(state === null || state === void 0 ? void 0 : (_state$
|
|
330
|
+
customContext: JSON.parse(JSON.stringify(state === null || state === void 0 ? void 0 : (_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : _state$domainStates3.customContext))
|
|
317
331
|
});
|
|
318
332
|
return;
|
|
319
333
|
}
|
|
@@ -361,8 +375,8 @@ const canStartPopoutChat = async props => {
|
|
|
361
375
|
|
|
362
376
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
363
377
|
const checkIfConversationStillValid = async (chatSDK, dispatch, state) => {
|
|
364
|
-
var _state$
|
|
365
|
-
const requestIdFromCache = (_state$
|
|
378
|
+
var _state$domainStates4, _state$domainStates4$;
|
|
379
|
+
const requestIdFromCache = (_state$domainStates4 = state.domainStates) === null || _state$domainStates4 === void 0 ? void 0 : (_state$domainStates4$ = _state$domainStates4.liveChatContext) === null || _state$domainStates4$ === void 0 ? void 0 : _state$domainStates4$.requestId;
|
|
366
380
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
367
381
|
let conversationDetails = undefined;
|
|
368
382
|
|
|
@@ -61,7 +61,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
61
61
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
62
62
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
63
63
|
const LiveChatWidgetStateful = props => {
|
|
64
|
-
var _props$webChatContain, _props$styleProps,
|
|
64
|
+
var _props$webChatContain, _props$styleProps, _props$controlProps, _props$controlProps3, _state$appStates7, _props$webChatContain5, _state$appStates14, _props$webChatContain6, _props$controlProps12, _props$draggableChatW, _props$draggableChatW2, _props$draggableChatW3, _props$draggableChatW4, _props$draggableChatW5, _props$webChatContain7, _props$webChatContain8, _props$webChatContain9, _props$webChatContain10, _livechatProps$webCha, _livechatProps$styleP, _livechatProps$contro, _livechatProps$contro2, _livechatProps$compon, _livechatProps$contro3, _livechatProps$compon2, _livechatProps$contro4, _livechatProps$compon3, _livechatProps$contro5, _livechatProps$compon4, _livechatProps$contro6, _livechatProps$compon5, _livechatProps$contro7, _livechatProps$compon6, _livechatProps$contro8, _livechatProps$compon7, _livechatProps$contro9, _livechatProps$contro10, _livechatProps$compon8, _livechatProps$contro11, _livechatProps$compon9, _livechatProps$contro12, _livechatProps$compon10, _livechatProps$compon11, _livechatProps$compon12;
|
|
65
65
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
66
66
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
67
|
const [adapter, setAdapter] = (0, _useChatAdapterStore.default)();
|
|
@@ -85,10 +85,15 @@ const LiveChatWidgetStateful = props => {
|
|
|
85
85
|
|
|
86
86
|
//Scrollbar styles
|
|
87
87
|
const scrollbarProps = Object.assign({}, _defaultScrollBarProps.defaultScrollBarProps, props === null || props === void 0 ? void 0 : props.scrollBarProps);
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
|
|
89
|
+
// In case the broadcast channel is already initialized elsewhere; One tab can only hold 1 instance
|
|
90
|
+
if ((props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.skipBroadcastChannelInit) !== true) {
|
|
91
|
+
var _chatSDK$omnichannelC, _props$controlProps2;
|
|
92
|
+
const broadcastServiceChannelName = (0, _utils.getBroadcastChannelName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.widgetId, ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? "");
|
|
93
|
+
(0, _omnichannelChatComponents.BroadcastServiceInitialize)(broadcastServiceChannelName);
|
|
94
|
+
}
|
|
90
95
|
_TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer = (0, _utils.createTimer)();
|
|
91
|
-
const widgetElementId = ((_props$
|
|
96
|
+
const widgetElementId = ((_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.id) || "oc-lcw";
|
|
92
97
|
const currentMessageCountRef = (0, _react2.useRef)(0);
|
|
93
98
|
let widgetStateEventId = "";
|
|
94
99
|
const lastLWICheckTimeRef = (0, _react2.useRef)(0);
|
|
@@ -178,8 +183,8 @@ const LiveChatWidgetStateful = props => {
|
|
|
178
183
|
// Add default localStorage support for widget
|
|
179
184
|
const widgetCacheId = (0, _utils.getWidgetCacheIdfromProps)(props);
|
|
180
185
|
if (props.contextDataStore === undefined) {
|
|
181
|
-
var _props$
|
|
182
|
-
const cacheTtlInMins = (props === null || props === void 0 ? void 0 : (_props$
|
|
186
|
+
var _props$controlProps4;
|
|
187
|
+
const cacheTtlInMins = (props === null || props === void 0 ? void 0 : (_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.cacheTtlInMins) ?? _Constants.Constants.CacheTtlInMinutes;
|
|
183
188
|
const storageType = (props === null || props === void 0 ? void 0 : props.useSessionStorage) === true ? _Constants.StorageType.sessionStorage : _Constants.StorageType.localStorage;
|
|
184
189
|
_DataStoreManager.DataStoreManager.clientDataStore = (0, _defaultClientDataStoreProvider.defaultClientDataStoreProvider)(cacheTtlInMins, storageType);
|
|
185
190
|
(0, _defaultCacheManager.registerBroadcastServiceForStorage)(widgetCacheId, cacheTtlInMins, storageType);
|
|
@@ -188,7 +193,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
188
193
|
}
|
|
189
194
|
};
|
|
190
195
|
(0, _react2.useEffect)(() => {
|
|
191
|
-
var _props$
|
|
196
|
+
var _props$controlProps5, _props$controlProps6, _props$controlProps7, _props$chatConfig, _props$chatConfig$Liv, _props$controlProps9, _props$chatConfig2, _props$chatConfig2$Ch, _state$appStates5;
|
|
192
197
|
state.domainStates.confirmationPaneConfirmedOptionClicked = false;
|
|
193
198
|
state.domainStates.confirmationState = _Constants.ConfirmationState.NotSet;
|
|
194
199
|
setupClientDataStore();
|
|
@@ -200,17 +205,17 @@ const LiveChatWidgetStateful = props => {
|
|
|
200
205
|
});
|
|
201
206
|
dispatch({
|
|
202
207
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_START_CHAT_BUTTON_DISPLAY,
|
|
203
|
-
payload: ((_props$
|
|
208
|
+
payload: ((_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.hideStartChatButton) || false
|
|
204
209
|
});
|
|
205
210
|
dispatch({
|
|
206
211
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
207
212
|
payload: false
|
|
208
213
|
});
|
|
209
|
-
if ((_props$
|
|
210
|
-
var _props$
|
|
214
|
+
if ((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.widgetInstanceId && !(0, _utils.isNullOrEmptyString)((_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.widgetInstanceId)) {
|
|
215
|
+
var _props$controlProps8;
|
|
211
216
|
dispatch({
|
|
212
217
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID,
|
|
213
|
-
payload: (_props$
|
|
218
|
+
payload: (_props$controlProps8 = props.controlProps) === null || _props$controlProps8 === void 0 ? void 0 : _props$controlProps8.widgetInstanceId
|
|
214
219
|
});
|
|
215
220
|
}
|
|
216
221
|
if (((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Liv = _props$chatConfig.LiveWSAndLiveChatEngJoin) === null || _props$chatConfig$Liv === void 0 ? void 0 : _props$chatConfig$Liv.msdyn_callingoptions) !== _Constants.E2VVOptions.NoCalling) {
|
|
@@ -229,7 +234,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
229
234
|
}
|
|
230
235
|
|
|
231
236
|
// Initialize global dir
|
|
232
|
-
const globalDir = ((_props$
|
|
237
|
+
const globalDir = ((_props$controlProps9 = props.controlProps) === null || _props$controlProps9 === void 0 ? void 0 : _props$controlProps9.dir) ?? (0, _utils.getLocaleDirection)((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Ch = _props$chatConfig2.ChatWidgetLanguage) === null || _props$chatConfig2$Ch === void 0 ? void 0 : _props$chatConfig2$Ch.msdyn_localeid);
|
|
233
238
|
dispatch({
|
|
234
239
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_GLOBAL_DIR,
|
|
235
240
|
payload: globalDir
|
|
@@ -265,7 +270,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
265
270
|
|
|
266
271
|
// useEffect for custom context
|
|
267
272
|
(0, _react2.useEffect)(() => {
|
|
268
|
-
var _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$
|
|
273
|
+
var _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$controlProps11;
|
|
269
274
|
// Add the custom context on receiving the SetCustomContext event
|
|
270
275
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.SetCustomContext).subscribe(msg => {
|
|
271
276
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
@@ -298,8 +303,8 @@ const LiveChatWidgetStateful = props => {
|
|
|
298
303
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.HideChatVisibilityChangeEvent).subscribe(async event => {
|
|
299
304
|
var _event$payload;
|
|
300
305
|
if ((event === null || event === void 0 ? void 0 : (_event$payload = event.payload) === null || _event$payload === void 0 ? void 0 : _event$payload.isChatHidden) !== undefined) {
|
|
301
|
-
var _props$
|
|
302
|
-
if ((_props$
|
|
306
|
+
var _props$controlProps10;
|
|
307
|
+
if ((_props$controlProps10 = props.controlProps) !== null && _props$controlProps10 !== void 0 && _props$controlProps10.hideStartChatButton) {
|
|
303
308
|
var _event$payload2;
|
|
304
309
|
dispatch({
|
|
305
310
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
|
|
@@ -422,7 +427,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
422
427
|
});
|
|
423
428
|
|
|
424
429
|
// Listen to end chat event from other tabs
|
|
425
|
-
const endChatEventName = (0, _utils.getWidgetEndChatEventName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, ((_props$
|
|
430
|
+
const endChatEventName = (0, _utils.getWidgetEndChatEventName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, ((_props$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.widgetInstanceId) ?? "");
|
|
426
431
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName(endChatEventName).subscribe(msg => {
|
|
427
432
|
var _msg$payload9;
|
|
428
433
|
if ((msg === null || msg === void 0 ? void 0 : (_msg$payload9 = msg.payload) === null || _msg$payload9 === void 0 ? void 0 : _msg$payload9.runtimeId) !== _TelemetryManager.TelemetryManager.InternalTelemetryData.lcwRuntimeId) {
|
|
@@ -654,7 +659,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
654
659
|
};
|
|
655
660
|
const chatWidgetDraggableConfig = {
|
|
656
661
|
elementId: widgetElementId,
|
|
657
|
-
channel: ((_props$
|
|
662
|
+
channel: ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.widgetInstanceId) ?? "lcw",
|
|
658
663
|
disabled: ((_props$draggableChatW = props.draggableChatWidgetProps) === null || _props$draggableChatW === void 0 ? void 0 : _props$draggableChatW.disabled) === true ?? false // Draggable by default, unless explicitly disabled
|
|
659
664
|
};
|
|
660
665
|
|
|
@@ -56,17 +56,14 @@ export const ChatButtonStateful = props => {
|
|
|
56
56
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
57
57
|
Event: TelemetryEvent.LCWChatButtonClicked
|
|
58
58
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
payload: ConversationState.OutOfOffice
|
|
68
|
-
});
|
|
69
|
-
}
|
|
59
|
+
state.appStates.isMinimized && dispatch({
|
|
60
|
+
type: LiveChatWidgetActionType.SET_MINIMIZED,
|
|
61
|
+
payload: false
|
|
62
|
+
});
|
|
63
|
+
dispatch({
|
|
64
|
+
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
65
|
+
payload: ConversationState.OutOfOffice
|
|
66
|
+
});
|
|
70
67
|
},
|
|
71
68
|
unreadMessageString: (_props$buttonProps3 = props.buttonProps) === null || _props$buttonProps3 === void 0 ? void 0 : (_props$buttonProps3$c = _props$buttonProps3.controlProps) === null || _props$buttonProps3$c === void 0 ? void 0 : _props$buttonProps3$c.unreadMessageString,
|
|
72
69
|
...(outOfOfficeButtonProps === null || outOfOfficeButtonProps === void 0 ? void 0 : outOfOfficeButtonProps.controlProps)
|
|
@@ -7,7 +7,8 @@ import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
|
|
|
7
7
|
const handleChatDisconnect = (props, state, setWebChatStyles) => {
|
|
8
8
|
var _state$appStates;
|
|
9
9
|
if (state !== null && state !== void 0 && (_state$appStates = state.appStates) !== null && _state$appStates !== void 0 && _state$appStates.chatDisconnectEventReceived) {
|
|
10
|
-
var _props$webChatContain, _props$webChatContain2;
|
|
10
|
+
var _state$domainStates, _state$domainStates$m, _props$webChatContain, _props$webChatContain2;
|
|
11
|
+
const chatDisconnectMessage = (state === null || state === void 0 ? void 0 : (_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$m = _state$domainStates.middlewareLocalizedTexts) === null || _state$domainStates$m === void 0 ? void 0 : _state$domainStates$m.MIDDLEWARE_BANNER_CHAT_DISCONNECT) ?? defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_CHAT_DISCONNECT;
|
|
11
12
|
if ((props === null || props === void 0 ? void 0 : (_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : (_props$webChatContain2 = _props$webChatContain.renderingMiddlewareProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.hideSendboxOnConversationEnd) !== false) {
|
|
12
13
|
setWebChatStyles(styles => {
|
|
13
14
|
return {
|
|
@@ -16,7 +17,7 @@ const handleChatDisconnect = (props, state, setWebChatStyles) => {
|
|
|
16
17
|
};
|
|
17
18
|
});
|
|
18
19
|
}
|
|
19
|
-
NotificationHandler.notifyWarning(NotificationScenarios.ChatDisconnect,
|
|
20
|
+
NotificationHandler.notifyWarning(NotificationScenarios.ChatDisconnect, chatDisconnectMessage);
|
|
20
21
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
21
22
|
Event: TelemetryEvent.ChatDisconnectThreadEventReceived,
|
|
22
23
|
Description: "Chat disconnected due to timeout, left or removed."
|
|
@@ -20,7 +20,7 @@ const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initSta
|
|
|
20
20
|
// Get chat reconnect context
|
|
21
21
|
const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat);
|
|
22
22
|
|
|
23
|
-
//Redirect if enabled
|
|
23
|
+
// Redirect if enabled
|
|
24
24
|
if (reconnectChatContext !== null && reconnectChatContext !== void 0 && reconnectChatContext.redirectURL) {
|
|
25
25
|
var _props$reconnectChatP;
|
|
26
26
|
redirectPage(reconnectChatContext.redirectURL, (_props$reconnectChatP = props.reconnectChatPaneProps) === null || _props$reconnectChatP === void 0 ? void 0 : _props$reconnectChatP.redirectInSameWindow);
|
|
@@ -63,15 +63,29 @@ const setPreChatAndInitiateChat = async (chatSDK, dispatch, setAdapter, isProact
|
|
|
63
63
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
64
64
|
const showPrechat = isProactiveChat ? preChatSurveyResponse && proactiveChatEnablePrechatState : preChatSurveyResponse && !(props !== null && props !== void 0 && (_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hidePreChatSurveyPane);
|
|
65
65
|
if (showPrechat) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
66
|
+
var _state$domainStates, _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3;
|
|
67
|
+
const isOutOfOperatingHours = (state === null || state === void 0 ? void 0 : (_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$l = _state$domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : (_state$domainStates$l3 = _state$domainStates$l2.OutOfOperatingHours) === null || _state$domainStates$l3 === void 0 ? void 0 : _state$domainStates$l3.toLowerCase()) === "true";
|
|
68
|
+
if (isOutOfOperatingHours) {
|
|
69
|
+
(state === null || state === void 0 ? void 0 : state.appStates.isMinimized) && dispatch({
|
|
70
|
+
type: LiveChatWidgetActionType.SET_MINIMIZED,
|
|
71
|
+
payload: false
|
|
72
|
+
});
|
|
73
|
+
dispatch({
|
|
74
|
+
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
75
|
+
payload: ConversationState.OutOfOffice
|
|
76
|
+
});
|
|
77
|
+
return;
|
|
78
|
+
} else {
|
|
79
|
+
dispatch({
|
|
80
|
+
type: LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
|
|
81
|
+
payload: preChatSurveyResponse
|
|
82
|
+
});
|
|
83
|
+
dispatch({
|
|
84
|
+
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
85
|
+
payload: ConversationState.Prechat
|
|
86
|
+
});
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
75
89
|
}
|
|
76
90
|
|
|
77
91
|
//Initiate start chat
|
|
@@ -295,17 +309,17 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
|
|
|
295
309
|
|
|
296
310
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
297
311
|
const setCustomContextParams = async (state, props) => {
|
|
298
|
-
var _props$chatConfig, _props$chatConfig$Liv, _state$
|
|
312
|
+
var _props$chatConfig, _props$chatConfig$Liv, _state$domainStates2, _persistedState$domai8;
|
|
299
313
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
300
314
|
const isAuthenticatedChat = props !== null && props !== void 0 && (_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && (_props$chatConfig$Liv = _props$chatConfig.LiveChatConfigAuthSettings) !== null && _props$chatConfig$Liv !== void 0 && _props$chatConfig$Liv.msdyn_javascriptclientfunction ? true : false;
|
|
301
315
|
//Should not set custom context for auth chat
|
|
302
316
|
if (isAuthenticatedChat) {
|
|
303
317
|
return;
|
|
304
318
|
}
|
|
305
|
-
if (state !== null && state !== void 0 && (_state$
|
|
306
|
-
var _state$
|
|
319
|
+
if (state !== null && state !== void 0 && (_state$domainStates2 = state.domainStates) !== null && _state$domainStates2 !== void 0 && _state$domainStates2.customContext) {
|
|
320
|
+
var _state$domainStates3;
|
|
307
321
|
optionalParams = Object.assign({}, optionalParams, {
|
|
308
|
-
customContext: JSON.parse(JSON.stringify(state === null || state === void 0 ? void 0 : (_state$
|
|
322
|
+
customContext: JSON.parse(JSON.stringify(state === null || state === void 0 ? void 0 : (_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : _state$domainStates3.customContext))
|
|
309
323
|
});
|
|
310
324
|
return;
|
|
311
325
|
}
|
|
@@ -353,8 +367,8 @@ const canStartPopoutChat = async props => {
|
|
|
353
367
|
|
|
354
368
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
355
369
|
const checkIfConversationStillValid = async (chatSDK, dispatch, state) => {
|
|
356
|
-
var _state$
|
|
357
|
-
const requestIdFromCache = (_state$
|
|
370
|
+
var _state$domainStates4, _state$domainStates4$;
|
|
371
|
+
const requestIdFromCache = (_state$domainStates4 = state.domainStates) === null || _state$domainStates4 === void 0 ? void 0 : (_state$domainStates4$ = _state$domainStates4.liveChatContext) === null || _state$domainStates4$ === void 0 ? void 0 : _state$domainStates4$.requestId;
|
|
358
372
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
359
373
|
let conversationDetails = undefined;
|
|
360
374
|
|
|
@@ -53,7 +53,7 @@ import useChatSDKStore from "../../../hooks/useChatSDKStore";
|
|
|
53
53
|
import { defaultAdaptiveCardStyles } from "../../webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles";
|
|
54
54
|
import { uuidv4 } from "@microsoft/omnichannel-chat-sdk";
|
|
55
55
|
export const LiveChatWidgetStateful = props => {
|
|
56
|
-
var _props$webChatContain, _props$styleProps,
|
|
56
|
+
var _props$webChatContain, _props$styleProps, _props$controlProps, _props$controlProps3, _state$appStates7, _props$webChatContain5, _state$appStates14, _props$webChatContain6, _props$controlProps12, _props$draggableChatW, _props$draggableChatW2, _props$draggableChatW3, _props$draggableChatW4, _props$draggableChatW5, _props$webChatContain7, _props$webChatContain8, _props$webChatContain9, _props$webChatContain10, _livechatProps$webCha, _livechatProps$styleP, _livechatProps$contro, _livechatProps$contro2, _livechatProps$compon, _livechatProps$contro3, _livechatProps$compon2, _livechatProps$contro4, _livechatProps$compon3, _livechatProps$contro5, _livechatProps$compon4, _livechatProps$contro6, _livechatProps$compon5, _livechatProps$contro7, _livechatProps$compon6, _livechatProps$contro8, _livechatProps$compon7, _livechatProps$contro9, _livechatProps$contro10, _livechatProps$compon8, _livechatProps$contro11, _livechatProps$compon9, _livechatProps$contro12, _livechatProps$compon10, _livechatProps$compon11, _livechatProps$compon12;
|
|
57
57
|
const [state, dispatch] = useChatContextStore();
|
|
58
58
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
59
59
|
const [adapter, setAdapter] = useChatAdapterStore();
|
|
@@ -77,10 +77,15 @@ export const LiveChatWidgetStateful = props => {
|
|
|
77
77
|
|
|
78
78
|
//Scrollbar styles
|
|
79
79
|
const scrollbarProps = Object.assign({}, defaultScrollBarProps, props === null || props === void 0 ? void 0 : props.scrollBarProps);
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
|
|
81
|
+
// In case the broadcast channel is already initialized elsewhere; One tab can only hold 1 instance
|
|
82
|
+
if ((props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.skipBroadcastChannelInit) !== true) {
|
|
83
|
+
var _chatSDK$omnichannelC, _props$controlProps2;
|
|
84
|
+
const broadcastServiceChannelName = getBroadcastChannelName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.widgetId, ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? "");
|
|
85
|
+
BroadcastServiceInitialize(broadcastServiceChannelName);
|
|
86
|
+
}
|
|
82
87
|
TelemetryTimers.LcwLoadToChatButtonTimer = createTimer();
|
|
83
|
-
const widgetElementId = ((_props$
|
|
88
|
+
const widgetElementId = ((_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.id) || "oc-lcw";
|
|
84
89
|
const currentMessageCountRef = useRef(0);
|
|
85
90
|
let widgetStateEventId = "";
|
|
86
91
|
const lastLWICheckTimeRef = useRef(0);
|
|
@@ -170,8 +175,8 @@ export const LiveChatWidgetStateful = props => {
|
|
|
170
175
|
// Add default localStorage support for widget
|
|
171
176
|
const widgetCacheId = getWidgetCacheIdfromProps(props);
|
|
172
177
|
if (props.contextDataStore === undefined) {
|
|
173
|
-
var _props$
|
|
174
|
-
const cacheTtlInMins = (props === null || props === void 0 ? void 0 : (_props$
|
|
178
|
+
var _props$controlProps4;
|
|
179
|
+
const cacheTtlInMins = (props === null || props === void 0 ? void 0 : (_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.cacheTtlInMins) ?? Constants.CacheTtlInMinutes;
|
|
175
180
|
const storageType = (props === null || props === void 0 ? void 0 : props.useSessionStorage) === true ? StorageType.sessionStorage : StorageType.localStorage;
|
|
176
181
|
DataStoreManager.clientDataStore = defaultClientDataStoreProvider(cacheTtlInMins, storageType);
|
|
177
182
|
registerBroadcastServiceForStorage(widgetCacheId, cacheTtlInMins, storageType);
|
|
@@ -180,7 +185,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
180
185
|
}
|
|
181
186
|
};
|
|
182
187
|
useEffect(() => {
|
|
183
|
-
var _props$
|
|
188
|
+
var _props$controlProps5, _props$controlProps6, _props$controlProps7, _props$chatConfig, _props$chatConfig$Liv, _props$controlProps9, _props$chatConfig2, _props$chatConfig2$Ch, _state$appStates5;
|
|
184
189
|
state.domainStates.confirmationPaneConfirmedOptionClicked = false;
|
|
185
190
|
state.domainStates.confirmationState = ConfirmationState.NotSet;
|
|
186
191
|
setupClientDataStore();
|
|
@@ -192,17 +197,17 @@ export const LiveChatWidgetStateful = props => {
|
|
|
192
197
|
});
|
|
193
198
|
dispatch({
|
|
194
199
|
type: LiveChatWidgetActionType.SET_START_CHAT_BUTTON_DISPLAY,
|
|
195
|
-
payload: ((_props$
|
|
200
|
+
payload: ((_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.hideStartChatButton) || false
|
|
196
201
|
});
|
|
197
202
|
dispatch({
|
|
198
203
|
type: LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
199
204
|
payload: false
|
|
200
205
|
});
|
|
201
|
-
if ((_props$
|
|
202
|
-
var _props$
|
|
206
|
+
if ((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.widgetInstanceId && !isNullOrEmptyString((_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.widgetInstanceId)) {
|
|
207
|
+
var _props$controlProps8;
|
|
203
208
|
dispatch({
|
|
204
209
|
type: LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID,
|
|
205
|
-
payload: (_props$
|
|
210
|
+
payload: (_props$controlProps8 = props.controlProps) === null || _props$controlProps8 === void 0 ? void 0 : _props$controlProps8.widgetInstanceId
|
|
206
211
|
});
|
|
207
212
|
}
|
|
208
213
|
if (((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Liv = _props$chatConfig.LiveWSAndLiveChatEngJoin) === null || _props$chatConfig$Liv === void 0 ? void 0 : _props$chatConfig$Liv.msdyn_callingoptions) !== E2VVOptions.NoCalling) {
|
|
@@ -221,7 +226,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
221
226
|
}
|
|
222
227
|
|
|
223
228
|
// Initialize global dir
|
|
224
|
-
const globalDir = ((_props$
|
|
229
|
+
const globalDir = ((_props$controlProps9 = props.controlProps) === null || _props$controlProps9 === void 0 ? void 0 : _props$controlProps9.dir) ?? getLocaleDirection((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Ch = _props$chatConfig2.ChatWidgetLanguage) === null || _props$chatConfig2$Ch === void 0 ? void 0 : _props$chatConfig2$Ch.msdyn_localeid);
|
|
225
230
|
dispatch({
|
|
226
231
|
type: LiveChatWidgetActionType.SET_GLOBAL_DIR,
|
|
227
232
|
payload: globalDir
|
|
@@ -257,7 +262,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
257
262
|
|
|
258
263
|
// useEffect for custom context
|
|
259
264
|
useEffect(() => {
|
|
260
|
-
var _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$
|
|
265
|
+
var _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$controlProps11;
|
|
261
266
|
// Add the custom context on receiving the SetCustomContext event
|
|
262
267
|
BroadcastService.getMessageByEventName(BroadcastEvent.SetCustomContext).subscribe(msg => {
|
|
263
268
|
TelemetryHelper.logActionEvent(LogLevel.INFO, {
|
|
@@ -290,8 +295,8 @@ export const LiveChatWidgetStateful = props => {
|
|
|
290
295
|
BroadcastService.getMessageByEventName(BroadcastEvent.HideChatVisibilityChangeEvent).subscribe(async event => {
|
|
291
296
|
var _event$payload;
|
|
292
297
|
if ((event === null || event === void 0 ? void 0 : (_event$payload = event.payload) === null || _event$payload === void 0 ? void 0 : _event$payload.isChatHidden) !== undefined) {
|
|
293
|
-
var _props$
|
|
294
|
-
if ((_props$
|
|
298
|
+
var _props$controlProps10;
|
|
299
|
+
if ((_props$controlProps10 = props.controlProps) !== null && _props$controlProps10 !== void 0 && _props$controlProps10.hideStartChatButton) {
|
|
295
300
|
var _event$payload2;
|
|
296
301
|
dispatch({
|
|
297
302
|
type: LiveChatWidgetActionType.SET_MINIMIZED,
|
|
@@ -414,7 +419,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
414
419
|
});
|
|
415
420
|
|
|
416
421
|
// Listen to end chat event from other tabs
|
|
417
|
-
const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, ((_props$
|
|
422
|
+
const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, ((_props$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.widgetInstanceId) ?? "");
|
|
418
423
|
BroadcastService.getMessageByEventName(endChatEventName).subscribe(msg => {
|
|
419
424
|
var _msg$payload9;
|
|
420
425
|
if ((msg === null || msg === void 0 ? void 0 : (_msg$payload9 = msg.payload) === null || _msg$payload9 === void 0 ? void 0 : _msg$payload9.runtimeId) !== TelemetryManager.InternalTelemetryData.lcwRuntimeId) {
|
|
@@ -646,7 +651,7 @@ export const LiveChatWidgetStateful = props => {
|
|
|
646
651
|
};
|
|
647
652
|
const chatWidgetDraggableConfig = {
|
|
648
653
|
elementId: widgetElementId,
|
|
649
|
-
channel: ((_props$
|
|
654
|
+
channel: ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.widgetInstanceId) ?? "lcw",
|
|
650
655
|
disabled: ((_props$draggableChatW = props.draggableChatWidgetProps) === null || _props$draggableChatW === void 0 ? void 0 : _props$draggableChatW.disabled) === true ?? false // Draggable by default, unless explicitly disabled
|
|
651
656
|
};
|
|
652
657
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/omnichannel-chat-widget",
|
|
3
|
-
"version": "1.4.1-main.
|
|
3
|
+
"version": "1.4.1-main.d4130ad",
|
|
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.0.9",
|
|
78
|
-
"@microsoft/omnichannel-chat-sdk": "1.5.
|
|
78
|
+
"@microsoft/omnichannel-chat-sdk": "1.5.6",
|
|
79
79
|
"abort-controller-es5": "^2.0.1",
|
|
80
80
|
"dompurify": "^2.3.4",
|
|
81
81
|
"markdown-it": "^12.3.2",
|