@defra/flood-webchat 0.0.1-beta.37 → 0.0.1-beta.38-draft
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/dist/client.js +189 -31
- package/dist/client.js.map +1 -1
- package/package.json +2 -1
- package/src/client/components/availability/availability.jsx +20 -2
- package/src/client/components/chat/chat.jsx +35 -14
- package/src/client/components/live-region.jsx +55 -0
- package/src/client/components/panel/panel.jsx +2 -0
- package/src/client/components/screens/end-chat.jsx +2 -0
- package/src/client/lib/agent-status-headline.js +19 -0
- package/src/client/scss/_settings.scss +21 -0
- package/src/client/store/AppProvider.jsx +7 -1
- package/src/client/store/actions-map.js +13 -4
package/dist/client.js
CHANGED
|
@@ -19,6 +19,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
19
19
|
/* harmony import */ var _skip_link_jsx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../skip-link.jsx */ "./src/client/components/skip-link.jsx");
|
|
20
20
|
/* harmony import */ var _store_useApp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../store/useApp */ "./src/client/store/useApp.js");
|
|
21
21
|
/* harmony import */ var _lib_history_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../lib/history.js */ "./src/client/lib/history.js");
|
|
22
|
+
/* harmony import */ var _live_region_jsx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../live-region.jsx */ "./src/client/components/live-region.jsx");
|
|
23
|
+
|
|
22
24
|
|
|
23
25
|
|
|
24
26
|
|
|
@@ -33,7 +35,8 @@ function Availability() {
|
|
|
33
35
|
unseenCount,
|
|
34
36
|
threadId,
|
|
35
37
|
setUnseenCount,
|
|
36
|
-
setInstigatorId
|
|
38
|
+
setInstigatorId,
|
|
39
|
+
setLiveRegionText
|
|
37
40
|
} = (0,_store_useApp__WEBPACK_IMPORTED_MODULE_4__.useApp)();
|
|
38
41
|
const buttonRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
|
|
39
42
|
const onClick = e => {
|
|
@@ -58,6 +61,14 @@ function Availability() {
|
|
|
58
61
|
setChatVisibility(!isChatOpen);
|
|
59
62
|
}
|
|
60
63
|
};
|
|
64
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
65
|
+
if (!isChatOpen && unseenCount > 0) {
|
|
66
|
+
setLiveRegionText(`Floodline Webchat - ${unseenCount} new messages`);
|
|
67
|
+
}
|
|
68
|
+
return () => {
|
|
69
|
+
setLiveRegionText();
|
|
70
|
+
};
|
|
71
|
+
}, [unseenCount, isChatOpen]);
|
|
61
72
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
62
73
|
const onScroll = () => {
|
|
63
74
|
if (!threadId) {
|
|
@@ -100,9 +111,9 @@ function Availability() {
|
|
|
100
111
|
onKeyDown: onKeyDown,
|
|
101
112
|
role: "button",
|
|
102
113
|
"data-module": "govuk-button"
|
|
103
|
-
}, TextComponent, unseenCount > 0 && !isChatOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
114
|
+
}, TextComponent, unseenCount > 0 && !isChatOpen ? /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("span", {
|
|
104
115
|
className: "wc-availability__unseen"
|
|
105
|
-
}, unseenCount) : null))), isChatOpen && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_jsx__WEBPACK_IMPORTED_MODULE_2__.Panel, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_skip_link_jsx__WEBPACK_IMPORTED_MODULE_3__.SkipLink, null));
|
|
116
|
+
}, unseenCount), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_live_region_jsx__WEBPACK_IMPORTED_MODULE_6__.LiveRegion, null)) : null))), isChatOpen && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_panel_panel_jsx__WEBPACK_IMPORTED_MODULE_2__.Panel, null), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_skip_link_jsx__WEBPACK_IMPORTED_MODULE_3__.SkipLink, null));
|
|
106
117
|
case 'EXISTING':
|
|
107
118
|
case 'UNAVAILABLE':
|
|
108
119
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("p", {
|
|
@@ -135,6 +146,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
135
146
|
/* harmony import */ var _store_useApp_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../store/useApp.js */ "./src/client/store/useApp.js");
|
|
136
147
|
/* harmony import */ var _hooks_useTextareaAutosize_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../hooks/useTextareaAutosize.js */ "./src/client/hooks/useTextareaAutosize.js");
|
|
137
148
|
/* harmony import */ var _lib_transform_messages_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../lib/transform-messages.js */ "./src/client/lib/transform-messages.js");
|
|
149
|
+
/* harmony import */ var _lib_agent_status_headline_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../lib/agent-status-headline.js */ "./src/client/lib/agent-status-headline.js");
|
|
150
|
+
|
|
138
151
|
|
|
139
152
|
|
|
140
153
|
|
|
@@ -153,8 +166,10 @@ function Chat({
|
|
|
153
166
|
agent,
|
|
154
167
|
agentStatus,
|
|
155
168
|
isAgentTyping,
|
|
169
|
+
isChatOpen,
|
|
156
170
|
settings,
|
|
157
|
-
isKeyboard
|
|
171
|
+
isKeyboard,
|
|
172
|
+
setLiveRegionText
|
|
158
173
|
} = (0,_store_useApp_js__WEBPACK_IMPORTED_MODULE_4__.useApp)();
|
|
159
174
|
const [userMessage, setUserMessage] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)('');
|
|
160
175
|
const [focusVisibleWithin, setFocusVisibleWithin] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
|
@@ -178,25 +193,40 @@ function Chat({
|
|
|
178
193
|
setUserMessage(e.target?.value);
|
|
179
194
|
};
|
|
180
195
|
const agentName = agent?.nickname || agent?.firstName;
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
connectionHeadlineText
|
|
184
|
-
|
|
185
|
-
if (agentName) {
|
|
186
|
-
connectionHeadlineText = `You are speaking with ${agentName}`;
|
|
187
|
-
} else {
|
|
188
|
-
connectionHeadlineText = 'No advisers currently available';
|
|
196
|
+
const connectionHeadlineText = (0,_lib_agent_status_headline_js__WEBPACK_IMPORTED_MODULE_7__.agentStatusHeadline)(availability, agentStatus, agentName);
|
|
197
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
198
|
+
if (connectionHeadlineText) {
|
|
199
|
+
setLiveRegionText(`Floodline Webchat - ${connectionHeadlineText}`);
|
|
189
200
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
}
|
|
201
|
+
return () => {
|
|
202
|
+
setLiveRegionText();
|
|
203
|
+
};
|
|
204
|
+
}, [connectionHeadlineText]);
|
|
205
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
206
|
+
if (isAgentTyping && isChatOpen) {
|
|
207
|
+
setLiveRegionText(`${agentName} is typing...`);
|
|
208
|
+
}
|
|
209
|
+
return () => {
|
|
210
|
+
setLiveRegionText();
|
|
211
|
+
};
|
|
212
|
+
}, [isAgentTyping, isChatOpen]);
|
|
213
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
214
|
+
const lastAgentMessage = messages[messages.length - 1];
|
|
215
|
+
if (lastAgentMessage?.direction === 'outbound') {
|
|
216
|
+
setLiveRegionText(`${agentName} said: ${lastAgentMessage.text}`);
|
|
217
|
+
}
|
|
218
|
+
return () => {
|
|
219
|
+
setLiveRegionText();
|
|
220
|
+
};
|
|
221
|
+
}, [messages]);
|
|
194
222
|
const sendMessage = () => {
|
|
195
223
|
if (messageRef.current.value.length === 0) {
|
|
196
224
|
return;
|
|
197
225
|
}
|
|
198
226
|
try {
|
|
199
|
-
|
|
227
|
+
const message = messageRef.current.value.trim();
|
|
228
|
+
thread.sendTextMessage(message);
|
|
229
|
+
setLiveRegionText(`You said: ${message}`);
|
|
200
230
|
} catch (err) {
|
|
201
231
|
console.log('[Chat Error] sendMessage', err);
|
|
202
232
|
}
|
|
@@ -390,6 +420,72 @@ const ErrorSummary = ({
|
|
|
390
420
|
|
|
391
421
|
/***/ }),
|
|
392
422
|
|
|
423
|
+
/***/ "./src/client/components/live-region.jsx":
|
|
424
|
+
/*!***********************************************!*\
|
|
425
|
+
!*** ./src/client/components/live-region.jsx ***!
|
|
426
|
+
\***********************************************/
|
|
427
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
428
|
+
|
|
429
|
+
__webpack_require__.r(__webpack_exports__);
|
|
430
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
431
|
+
/* harmony export */ LiveRegion: () => (/* binding */ LiveRegion)
|
|
432
|
+
/* harmony export */ });
|
|
433
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
434
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
435
|
+
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash.debounce */ "lodash.debounce");
|
|
436
|
+
/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
|
|
437
|
+
/* harmony import */ var _store_useApp__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../store/useApp */ "./src/client/store/useApp.js");
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
const LiveRegion = () => {
|
|
442
|
+
const {
|
|
443
|
+
agentStatus,
|
|
444
|
+
liveRegionText,
|
|
445
|
+
setLiveRegionText
|
|
446
|
+
} = (0,_store_useApp__WEBPACK_IMPORTED_MODULE_2__.useApp)();
|
|
447
|
+
const [textA, setTextA] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
448
|
+
const [textB, setTextB] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
449
|
+
const isSessionEnded = agentStatus === 'closed' || agentStatus === null;
|
|
450
|
+
const clearText = () => {
|
|
451
|
+
setTextA();
|
|
452
|
+
setTextB();
|
|
453
|
+
};
|
|
454
|
+
const setText = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(text => {
|
|
455
|
+
if (textA) {
|
|
456
|
+
setTextB(text);
|
|
457
|
+
} else {
|
|
458
|
+
setTextA(text);
|
|
459
|
+
}
|
|
460
|
+
}, 2000), [textA, textB]);
|
|
461
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
462
|
+
console.log('liveRegionText', liveRegionText);
|
|
463
|
+
if (liveRegionText) {
|
|
464
|
+
clearText();
|
|
465
|
+
setText(liveRegionText);
|
|
466
|
+
}
|
|
467
|
+
if (isSessionEnded) {
|
|
468
|
+
clearText();
|
|
469
|
+
setLiveRegionText();
|
|
470
|
+
}
|
|
471
|
+
return () => {
|
|
472
|
+
clearText();
|
|
473
|
+
setLiveRegionText();
|
|
474
|
+
};
|
|
475
|
+
}, [liveRegionText]);
|
|
476
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
477
|
+
className: "wc-live",
|
|
478
|
+
"aria-live": "polite",
|
|
479
|
+
"aria-atomic": "true"
|
|
480
|
+
}, textA), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
481
|
+
className: "wc-live",
|
|
482
|
+
"aria-live": "polite",
|
|
483
|
+
"aria-atomic": "true"
|
|
484
|
+
}, textB));
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
/***/ }),
|
|
488
|
+
|
|
393
489
|
/***/ "./src/client/components/message/message.jsx":
|
|
394
490
|
/*!***************************************************!*\
|
|
395
491
|
!*** ./src/client/components/message/message.jsx ***!
|
|
@@ -570,10 +666,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
570
666
|
/* harmony import */ var _screens_end_chat_jsx__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../screens/end-chat.jsx */ "./src/client/components/screens/end-chat.jsx");
|
|
571
667
|
/* harmony import */ var _screens_settings_jsx__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../screens/settings.jsx */ "./src/client/components/screens/settings.jsx");
|
|
572
668
|
/* harmony import */ var _screens_feedback_jsx__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../screens/feedback.jsx */ "./src/client/components/screens/feedback.jsx");
|
|
573
|
-
/* harmony import */ var
|
|
574
|
-
/* harmony import */ var
|
|
575
|
-
/* harmony import */ var
|
|
576
|
-
/* harmony import */ var
|
|
669
|
+
/* harmony import */ var _live_region_jsx__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../live-region.jsx */ "./src/client/components/live-region.jsx");
|
|
670
|
+
/* harmony import */ var _store_useApp_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../store/useApp.js */ "./src/client/store/useApp.js");
|
|
671
|
+
/* harmony import */ var _store_useChatSdk_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../store/useChatSdk.js */ "./src/client/store/useChatSdk.js");
|
|
672
|
+
/* harmony import */ var _hooks_useFocusedElements_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../hooks/useFocusedElements.js */ "./src/client/hooks/useFocusedElements.js");
|
|
673
|
+
/* harmony import */ var _lib_history_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../lib/history.js */ "./src/client/lib/history.js");
|
|
674
|
+
|
|
577
675
|
|
|
578
676
|
|
|
579
677
|
|
|
@@ -602,13 +700,13 @@ function Panel() {
|
|
|
602
700
|
setUnseenCount,
|
|
603
701
|
isMobile,
|
|
604
702
|
isKeyboard
|
|
605
|
-
} = (0,
|
|
703
|
+
} = (0,_store_useApp_js__WEBPACK_IMPORTED_MODULE_11__.useApp)();
|
|
606
704
|
const {
|
|
607
705
|
fetchThread,
|
|
608
706
|
fetchMessages
|
|
609
|
-
} = (0,
|
|
707
|
+
} = (0,_store_useChatSdk_js__WEBPACK_IMPORTED_MODULE_12__.useChatSdk)(sdk);
|
|
610
708
|
const [screen, setScreen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(threadId ? 2 : 0);
|
|
611
|
-
(0,
|
|
709
|
+
(0,_hooks_useFocusedElements_js__WEBPACK_IMPORTED_MODULE_13__.useFocusedElements)(screen);
|
|
612
710
|
const onEscapeKey = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(e => {
|
|
613
711
|
if (e.key === 'Escape' || e.key === 'Esc') {
|
|
614
712
|
if (threadId) {
|
|
@@ -616,7 +714,7 @@ function Panel() {
|
|
|
616
714
|
setUnseenCount(0);
|
|
617
715
|
}
|
|
618
716
|
setChatVisibility(false);
|
|
619
|
-
(0,
|
|
717
|
+
(0,_lib_history_js__WEBPACK_IMPORTED_MODULE_14__.historyReplaceState)();
|
|
620
718
|
document.getElementById(instigatorId)?.focus();
|
|
621
719
|
}
|
|
622
720
|
}, [thread, threadId, setUnseenCount, setChatVisibility]);
|
|
@@ -732,7 +830,7 @@ function Panel() {
|
|
|
732
830
|
"aria-labelledby": "wc-header-title"
|
|
733
831
|
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", {
|
|
734
832
|
className: "wc-panel__inner"
|
|
735
|
-
}, ScreenComponent));
|
|
833
|
+
}, ScreenComponent), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_live_region_jsx__WEBPACK_IMPORTED_MODULE_10__.LiveRegion, null));
|
|
736
834
|
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, /*#__PURE__*/(0,react_dom__WEBPACK_IMPORTED_MODULE_1__.createPortal)(Component, document.body));
|
|
737
835
|
}
|
|
738
836
|
|
|
@@ -752,6 +850,8 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
752
850
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
753
851
|
/* harmony import */ var _panel_panel_header_jsx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../panel/panel-header.jsx */ "./src/client/components/panel/panel-header.jsx");
|
|
754
852
|
/* harmony import */ var _store_useApp_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../store/useApp.js */ "./src/client/store/useApp.js");
|
|
853
|
+
/* harmony import */ var _lib_history_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../lib/history.js */ "./src/client/lib/history.js");
|
|
854
|
+
|
|
755
855
|
|
|
756
856
|
|
|
757
857
|
|
|
@@ -780,6 +880,7 @@ function EndChat({
|
|
|
780
880
|
if (agentStatus !== 'closed') {
|
|
781
881
|
thread.endChat();
|
|
782
882
|
}
|
|
883
|
+
(0,_lib_history_js__WEBPACK_IMPORTED_MODULE_3__.historyReplaceState)();
|
|
783
884
|
onEndChatConfirm(e);
|
|
784
885
|
};
|
|
785
886
|
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
@@ -1391,6 +1492,35 @@ const useTextareaAutosize = (textAreaRef, value) => {
|
|
|
1391
1492
|
|
|
1392
1493
|
/***/ }),
|
|
1393
1494
|
|
|
1495
|
+
/***/ "./src/client/lib/agent-status-headline.js":
|
|
1496
|
+
/*!*************************************************!*\
|
|
1497
|
+
!*** ./src/client/lib/agent-status-headline.js ***!
|
|
1498
|
+
\*************************************************/
|
|
1499
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
1500
|
+
|
|
1501
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1502
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1503
|
+
/* harmony export */ agentStatusHeadline: () => (/* binding */ agentStatusHeadline)
|
|
1504
|
+
/* harmony export */ });
|
|
1505
|
+
const agentStatusHeadline = (availability, agentStatus, agentName) => {
|
|
1506
|
+
let connectionHeadlineText = 'Connecting to Floodline';
|
|
1507
|
+
if (agentStatus === 'closed') {
|
|
1508
|
+
connectionHeadlineText = agentName ? `${agentName} ended the session` : 'Session ended by advisor';
|
|
1509
|
+
} else if (agentStatus) {
|
|
1510
|
+
if (agentName) {
|
|
1511
|
+
connectionHeadlineText = `You are speaking with ${agentName}`;
|
|
1512
|
+
} else {
|
|
1513
|
+
connectionHeadlineText = 'No advisers currently available';
|
|
1514
|
+
}
|
|
1515
|
+
}
|
|
1516
|
+
if (availability === 'UNAVAILABLE') {
|
|
1517
|
+
connectionHeadlineText = 'Webchat is not currently available';
|
|
1518
|
+
}
|
|
1519
|
+
return connectionHeadlineText;
|
|
1520
|
+
};
|
|
1521
|
+
|
|
1522
|
+
/***/ }),
|
|
1523
|
+
|
|
1394
1524
|
/***/ "./src/client/lib/check-availability.js":
|
|
1395
1525
|
/*!**********************************************!*\
|
|
1396
1526
|
!*** ./src/client/lib/check-availability.js ***!
|
|
@@ -1598,7 +1728,7 @@ const AppProvider = ({
|
|
|
1598
1728
|
payload: e.detail.data.case.status
|
|
1599
1729
|
});
|
|
1600
1730
|
};
|
|
1601
|
-
const onAgentTypingStarted =
|
|
1731
|
+
const onAgentTypingStarted = e => {
|
|
1602
1732
|
dispatch({
|
|
1603
1733
|
type: 'SET_AGENT_TYPING',
|
|
1604
1734
|
payload: true
|
|
@@ -1609,6 +1739,9 @@ const AppProvider = ({
|
|
|
1609
1739
|
type: 'SET_AGENT_TYPING',
|
|
1610
1740
|
payload: false
|
|
1611
1741
|
});
|
|
1742
|
+
dispatch({
|
|
1743
|
+
type: 'SET_LIVE_REGION_TEXT'
|
|
1744
|
+
});
|
|
1612
1745
|
};
|
|
1613
1746
|
const onMessageCreated = e => {
|
|
1614
1747
|
dispatch({
|
|
@@ -1754,6 +1887,12 @@ const AppProvider = ({
|
|
|
1754
1887
|
payload: id
|
|
1755
1888
|
});
|
|
1756
1889
|
};
|
|
1890
|
+
const setLiveRegionText = text => {
|
|
1891
|
+
dispatch({
|
|
1892
|
+
type: 'SET_LIVE_REGION_TEXT',
|
|
1893
|
+
payload: text
|
|
1894
|
+
});
|
|
1895
|
+
};
|
|
1757
1896
|
|
|
1758
1897
|
/**
|
|
1759
1898
|
* Application-wide state and state functions
|
|
@@ -1769,6 +1908,7 @@ const AppProvider = ({
|
|
|
1769
1908
|
setUnseenCount,
|
|
1770
1909
|
setChatVisibility,
|
|
1771
1910
|
setInstigatorId,
|
|
1911
|
+
setLiveRegionText,
|
|
1772
1912
|
onLiveChatRecovered,
|
|
1773
1913
|
onAssignedAgentChanged,
|
|
1774
1914
|
onAgentTypingStarted,
|
|
@@ -1848,16 +1988,17 @@ const setThread = (state, payload) => {
|
|
|
1848
1988
|
thread: payload
|
|
1849
1989
|
};
|
|
1850
1990
|
};
|
|
1851
|
-
const
|
|
1991
|
+
const setMessages = (state, payload) => {
|
|
1852
1992
|
return {
|
|
1853
1993
|
...state,
|
|
1854
|
-
messages:
|
|
1994
|
+
messages: (0,_lib_transform_messages__WEBPACK_IMPORTED_MODULE_0__.transformMessages)(payload).reverse()
|
|
1855
1995
|
};
|
|
1856
1996
|
};
|
|
1857
|
-
const
|
|
1997
|
+
const setMessage = (state, payload) => {
|
|
1858
1998
|
return {
|
|
1859
1999
|
...state,
|
|
1860
|
-
|
|
2000
|
+
message: (0,_lib_transform_messages__WEBPACK_IMPORTED_MODULE_0__.transformMessage)(payload),
|
|
2001
|
+
messages: [...state.messages, (0,_lib_transform_messages__WEBPACK_IMPORTED_MODULE_0__.transformMessage)(payload)]
|
|
1861
2002
|
};
|
|
1862
2003
|
};
|
|
1863
2004
|
const setAgent = (state, payload) => {
|
|
@@ -1890,6 +2031,12 @@ const setInstigatorId = (state, payload) => {
|
|
|
1890
2031
|
instigatorId: payload
|
|
1891
2032
|
};
|
|
1892
2033
|
};
|
|
2034
|
+
const setLiveRegionText = (state, payload) => {
|
|
2035
|
+
return {
|
|
2036
|
+
...state,
|
|
2037
|
+
liveRegionText: payload
|
|
2038
|
+
};
|
|
2039
|
+
};
|
|
1893
2040
|
const toggleIsMobile = (state, payload) => {
|
|
1894
2041
|
return {
|
|
1895
2042
|
...state,
|
|
@@ -1916,6 +2063,7 @@ const actionsMap = {
|
|
|
1916
2063
|
SET_AGENT_STATUS: setAgentStatus,
|
|
1917
2064
|
SET_UNSEEN_COUNT: setUnseenCount,
|
|
1918
2065
|
SET_INSTIGATOR_ID: setInstigatorId,
|
|
2066
|
+
SET_LIVE_REGION_TEXT: setLiveRegionText,
|
|
1919
2067
|
TOGGLE_IS_MOBILE: toggleIsMobile,
|
|
1920
2068
|
TOGGLE_IS_KEYBOARD: toggleIsKeyboard
|
|
1921
2069
|
};
|
|
@@ -2062,6 +2210,16 @@ module.exports = require("@nice-devone/nice-cxone-chat-web-sdk");
|
|
|
2062
2210
|
|
|
2063
2211
|
/***/ }),
|
|
2064
2212
|
|
|
2213
|
+
/***/ "lodash.debounce":
|
|
2214
|
+
/*!**********************************!*\
|
|
2215
|
+
!*** external "lodash.debounce" ***!
|
|
2216
|
+
\**********************************/
|
|
2217
|
+
/***/ ((module) => {
|
|
2218
|
+
|
|
2219
|
+
module.exports = require("lodash.debounce");
|
|
2220
|
+
|
|
2221
|
+
/***/ }),
|
|
2222
|
+
|
|
2065
2223
|
/***/ "luxon":
|
|
2066
2224
|
/*!************************!*\
|
|
2067
2225
|
!*** external "luxon" ***!
|