Rev 2772 | Rev 2984 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useRef, useState } from 'react'import FileModal from '../../mobile-chat/mobile-chat/chat/fileModal/FileModal';import { axios } from '../../utils';import styles from "../../mobile-chat/mobile-chat/chat/chat.module.scss";import { addNotification } from '../../redux/notification/notification.actions';import { useDispatch } from 'react-redux';const permittedFiles = "video/mp4, video/mpeg, video/webm, application/pdf, image/jpeg, image/png, image/jpg";const MessageBox = ({ onSend, backendVars, sendLink }) => {const fileInputEl = useRef(null);const [text, setText] = useState('')const [selectedFile, setSelectedFile] = useState("");const dispatch = useDispatch()const handleUploadFile = (e) => {const file = e.target.files[0];if (file) {setSelectedFile(file);}};const removeSelectedFile = () => {setSelectedFile("");};const handleSendFile = () => {const formData = new FormData();formData.append("file", selectedFile);axios.post(sendLink, formData).then(({ data }) => {if (!data.success) {return dispatch(addNotification({style: "danger",msg: "Ha ocurrido un error"}))}setSelectedFile("");setShowEmojione(false);});};return (<div className="message-send-area border-gray border-radius"><form id="form-send-message" name="form-send-message"onSubmit={e => {e.preventDefault()onSend(text)setText('')}}><div className="mf-field"><inputtype="file"name="file"id="file"ref={(e) => {fileInputEl.current = e;}}accept={permittedFiles}hiddenonChange={handleUploadFile}/><buttontype="button"className={`${styles.inputIcon} ti-clip icon uploadFile text-gray`}id="uploadFile"onClick={() => fileInputEl.current.click()}/><inputtype="text"name="message"id="message"className="border-radius"value={text}placeholder={backendVars.labelWriteMessage}onChange={e => setText(e.target.value || '')}/><button type="submit" className="btn btn-secondary p-1 inmail-submit-btn "><i class="fas fa-chevron-right"></i></button></div></form>{selectedFile&&<FileModalfile={selectedFile}onCancel={removeSelectedFile}onSend={handleSendFile}/>}</div>)}export default MessageBox