Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
tiagoevanp committed Sep 9, 2022
1 parent 19be3b1 commit 0784c2f
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 58 deletions.
12 changes: 6 additions & 6 deletions packages/livechat/src/lib/room.js
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,12 @@ Livechat.onMessage(async (message) => {
message = transformAgentInformationOnMessage(message);

await store.setState({
messages: upsert(store.state.messages, message, ({ _id }) => _id === message._id, ({ ts }) => ts),
messages: upsert(
store.state.messages,
message,
({ _id }) => _id === message._id,
({ ts }) => ts,
),
});

await processMessage(message);
Expand Down Expand Up @@ -248,11 +253,6 @@ export const loadMessages = async () => {
await initRoom();
await store.setState({ messages: (messages || []).reverse(), noMoreMessages: false, loading: false });

if (messages && messages.length) {
const lastMessage = messages[messages.length - 1];
await store.setState({ lastReadMessageId: lastMessage && lastMessage._id });
}

if (ongoingCall && isCallOngoing(ongoingCall.callStatus)) {
return;
}
Expand Down
111 changes: 59 additions & 52 deletions packages/livechat/src/routes/Chat/container.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { ModalManager } from '../../components/Modal';
import { debounce, getAvatarUrl, canRenderMessage, throttle, upsert } from '../../components/helpers';
import { normalizeQueueAlert } from '../../lib/api';
import constants from '../../lib/constants';
import { loadConfig } from '../../lib/main';
import { loadConfig, processUnread } from '../../lib/main';
import { parentCall, runCallbackEventEmitter } from '../../lib/parentCall';
import { createToken } from '../../lib/random';
import { initRoom, closeChat, loadMessages, loadMoreMessages, defaultRoomParams, getGreetingMessages } from '../../lib/room';
Expand Down Expand Up @@ -79,8 +79,15 @@ class ChatContainer extends Component {
parentCall('callback', 'chat-started');
return newRoom;
} catch (error) {
const { data: { error: reason } } = error;
const alert = { id: createToken(), children: i18n.t('error_starting_a_new_conversation_reason', { reason }), error: true, timeout: 10000 };
const {
data: { error: reason },
} = error;
const alert = {
id: createToken(),
children: i18n.t('error_starting_a_new_conversation_reason', { reason }),
error: true,
timeout: 10000,
};
await dispatch({ loading: false, alerts: (alerts.push(alert), alerts) });

runCallbackEventEmitter(reason);
Expand Down Expand Up @@ -123,10 +130,7 @@ class ChatContainer extends Component {

try {
this.stopTypingDebounced.stop();
await Promise.all([
this.stopTyping({ rid, username: user.username }),
Livechat.sendMessage({ msg, token, rid }),
]);
await Promise.all([this.stopTyping({ rid, username: user.username }), Livechat.sendMessage({ msg, token, rid })]);
} catch (error) {
const reason = error?.data?.error ?? error.message;
const alert = { id: createToken(), children: reason, error: true, timeout: 5000 };
Expand All @@ -141,7 +145,9 @@ class ChatContainer extends Component {
try {
await Livechat.uploadFile({ rid, file });
} catch (error) {
const { data: { reason, sizeAllowed } } = error;
const {
data: { reason, sizeAllowed },
} = error;

let message = i18n.t('fileupload_error');
switch (reason) {
Expand Down Expand Up @@ -234,7 +240,7 @@ class ChatContainer extends Component {

canFinishChat = () => {
const { room, connecting } = this.props;
return (room !== undefined) || connecting;
return room !== undefined || connecting;
};

canRemoveUserData = () => {
Expand All @@ -243,13 +249,7 @@ class ChatContainer extends Component {
};

registrationRequired = () => {
const {
registrationFormEnabled,
nameFieldRegistrationForm,
emailFieldRegistrationForm,
departments = [],
user,
} = this.props;
const { registrationFormEnabled, nameFieldRegistrationForm, emailFieldRegistrationForm, departments = [], user } = this.props;

if (user && user.token) {
return false;
Expand All @@ -265,9 +265,7 @@ class ChatContainer extends Component {

onRegisterUser = () => route('/register');

showOptionsMenu = () =>
this.canSwitchDepartment() || this.canFinishChat() || this.canRemoveUserData();

showOptionsMenu = () => this.canSwitchDepartment() || this.canFinishChat() || this.canRemoveUserData();

async handleConnectingAgentAlert(connecting, message) {
const { alerts: oldAlerts, dispatch, i18n } = this.props;
Expand Down Expand Up @@ -306,13 +304,19 @@ class ChatContainer extends Component {
const ts = new Date();
const message = { _id: livechatQueueMessageId, msg, u, ts: ts.toISOString() };
await dispatch({
messages: upsert(messages, message, ({ _id }) => _id === message._id, ({ ts }) => ts),
messages: upsert(
messages,
message,
({ _id }) => _id === message._id,
({ ts }) => ts,
),
});
}

async componentDidMount() {
await this.checkConnectingAgent();
loadMessages();
await loadMessages();
processUnread();
}

async componentDidUpdate(prevProps) {
Expand All @@ -322,7 +326,10 @@ class ChatContainer extends Component {
if (messages && prevMessages && messages.length !== prevMessages.length && visible && !minimized) {
const nextLastMessage = messages[messages.length - 1];
const lastMessage = prevMessages[prevMessages.length - 1];
if ((nextLastMessage && lastMessage && nextLastMessage._id !== lastMessage._id) || (messages.length === 1 && prevMessages.length === 0)) {
if (
(nextLastMessage && lastMessage && nextLastMessage._id !== lastMessage._id) ||
(messages.length === 1 && prevMessages.length === 0)
) {
const newAlerts = prevAlerts.filter((item) => item.id !== constants.unreadMessagesAlertId);
dispatch({ alerts: newAlerts, unread: null, lastReadMessageId: nextLastMessage._id });
}
Expand Down Expand Up @@ -370,22 +377,12 @@ export const ChatConnector = ({ ref, t, ...props }) => (
emailFieldRegistrationForm,
limitTextLength,
} = {},
messages: {
conversationFinishedMessage,
} = {},
theme: {
color,
title,
} = {},
messages: { conversationFinishedMessage } = {},
theme: { color, title } = {},
departments = {},
},
iframe: {
theme: {
color: customColor,
fontColor: customFontColor,
iconColor: customIconColor,
title: customTitle,
} = {},
theme: { color: customColor, fontColor: customFontColor, iconColor: customIconColor, title: customTitle } = {},
guest,
} = {},
token,
Expand Down Expand Up @@ -420,18 +417,24 @@ export const ChatConnector = ({ ref, t, ...props }) => (
sound={sound}
token={token}
user={user}
agent={agent ? {
_id: agent._id,
name: agent.name,
status: agent.status,
email: agent.emails && agent.emails[0] && agent.emails[0].address,
username: agent.username,
phone: (agent.phone && agent.phone[0] && agent.phone[0].phoneNumber) || (agent.customFields && agent.customFields.phone),
avatar: agent.username ? {
description: agent.username,
src: getAvatarUrl(agent.username),
} : undefined,
} : undefined}
agent={
agent
? {
_id: agent._id,
name: agent.name,
status: agent.status,
email: agent.emails && agent.emails[0] && agent.emails[0].address,
username: agent.username,
phone: (agent.phone && agent.phone[0] && agent.phone[0].phoneNumber) || (agent.customFields && agent.customFields.phone),
avatar: agent.username
? {
description: agent.username,
src: getAvatarUrl(agent.username),
}
: undefined,
}
: undefined
}
room={room}
messages={messages && messages.filter((message) => canRenderMessage(message))}
noMoreMessages={noMoreMessages}
Expand All @@ -452,11 +455,15 @@ export const ChatConnector = ({ ref, t, ...props }) => (
lastReadMessageId={lastReadMessageId}
guest={guest}
triggerAgent={triggerAgent}
queueInfo={queueInfo ? {
spot: queueInfo.spot,
estimatedWaitTimeSeconds: queueInfo.estimatedWaitTimeSeconds,
message: queueInfo.message,
} : undefined}
queueInfo={
queueInfo
? {
spot: queueInfo.spot,
estimatedWaitTimeSeconds: queueInfo.estimatedWaitTimeSeconds,
message: queueInfo.message,
}
: undefined
}
registrationFormEnabled={registrationForm}
nameFieldRegistrationForm={nameFieldRegistrationForm}
emailFieldRegistrationForm={emailFieldRegistrationForm}
Expand Down

0 comments on commit 0784c2f

Please sign in to comment.