Rev 3719 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState } from 'react';import { Box, IconButton } from '@mui/material';import { AttachFile, EmojiEmotions, SendRounded } from '@mui/icons-material';import EmojiPicker from 'emoji-picker-react';import { useModal } from '@shared/hooks';import { FileModal, Input, Menu } from '@shared/components';export const ChatForm = ({ onSubmit }) => {const [message, setMessage] = useState('');const [file, setFile] = useState(null);const { showModal, closeModal } = useModal();const handleInputChange = ({ target }) => {setMessage(target.value);};const onEmojiClick = (emojiObject) => {setMessage((prevInput) => prevInput + emojiObject.emoji);};const attachFile = () => {showModal('Elegir archivo',<FileModalonSubmit={(data) => {setFile(data.file[0]);closeModal();}}/>);};const handleSubmit = () => {if (!message.trim()) return;onSubmit({ message, file });setMessage('');setFile(null);};const handleKeyDown = (e) => {if (e.key === 'Enter') {handleSubmit();}};return (<Box style={{ display: 'flex', alignItems: 'center', gap: 1, width: '100%' }}><Menu icon={<EmojiEmotions />}><Menu.Item><EmojiPicker onEmojiClick={onEmojiClick} /></Menu.Item></Menu><IconButton onClick={attachFile}><AttachFile /></IconButton><Inputname='message'placeholder='Escribe un mensaje'onChange={handleInputChange}value={message}onKeyDown={handleKeyDown}endAdornment={<IconButton type='submit' sx={{ padding: 0.4 }} onClick={handleSubmit}><SendRounded /></IconButton>}/></Box>);};