blob: d46883ce759a16cffae90f0e469eaf757f45aab4 [file] [log] [blame]
import { useState, useCallback } from 'react';
import { Divider, InputBase } from '@mui/material';
import {
RecordVideoMessageButton,
RecordVoiceMessageButton,
SelectEmojiButton,
SendMessageButton,
UploadFileButton,
} from './buttons';
import { Stack } from '@mui/system';
export default function SendMessageForm(props) {
const [currentMessage, setCurrentMessage] = useState('');
const handleSubmit = (e) => {
e.preventDefault();
if (currentMessage) {
props.onSend(currentMessage);
setCurrentMessage('');
}
};
const handleInputChange = (event) => setCurrentMessage(event.target.value);
const onEmojiSelected = useCallback(
(emoji) => setCurrentMessage((currentMessage) => currentMessage + emoji),
[setCurrentMessage]
);
return (
<Stack padding="30px 16px 0px 16px">
<Divider
sx={{
bordeTop: '1px solid #E5E5E5',
}}
/>
<Stack
component="form"
onSubmit={handleSubmit}
direction="row"
alignItems="center"
flexGrow={1}
spacing="20px"
padding="16px 0px"
>
<UploadFileButton />
<RecordVoiceMessageButton />
<RecordVideoMessageButton />
<Stack flexGrow={1}>
<InputBase
placeholder="Write something nice"
value={currentMessage}
onChange={handleInputChange}
sx={{
fontSize: '15px',
color: 'black',
'& ::placeholder': {
color: '#7E7E7E',
opacity: 1,
},
}}
/>
</Stack>
<SelectEmojiButton onEmojiSelected={onEmojiSelected} />
{currentMessage && <SendMessageButton type="submit" />}
</Stack>
</Stack>
);
}