@webex/cc-user-state 1.28.0-ccwidgets.6 → 1.28.0-ccwidgets.7
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/helper.js +35 -14
- package/dist/helper.js.map +1 -1
- package/package.json +3 -3
package/dist/helper.js
CHANGED
|
@@ -9,12 +9,34 @@ const useUserState = ({ idleCodes, agentId, cc }) => {
|
|
|
9
9
|
const [errorMessage, setErrorMessage] = (0, react_1.useState)('');
|
|
10
10
|
const [elapsedTime, setElapsedTime] = (0, react_1.useState)(0);
|
|
11
11
|
const [currentState, setCurrentState] = (0, react_1.useState)({});
|
|
12
|
+
let worker;
|
|
13
|
+
// Initialize the Web Worker using a Blob
|
|
14
|
+
const workerScript = `
|
|
15
|
+
let intervalId;
|
|
16
|
+
|
|
17
|
+
const startTimer = (startTime) => {
|
|
18
|
+
if (intervalId) clearInterval(intervalId);
|
|
19
|
+
intervalId = setInterval(() => {
|
|
20
|
+
const elapsedTime = Math.floor((Date.now() - startTime) / 1000);
|
|
21
|
+
self.postMessage(elapsedTime);
|
|
22
|
+
}, 1000);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
self.onmessage = (event) => {
|
|
26
|
+
if (event.data.type === 'start' || event.data.type === 'reset') {
|
|
27
|
+
const startTime = event.data.startTime;
|
|
28
|
+
startTimer(startTime);
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
`;
|
|
12
32
|
(0, react_1.useEffect)(() => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
33
|
+
const blob = new Blob([workerScript], { type: 'application/javascript' });
|
|
34
|
+
const workerUrl = URL.createObjectURL(blob);
|
|
35
|
+
worker = new Worker(workerUrl);
|
|
36
|
+
worker.postMessage({ type: 'start', startTime: Date.now() });
|
|
37
|
+
worker.onmessage = (event) => {
|
|
38
|
+
setElapsedTime(event.data);
|
|
39
|
+
};
|
|
18
40
|
const handleStateChange = (data) => {
|
|
19
41
|
var _a;
|
|
20
42
|
if (data && typeof data === 'object' && data.type === 'AgentStateChangeSuccess') {
|
|
@@ -22,17 +44,17 @@ const useUserState = ({ idleCodes, agentId, cc }) => {
|
|
|
22
44
|
setCurrentState({
|
|
23
45
|
id: ((_a = data.auxCodeId) === null || _a === void 0 ? void 0 : _a.trim()) !== '' ? data.auxCodeId : DEFAULT_CODE
|
|
24
46
|
});
|
|
47
|
+
const startTime = data.lastStateChangeTimestamp;
|
|
25
48
|
setElapsedTime(0);
|
|
49
|
+
worker.postMessage({ type: 'reset', startTime }); // Reset the worker timer with the new start time
|
|
26
50
|
}
|
|
27
51
|
};
|
|
28
52
|
cc.on(constants_1.AGENT_STATE_CHANGE, handleStateChange);
|
|
29
|
-
// Cleanup the timer on component unmount
|
|
30
53
|
return () => {
|
|
31
|
-
|
|
32
|
-
timer = null;
|
|
54
|
+
worker.terminate();
|
|
33
55
|
cc.off(constants_1.AGENT_STATE_CHANGE, handleStateChange);
|
|
34
56
|
};
|
|
35
|
-
}, []);
|
|
57
|
+
}, [currentState]);
|
|
36
58
|
const setAgentStatus = (selectedCode) => {
|
|
37
59
|
const { auxCodeId, state } = {
|
|
38
60
|
auxCodeId: selectedCode.id,
|
|
@@ -42,13 +64,12 @@ const useUserState = ({ idleCodes, agentId, cc }) => {
|
|
|
42
64
|
let oldState = Object.assign({}, currentState);
|
|
43
65
|
setCurrentState(selectedCode);
|
|
44
66
|
const chosenState = state === 'Available' ? 'Available' : 'Idle';
|
|
45
|
-
cc.setAgentState({ state: chosenState, auxCodeId, agentId, lastStateChangeReason: state })
|
|
46
|
-
|
|
47
|
-
setElapsedTime(0);
|
|
48
|
-
}).catch(error => {
|
|
67
|
+
cc.setAgentState({ state: chosenState, auxCodeId, agentId, lastStateChangeReason: state })
|
|
68
|
+
.catch((error) => {
|
|
49
69
|
setCurrentState(oldState);
|
|
50
70
|
setErrorMessage(error.toString());
|
|
51
|
-
})
|
|
71
|
+
})
|
|
72
|
+
.finally(() => {
|
|
52
73
|
setIsSettingAgentStatus(false);
|
|
53
74
|
});
|
|
54
75
|
};
|
package/dist/helper.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":";;;AAAA,iCAA4C;AAC5C,kEAAkE;AAClE,2CAAiD;AAE1C,MAAM,YAAY,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE;IACzD,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACxE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC;IAClD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;IACrD,IAAI,MAAM,CAAC;IAEX,yCAAyC;IACzC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;GAiBpB,CAAC;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;QAE/B,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,CAAC,SAAS,GAAG,CAAC,KAAK,EAAE,EAAE;YAC3B,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE,EAAE;;YACjC,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,yBAAyB,EAAE,CAAC;gBAChF,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,2CAA2C;gBACrE,eAAe,CAAC;oBACd,EAAE,EAAE,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,IAAI,EAAE,MAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY;iBAClE,CAAC,CAAC;gBAEH,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC;gBAChD,cAAc,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,iDAAiD;YACrG,CAAC;QACH,CAAC,CAAC;QAEF,EAAE,CAAC,EAAE,CAAC,8BAAkB,EAAE,iBAAiB,CAAC,CAAC;QAE7C,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,EAAE,CAAC,GAAG,CAAC,8BAAkB,EAAE,iBAAiB,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,MAAM,cAAc,GAAG,CAAC,YAAY,EAAE,EAAE;QACtC,MAAM,EACJ,SAAS,EACT,KAAK,EACN,GAAG;YACF,SAAS,EAAE,YAAY,CAAC,EAAE;YAC1B,KAAK,EAAE,YAAY,CAAC,IAAI;SACzB,CAAA;QACD,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,QAAQ,qBACP,YAAY,CAChB,CAAC;QACF,eAAe,CAAC,YAAY,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,KAAK,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC;QACjE,EAAE,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC;aACvF,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACf,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC1B,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpC,CAAC,CAAC;aACD,OAAO,CAAC,GAAG,EAAE;YACZ,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF,OAAO;QACL,SAAS;QACT,cAAc;QACd,oBAAoB;QACpB,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,eAAe;KAChB,CAAC;AACJ,CAAC,CAAC;AA3FW,QAAA,YAAY,gBA2FvB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webex/cc-user-state",
|
|
3
3
|
"description": "Webex Contact Center Widgets: User State",
|
|
4
|
-
"version": "1.28.0-ccwidgets.
|
|
4
|
+
"version": "1.28.0-ccwidgets.7",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"test:unit": "jest"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@webex/cc-store": "1.28.0-ccwidgets.
|
|
20
|
+
"@webex/cc-store": "1.28.0-ccwidgets.7",
|
|
21
21
|
"mobx-react": "9.1.1",
|
|
22
22
|
"react": "18.3.1",
|
|
23
23
|
"react-dom": "18.3.1",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
],
|
|
52
52
|
"verbose": true
|
|
53
53
|
},
|
|
54
|
-
"stableVersion": "1.28.0-ccwidgets.
|
|
54
|
+
"stableVersion": "1.28.0-ccwidgets.6"
|
|
55
55
|
}
|