Autoría | Ultima modificación | Ver Log |
import React, { useRef, useState } from 'react';
import { useDispatch } from 'react-redux';
import { axios, scrollToBottom } from '@utils';
import { useMessages } from '@hooks';
import { addNotification } from '@store/notification/notification.actions';
import Chat from '@components/chat/Chat';
import MessagesList from './MessageList0';
import ConfirmModal from '@components/modals/ConfirmModal';
import Options from '@components/UI/Option';
const InmailChat = ({ conversation, changeConversation }) => {
const [isShowConfirm, setIsShowConfirm] = useState(false);
const messagesList = useRef(null);
const dispatch = useDispatch();
const { messages, loadMore, loading, report } = useMessages(conversation?.messages_link);
const deleteConversation = () => {
axios.post(conversation.delete_link).then((response) => {
const { success, data } = response.data;
if (!success) {
dispatch(addNotification({ style: 'danger', msg: data }));
return;
}
dispatch(addNotification({ style: 'success', msg: data }));
toggleConfirmModal();
changeConversation(null);
});
};
const toggleConfirmModal = () => {
setIsShowConfirm(!isShowConfirm);
};
return (
<>
<Chat>
<Chat.Header onClose={() => changeConversation(null)}>
<Chat.Title url={conversation.profile}>{conversation.name}</Chat.Title>
<Options>
{conversation.delete_link && (
<Options.Item onClick={toggleConfirmModal}>Borrar convesación</Options.Item>
)}
</Options>
</Chat.Header>
<MessagesList
messages={messages}
onReport={report}
onPagination={loadMore}
loading={loading}
scrollRef={messagesList}
/>
<Chat.SubmitForm
sendUrl={conversation.send_link}
uploadUrl={conversation.send_link}
onSubmit={() => scrollToBottom(messagesList)}
/>
</Chat>
<ConfirmModal
show={isShowConfirm}
onClose={toggleConfirmModal}
onAccept={deleteConversation}
/>
</>
);
};
export default InmailChat;