Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/rude-llamas-pay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@rocket.chat/livechat": patch
---

Fixes Livechat conversation not closing in a few scenarios due to cross-tab interference
7 changes: 1 addition & 6 deletions packages/livechat/src/lib/room.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,7 @@ export const closeChat = async ({ transcriptRequested } = {}) => {
await handleTranscript();
}

const { room, department, config: { settings: { clearLocalStorageWhenChatEnded } = {} } = {} } = store.state;

if (!room) {
console.warn('closeChat called without a room');
return;
}
const { department, config: { settings: { clearLocalStorageWhenChatEnded } = {} } = {} } = store.state;

await store.setState({ room: null, renderedTriggers: [] });

Expand Down
5 changes: 2 additions & 3 deletions packages/livechat/src/routes/Chat/container.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { Component } from 'preact';
import { route } from 'preact-router';
import { withTranslation } from 'react-i18next';

import Chat from './component';
import { Livechat } from '../../api';
import { ModalManager } from '../../components/Modal';
import { getAvatarUrl } from '../../helpers/baseUrl';
Expand All @@ -22,9 +23,8 @@ import constants from '../../lib/constants';
import { getLastReadMessage, loadConfig, processUnread, shouldMarkAsUnread } from '../../lib/main';
import { parentCall, runCallbackEventEmitter } from '../../lib/parentCall';
import { createToken } from '../../lib/random';
import { initRoom, closeChat, loadMessages, loadMoreMessages, defaultRoomParams, getGreetingMessages } from '../../lib/room';
import { initRoom, loadMessages, loadMoreMessages, defaultRoomParams, getGreetingMessages } from '../../lib/room';
import store from '../../store';
import Chat from './component';

const ChatWrapper = ({ children, rid }) => {
useRoomMessagesSubscription(rid);
Expand Down Expand Up @@ -254,7 +254,6 @@ class ChatContainer extends Component {
await dispatch({ alerts: (alerts.push(alert), alerts) });
} finally {
await dispatch({ loading: false });
await closeChat();
}
};

Expand Down
Loading