import { LoadingOutlined, SendOutlined } from "@ant-design/icons"; import { Input, Spin } from "antd"; import React, { useEffect, useRef, useState } from "react"; import { useTranslation } from "react-i18next"; import { connect } from "react-redux"; import { createStructuredSelector } from "reselect"; import { logImEXEvent } from "../../firebase/firebase.utils"; import { sendMessage, setMessage, } from "../../redux/messaging/messaging.actions"; import { selectIsSending, selectMessage, } from "../../redux/messaging/messaging.selectors"; import { selectBodyshop } from "../../redux/user/user.selectors"; import ChatMediaSelector from "../chat-media-selector/chat-media-selector.component"; import ChatPresetsComponent from "../chat-presets/chat-presets.component"; const mapStateToProps = createStructuredSelector({ bodyshop: selectBodyshop, isSending: selectIsSending, message: selectMessage, }); const mapDispatchToProps = (dispatch) => ({ sendMessage: (message) => dispatch(sendMessage(message)), setMessage: (message) => dispatch(setMessage(message)), }); function ChatSendMessageComponent({ conversation, bodyshop, sendMessage, isSending, message, setMessage, }) { const inputArea = useRef(null); const [selectedMedia, setSelectedMedia] = useState([]); useEffect(() => { inputArea.current.focus(); }, [isSending, setMessage]); const { t } = useTranslation(); const handleEnter = () => { const selectedImages = selectedMedia.filter((i) => i.isSelected); if ((message === "" || !message) && selectedImages.length === 0) return; logImEXEvent("messaging_send_message"); if (selectedImages.length < 11) { sendMessage({ to: conversation.phone_num, body: message || "", messagingServiceSid: bodyshop.messagingservicesid, conversationid: conversation.id, selectedMedia: selectedImages, imexshopid: bodyshop.imexshopid, }); setSelectedMedia( selectedMedia.map((i) => { return { ...i, isSelected: false }; }) ); } }; return (