@microsoft/omnichannel-chat-widget 1.0.4-main.ade1159 → 1.0.4-main.d4abfe6
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/telemetry/TelemetryConstants.js +1 -1
- package/lib/cjs/components/livechatwidget/common/endChat.js +25 -14
- package/lib/cjs/components/livechatwidget/common/startChat.js +6 -6
- package/lib/esm/common/telemetry/TelemetryConstants.js +1 -1
- package/lib/esm/components/livechatwidget/common/endChat.js +25 -14
- package/lib/esm/components/livechatwidget/common/startChat.js +6 -6
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +1 -1
- package/package.json +1 -1
|
@@ -107,7 +107,7 @@ exports.TelemetryEvent = TelemetryEvent;
|
|
|
107
107
|
TelemetryEvent["ChatVisibilityChanged"] = "ChatVisibilityChanged";
|
|
108
108
|
TelemetryEvent["EndChatSucceeded"] = "EndChatSucceeded";
|
|
109
109
|
TelemetryEvent["EndChatFailed"] = "EndChatFailed";
|
|
110
|
-
TelemetryEvent["
|
|
110
|
+
TelemetryEvent["SettingCustomContext"] = "SettingCustomContext";
|
|
111
111
|
TelemetryEvent["WebChatLoaded"] = "WebChatLoaded";
|
|
112
112
|
TelemetryEvent["LCWChatButtonClicked"] = "LCWChatButtonClicked";
|
|
113
113
|
TelemetryEvent["LCWChatButtonShow"] = "LCWChatButtonShow";
|
|
@@ -125,18 +125,12 @@ const endChat = async function (props, chatSDK, state, dispatch, setAdapter, set
|
|
|
125
125
|
}
|
|
126
126
|
});
|
|
127
127
|
} finally {
|
|
128
|
-
var _state$appStates3;
|
|
129
128
|
dispatch({
|
|
130
129
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
|
|
131
130
|
payload: 0
|
|
132
131
|
});
|
|
133
|
-
//Always allow to close the chat for embedded mode irrespective of end chat errors
|
|
134
|
-
|
|
135
|
-
dispatch({
|
|
136
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
137
|
-
payload: _ConversationState.ConversationState.Closed
|
|
138
|
-
});
|
|
139
|
-
}
|
|
132
|
+
// Always allow to close the chat for embedded mode irrespective of end chat errors
|
|
133
|
+
closeChatWidget(dispatch, props, state);
|
|
140
134
|
}
|
|
141
135
|
}
|
|
142
136
|
if (postMessageToOtherTab && !(0, _utils.isNullOrEmptyString)(uwid)) {
|
|
@@ -150,10 +144,6 @@ const endChat = async function (props, chatSDK, state, dispatch, setAdapter, set
|
|
|
150
144
|
exports.endChat = endChat;
|
|
151
145
|
const endChatStateCleanUp = async dispatch => {
|
|
152
146
|
// Need to clear these states immediately when chat ended from OC.
|
|
153
|
-
dispatch({
|
|
154
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
|
|
155
|
-
payload: undefined
|
|
156
|
-
});
|
|
157
147
|
dispatch({
|
|
158
148
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
|
|
159
149
|
payload: undefined
|
|
@@ -202,6 +192,27 @@ const closeChatStateCleanUp = async dispatch => {
|
|
|
202
192
|
}
|
|
203
193
|
});
|
|
204
194
|
};
|
|
195
|
+
const closeChatWidget = (dispatch, props, state) => {
|
|
196
|
+
var _state$appStates3;
|
|
197
|
+
if (state !== null && state !== void 0 && (_state$appStates3 = state.appStates) !== null && _state$appStates3 !== void 0 && _state$appStates3.hideStartChatButton) {
|
|
198
|
+
var _props$controlProps2, _props$controlProps3;
|
|
199
|
+
// Only close chat if header is enabled for popout
|
|
200
|
+
// TODO : This condition needs to be removed eventually when the filler UX is ready for popout, removing this condition would show a blank screen for OOB Widget
|
|
201
|
+
if ((props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.hideHeader) === undefined || (props === null || props === void 0 ? void 0 : (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.hideHeader) === false) {
|
|
202
|
+
dispatch({
|
|
203
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
204
|
+
payload: _ConversationState.ConversationState.Closed
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Embedded chat
|
|
211
|
+
dispatch({
|
|
212
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
213
|
+
payload: _ConversationState.ConversationState.Closed
|
|
214
|
+
});
|
|
215
|
+
};
|
|
205
216
|
|
|
206
217
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
207
218
|
const handleAuthenticationIfEnabled = async (props, chatSDK) => {
|
|
@@ -239,8 +250,8 @@ const chatTokenCleanUp = async dispatch => {
|
|
|
239
250
|
|
|
240
251
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
241
252
|
const getEndChatEventName = async (chatSDK, props) => {
|
|
242
|
-
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$
|
|
243
|
-
return (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$
|
|
253
|
+
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps4;
|
|
254
|
+
return (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$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.widgetInstanceId) ?? "");
|
|
244
255
|
};
|
|
245
256
|
|
|
246
257
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -299,14 +299,14 @@ const setCustomContextParams = async props => {
|
|
|
299
299
|
}
|
|
300
300
|
// Add custom context only for unauthenticated chat
|
|
301
301
|
const persistedState = (0, _utils.getStateFromCache)(widgetInstanceId);
|
|
302
|
-
|
|
303
|
-
|
|
302
|
+
const customContextLocal = (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext) ?? (props === null || props === void 0 ? void 0 : props.initialCustomContext);
|
|
303
|
+
if (customContextLocal) {
|
|
304
304
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
305
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
305
|
+
Event: _TelemetryConstants.TelemetryEvent.SettingCustomContext,
|
|
306
306
|
Description: "Setting custom context for unauthenticated chat"
|
|
307
307
|
});
|
|
308
308
|
optionalParams = Object.assign({}, optionalParams, {
|
|
309
|
-
customContext:
|
|
309
|
+
customContext: customContextLocal
|
|
310
310
|
});
|
|
311
311
|
} else {
|
|
312
312
|
const customContextFromParent = await getInitContextParamsForPopout();
|
|
@@ -323,9 +323,9 @@ const canStartPopoutChat = async props => {
|
|
|
323
323
|
}
|
|
324
324
|
popoutWidgetInstanceId = (0, _utils.getWidgetCacheIdfromProps)(props, true);
|
|
325
325
|
if (!(0, _utils.isNullOrEmptyString)(popoutWidgetInstanceId)) {
|
|
326
|
-
var _persistedState$
|
|
326
|
+
var _persistedState$domai9, _persistedState$appSt2;
|
|
327
327
|
const persistedState = (0, _utils.getStateFromCache)(popoutWidgetInstanceId);
|
|
328
|
-
if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$
|
|
328
|
+
if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai9 = persistedState.domainStates) === null || _persistedState$domai9 === void 0 ? void 0 : _persistedState$domai9.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt2 = persistedState.appStates) === null || _persistedState$appSt2 === void 0 ? void 0 : _persistedState$appSt2.conversationState) === _ConversationState.ConversationState.Active) {
|
|
329
329
|
// Initiate popout chat
|
|
330
330
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
331
331
|
eventName: _TelemetryConstants.BroadcastEvent.InitiateStartChatInPopoutMode
|
|
@@ -101,7 +101,7 @@ export let TelemetryEvent;
|
|
|
101
101
|
TelemetryEvent["ChatVisibilityChanged"] = "ChatVisibilityChanged";
|
|
102
102
|
TelemetryEvent["EndChatSucceeded"] = "EndChatSucceeded";
|
|
103
103
|
TelemetryEvent["EndChatFailed"] = "EndChatFailed";
|
|
104
|
-
TelemetryEvent["
|
|
104
|
+
TelemetryEvent["SettingCustomContext"] = "SettingCustomContext";
|
|
105
105
|
TelemetryEvent["WebChatLoaded"] = "WebChatLoaded";
|
|
106
106
|
TelemetryEvent["LCWChatButtonClicked"] = "LCWChatButtonClicked";
|
|
107
107
|
TelemetryEvent["LCWChatButtonShow"] = "LCWChatButtonShow";
|
|
@@ -119,18 +119,12 @@ const endChat = async function (props, chatSDK, state, dispatch, setAdapter, set
|
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
121
|
} finally {
|
|
122
|
-
var _state$appStates3;
|
|
123
122
|
dispatch({
|
|
124
123
|
type: LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
|
|
125
124
|
payload: 0
|
|
126
125
|
});
|
|
127
|
-
//Always allow to close the chat for embedded mode irrespective of end chat errors
|
|
128
|
-
|
|
129
|
-
dispatch({
|
|
130
|
-
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
131
|
-
payload: ConversationState.Closed
|
|
132
|
-
});
|
|
133
|
-
}
|
|
126
|
+
// Always allow to close the chat for embedded mode irrespective of end chat errors
|
|
127
|
+
closeChatWidget(dispatch, props, state);
|
|
134
128
|
}
|
|
135
129
|
}
|
|
136
130
|
if (postMessageToOtherTab && !isNullOrEmptyString(uwid)) {
|
|
@@ -143,10 +137,6 @@ const endChat = async function (props, chatSDK, state, dispatch, setAdapter, set
|
|
|
143
137
|
};
|
|
144
138
|
const endChatStateCleanUp = async dispatch => {
|
|
145
139
|
// Need to clear these states immediately when chat ended from OC.
|
|
146
|
-
dispatch({
|
|
147
|
-
type: LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
|
|
148
|
-
payload: undefined
|
|
149
|
-
});
|
|
150
140
|
dispatch({
|
|
151
141
|
type: LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
|
|
152
142
|
payload: undefined
|
|
@@ -195,6 +185,27 @@ const closeChatStateCleanUp = async dispatch => {
|
|
|
195
185
|
}
|
|
196
186
|
});
|
|
197
187
|
};
|
|
188
|
+
const closeChatWidget = (dispatch, props, state) => {
|
|
189
|
+
var _state$appStates3;
|
|
190
|
+
if (state !== null && state !== void 0 && (_state$appStates3 = state.appStates) !== null && _state$appStates3 !== void 0 && _state$appStates3.hideStartChatButton) {
|
|
191
|
+
var _props$controlProps2, _props$controlProps3;
|
|
192
|
+
// Only close chat if header is enabled for popout
|
|
193
|
+
// TODO : This condition needs to be removed eventually when the filler UX is ready for popout, removing this condition would show a blank screen for OOB Widget
|
|
194
|
+
if ((props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.hideHeader) === undefined || (props === null || props === void 0 ? void 0 : (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.hideHeader) === false) {
|
|
195
|
+
dispatch({
|
|
196
|
+
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
197
|
+
payload: ConversationState.Closed
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// Embedded chat
|
|
204
|
+
dispatch({
|
|
205
|
+
type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
206
|
+
payload: ConversationState.Closed
|
|
207
|
+
});
|
|
208
|
+
};
|
|
198
209
|
|
|
199
210
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
200
211
|
const handleAuthenticationIfEnabled = async (props, chatSDK) => {
|
|
@@ -232,8 +243,8 @@ const chatTokenCleanUp = async dispatch => {
|
|
|
232
243
|
|
|
233
244
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
234
245
|
const getEndChatEventName = async (chatSDK, props) => {
|
|
235
|
-
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$
|
|
236
|
-
return 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$
|
|
246
|
+
var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps4;
|
|
247
|
+
return 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$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.widgetInstanceId) ?? "");
|
|
237
248
|
};
|
|
238
249
|
|
|
239
250
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -291,14 +291,14 @@ const setCustomContextParams = async props => {
|
|
|
291
291
|
}
|
|
292
292
|
// Add custom context only for unauthenticated chat
|
|
293
293
|
const persistedState = getStateFromCache(widgetInstanceId);
|
|
294
|
-
|
|
295
|
-
|
|
294
|
+
const customContextLocal = (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext) ?? (props === null || props === void 0 ? void 0 : props.initialCustomContext);
|
|
295
|
+
if (customContextLocal) {
|
|
296
296
|
TelemetryHelper.logLoadingEvent(LogLevel.INFO, {
|
|
297
|
-
Event: TelemetryEvent.
|
|
297
|
+
Event: TelemetryEvent.SettingCustomContext,
|
|
298
298
|
Description: "Setting custom context for unauthenticated chat"
|
|
299
299
|
});
|
|
300
300
|
optionalParams = Object.assign({}, optionalParams, {
|
|
301
|
-
customContext:
|
|
301
|
+
customContext: customContextLocal
|
|
302
302
|
});
|
|
303
303
|
} else {
|
|
304
304
|
const customContextFromParent = await getInitContextParamsForPopout();
|
|
@@ -315,9 +315,9 @@ const canStartPopoutChat = async props => {
|
|
|
315
315
|
}
|
|
316
316
|
popoutWidgetInstanceId = getWidgetCacheIdfromProps(props, true);
|
|
317
317
|
if (!isNullOrEmptyString(popoutWidgetInstanceId)) {
|
|
318
|
-
var _persistedState$
|
|
318
|
+
var _persistedState$domai9, _persistedState$appSt2;
|
|
319
319
|
const persistedState = getStateFromCache(popoutWidgetInstanceId);
|
|
320
|
-
if (persistedState && !isUndefinedOrEmpty(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$
|
|
320
|
+
if (persistedState && !isUndefinedOrEmpty(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai9 = persistedState.domainStates) === null || _persistedState$domai9 === void 0 ? void 0 : _persistedState$domai9.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt2 = persistedState.appStates) === null || _persistedState$appSt2 === void 0 ? void 0 : _persistedState$appSt2.conversationState) === ConversationState.Active) {
|
|
321
321
|
// Initiate popout chat
|
|
322
322
|
BroadcastService.postMessage({
|
|
323
323
|
eventName: BroadcastEvent.InitiateStartChatInPopoutMode
|
|
@@ -94,7 +94,7 @@ export declare enum TelemetryEvent {
|
|
|
94
94
|
ChatVisibilityChanged = "ChatVisibilityChanged",
|
|
95
95
|
EndChatSucceeded = "EndChatSucceeded",
|
|
96
96
|
EndChatFailed = "EndChatFailed",
|
|
97
|
-
|
|
97
|
+
SettingCustomContext = "SettingCustomContext",
|
|
98
98
|
WebChatLoaded = "WebChatLoaded",
|
|
99
99
|
LCWChatButtonClicked = "LCWChatButtonClicked",
|
|
100
100
|
LCWChatButtonShow = "LCWChatButtonShow",
|