From 52d455e902f259dd8063239b8494c2117ab2ef28 Mon Sep 17 00:00:00 2001 From: Martin Date: Thu, 5 May 2022 09:36:43 -0300 Subject: [PATCH 1/3] [FIX] One of the triggers was not working correctly --- packages/livechat/src/components/App/App.js | 1 + packages/livechat/src/lib/triggers.js | 25 ++++++++----------- .../src/routes/TriggerMessage/container.js | 5 ++-- 3 files changed, 15 insertions(+), 16 deletions(-) diff --git a/packages/livechat/src/components/App/App.js b/packages/livechat/src/components/App/App.js index f1893bee6c20..e2161042b07b 100644 --- a/packages/livechat/src/components/App/App.js +++ b/packages/livechat/src/components/App/App.js @@ -117,6 +117,7 @@ export class App extends Component { } else { dispatchRestore(); } + Triggers.callbacks.emit('chat-opened-by-visitor'); } handleOpenWindow = () => { diff --git a/packages/livechat/src/lib/triggers.js b/packages/livechat/src/lib/triggers.js index 0df433e6ba35..98c1bf9e65ab 100644 --- a/packages/livechat/src/lib/triggers.js +++ b/packages/livechat/src/lib/triggers.js @@ -1,3 +1,4 @@ +import mitt from 'mitt'; import { route } from 'preact-router'; import { Livechat } from '../api'; @@ -59,6 +60,7 @@ class Triggers { this._triggers = []; this._enabled = true; Triggers.instance = this; + this.callbacks = mitt(); } return Triggers.instance; @@ -89,8 +91,8 @@ class Triggers { } async fire(trigger) { - const { token, firedTriggers = [] } = store.state; - if (!this._enabled) { + const { token, firedTriggers = [], user } = store.state; + if (!this._enabled || user) { return; } const { actions } = trigger; @@ -121,7 +123,10 @@ class Triggers { parentCall('callback', ['assign-agent', normalizeAgent(agent)]); } - route('/trigger-messages'); + const foundCondition = trigger.conditions.find((c) => c.name === 'chat-opened-by-visitor'); + if (!foundCondition) { + route('/trigger-messages'); + } store.setState({ minimized: false }); }); } @@ -136,11 +141,6 @@ class Triggers { processRequest(request) { this._requests.push(request); - if (!this._started) { - return; - } - - this.processTriggers(); } processTriggers() { @@ -163,13 +163,10 @@ class Triggers { break; case 'chat-opened-by-visitor': const openFunc = () => { - const { user } = store.state; - if (user) { - store.off('change', openFunc); - this.fire(trigger); - } + this.fire(trigger); + this.callbacks.off('chat-opened-by-visitor', openFunc); }; - store.on('change', openFunc); + this.callbacks.on('chat-opened-by-visitor', openFunc); break; } }); diff --git a/packages/livechat/src/routes/TriggerMessage/container.js b/packages/livechat/src/routes/TriggerMessage/container.js index 40765f87cc1a..e46f7fd2fa89 100644 --- a/packages/livechat/src/routes/TriggerMessage/container.js +++ b/packages/livechat/src/routes/TriggerMessage/container.js @@ -8,15 +8,16 @@ import TriggerMessage from './component'; export class TriggerMessageContainer extends Component { - handleStart() { + handleStart(props) { parentCall('setFullScreenDocumentMobile'); parentCall('openWidget'); + props.onRestore(); route('/'); } render = (props) => { parentCall('resetDocumentStyle'); - return ; + return this.handleStart(props)} {...props} />; } } From 82f48cb637ebb31e4d1ee249b1338cc6d95662cb Mon Sep 17 00:00:00 2001 From: Tiago Evangelista Pinto Date: Wed, 18 May 2022 15:02:12 -0300 Subject: [PATCH 2/3] fix html iteration --- packages/livechat/src/routes/TriggerMessage/component.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/livechat/src/routes/TriggerMessage/component.js b/packages/livechat/src/routes/TriggerMessage/component.js index a9906bc8c8f7..ba4d81f64a0b 100644 --- a/packages/livechat/src/routes/TriggerMessage/component.js +++ b/packages/livechat/src/routes/TriggerMessage/component.js @@ -18,9 +18,9 @@ class TriggerMessage extends Component { componentDidUpdate() { let height = 0; - this.ref.current.base.children.forEach((el) => { + for (const el of this.ref.current.base.children) { height += el.scrollHeight; - }); + }; parentCall('resizeWidget', height); } From 566b90bf474a9cc12ea83ef5d2c1f4350b2b626b Mon Sep 17 00:00:00 2001 From: Tiago Evangelista Pinto Date: Wed, 18 May 2022 15:30:25 -0300 Subject: [PATCH 3/3] eslint fix --- packages/livechat/src/routes/TriggerMessage/component.js | 2 +- packages/livechat/tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/livechat/src/routes/TriggerMessage/component.js b/packages/livechat/src/routes/TriggerMessage/component.js index ba4d81f64a0b..41f18db445f3 100644 --- a/packages/livechat/src/routes/TriggerMessage/component.js +++ b/packages/livechat/src/routes/TriggerMessage/component.js @@ -20,7 +20,7 @@ class TriggerMessage extends Component { for (const el of this.ref.current.base.children) { height += el.scrollHeight; - }; + } parentCall('resizeWidget', height); } diff --git a/packages/livechat/tsconfig.json b/packages/livechat/tsconfig.json index 2d0a2cf459aa..286861613866 100644 --- a/packages/livechat/tsconfig.json +++ b/packages/livechat/tsconfig.json @@ -11,6 +11,6 @@ }, "exclude": [ "./node_modules", - "./build" + "./dist" ] }