@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 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
- // Reset the timer whenever the component mounts or the state changes
14
- setElapsedTime(0);
15
- let timer = setInterval(() => {
16
- setElapsedTime(prevTime => prevTime + 1);
17
- }, 1000);
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
- clearInterval(timer);
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 }).then((response) => {
46
- setErrorMessage('');
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
- }).finally(() => {
71
+ })
72
+ .finally(() => {
52
73
  setIsSettingAgentStatus(false);
53
74
  });
54
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../src/helper.ts"],"names":[],"mappings":"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"}
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.6",
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.6",
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.5"
54
+ "stableVersion": "1.28.0-ccwidgets.6"
55
55
  }