blob: d46883ce759a16cffae90f0e469eaf757f45aab4 [file] [log] [blame]
simond47ef9e2022-09-28 22:24:28 -04001import { useState, useCallback } from 'react';
2import { Divider, InputBase } from '@mui/material';
3import {
4 RecordVideoMessageButton,
5 RecordVoiceMessageButton,
6 SelectEmojiButton,
7 SendMessageButton,
8 UploadFileButton,
9} from './buttons';
idillonaedab942022-09-01 14:29:43 -040010import { Stack } from '@mui/system';
Larbi Gharibe9af9732021-03-31 15:08:01 +010011
Adrien Béraud8a438f82021-04-14 16:18:57 -040012export default function SendMessageForm(props) {
simond47ef9e2022-09-28 22:24:28 -040013 const [currentMessage, setCurrentMessage] = useState('');
Adrien Béraud35e7d7c2021-04-13 03:28:39 -040014
simond47ef9e2022-09-28 22:24:28 -040015 const handleSubmit = (e) => {
16 e.preventDefault();
Adrien Béraud88a52442021-04-26 12:11:41 -040017 if (currentMessage) {
simond47ef9e2022-09-28 22:24:28 -040018 props.onSend(currentMessage);
19 setCurrentMessage('');
Adrien Béraud88a52442021-04-26 12:11:41 -040020 }
simond47ef9e2022-09-28 22:24:28 -040021 };
22 const handleInputChange = (event) => setCurrentMessage(event.target.value);
idillonaedab942022-09-01 14:29:43 -040023
Adrien Béraud023f7cf2022-09-18 14:57:53 -040024 const onEmojiSelected = useCallback(
idillonaedab942022-09-01 14:29:43 -040025 (emoji) => setCurrentMessage((currentMessage) => currentMessage + emoji),
simond47ef9e2022-09-28 22:24:28 -040026 [setCurrentMessage]
27 );
Larbi Gharibe9af9732021-03-31 15:08:01 +010028
Adrien Béraud8a438f82021-04-14 16:18:57 -040029 return (
simond47ef9e2022-09-28 22:24:28 -040030 <Stack padding="30px 16px 0px 16px">
idillonaedab942022-09-01 14:29:43 -040031 <Divider
32 sx={{
simond47ef9e2022-09-28 22:24:28 -040033 bordeTop: '1px solid #E5E5E5',
idillonaedab942022-09-01 14:29:43 -040034 }}
35 />
36 <Stack
37 component="form"
Adrien Béraud8a438f82021-04-14 16:18:57 -040038 onSubmit={handleSubmit}
idillonaedab942022-09-01 14:29:43 -040039 direction="row"
40 alignItems="center"
41 flexGrow={1}
42 spacing="20px"
43 padding="16px 0px"
44 >
simond47ef9e2022-09-28 22:24:28 -040045 <UploadFileButton />
46 <RecordVoiceMessageButton />
47 <RecordVideoMessageButton />
Adrien Béraud8a438f82021-04-14 16:18:57 -040048
simond47ef9e2022-09-28 22:24:28 -040049 <Stack flexGrow={1}>
idillonaedab942022-09-01 14:29:43 -040050 <InputBase
51 placeholder="Write something nice"
52 value={currentMessage}
53 onChange={handleInputChange}
54 sx={{
simond47ef9e2022-09-28 22:24:28 -040055 fontSize: '15px',
56 color: 'black',
57 '& ::placeholder': {
58 color: '#7E7E7E',
idillonaedab942022-09-01 14:29:43 -040059 opacity: 1,
60 },
61 }}
62 />
63 </Stack>
simond47ef9e2022-09-28 22:24:28 -040064 <SelectEmojiButton onEmojiSelected={onEmojiSelected} />
65 {currentMessage && <SendMessageButton type="submit" />}
idillonaedab942022-09-01 14:29:43 -040066 </Stack>
67 </Stack>
Adrien Béraudab519ff2022-05-03 15:34:48 -040068 );
Larbi Gharibe9af9732021-03-31 15:08:01 +010069}