From 9f61f611b16a9c0a5e13c5652f8e2711df2ea193 Mon Sep 17 00:00:00 2001 From: Martin Schoeler Date: Tue, 4 May 2021 17:42:16 -0300 Subject: [PATCH] [FIX] When closing chats a comment is always required (#21947) --- .../Omnichannel/modals/CloseChatModal.js | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/client/components/Omnichannel/modals/CloseChatModal.js b/client/components/Omnichannel/modals/CloseChatModal.js index baee486cc9b..6543414603b 100644 --- a/client/components/Omnichannel/modals/CloseChatModal.js +++ b/client/components/Omnichannel/modals/CloseChatModal.js @@ -2,6 +2,7 @@ import { Field, Button, TextInput, Icon, ButtonGroup, Modal, Box } from '@rocket import { useAutoFocus } from '@rocket.chat/fuselage-hooks'; import React, { useCallback, useState, useMemo, useEffect } from 'react'; +import { useSetting } from '../../../contexts/SettingsContext'; import { useTranslation } from '../../../contexts/TranslationContext'; import { useComponentDidUpdate } from '../../../hooks/useComponentDidUpdate'; import { useForm } from '../../../hooks/useForm'; @@ -14,6 +15,8 @@ const CloseChatModal = ({ department = {}, onCancel, onConfirm }) => { const { values, handlers } = useForm({ comment: '', tags: [] }); + const commentRequired = useSetting('Livechat_request_comment_when_closing_conversation'); + const { comment, tags } = values; const { handleComment, handleTags } = handlers; const [commentError, setCommentError] = useState(''); @@ -25,14 +28,14 @@ const CloseChatModal = ({ department = {}, onCancel, onConfirm }) => { }, [comment, onConfirm, tags]); useComponentDidUpdate(() => { - setCommentError(!comment ? t('The_field_is_required', t('Comment')) : ''); - }, [t, comment]); + setCommentError(!comment && commentRequired ? t('The_field_is_required', t('Comment')) : ''); + }, [commentRequired, comment, t]); - const canConfirm = useMemo(() => (!tagRequired ? !!comment : !!comment && tags.length > 0), [ - comment, - tagRequired, - tags, - ]); + const canConfirm = useMemo(() => { + const canConfirmTag = !tagError && (tagRequired ? tags.length > 0 : true); + const canConfirmComment = !commentError && (commentRequired ? !!comment : true); + return canConfirmTag && canConfirmComment; + }, [comment, commentError, commentRequired, tagError, tagRequired, tags.length]); useEffect(() => { department?.requestTagBeforeClosingChat && setTagRequired(true); @@ -53,7 +56,7 @@ const CloseChatModal = ({ department = {}, onCancel, onConfirm }) => { {t('Close_room_description')} - {t('Comment')}* + {t('Comment')}