blob: df520ffff5136343a9abdc87153aa1bf722d4d82 [file] [log] [blame]
Adrien Béraud023f7cf2022-09-18 14:57:53 -04001import { useState, useCallback } from 'react'
idillonaedab942022-09-01 14:29:43 -04002import { Divider, InputBase } from '@mui/material'
3import { RecordVideoMessageButton, RecordVoiceMessageButton, SelectEmojiButton, SendMessageButton, UploadFileButton } from './buttons';
4import { Stack } from '@mui/system';
Larbi Gharibe9af9732021-03-31 15:08:01 +01005
Adrien Béraud8a438f82021-04-14 16:18:57 -04006export default function SendMessageForm(props) {
Adrien Béraud023f7cf2022-09-18 14:57:53 -04007 const [currentMessage, setCurrentMessage] = useState("")
Adrien Béraud35e7d7c2021-04-13 03:28:39 -04008
Adrien Béraud8a438f82021-04-14 16:18:57 -04009 const handleSubmit = e => {
10 e.preventDefault()
Adrien Béraud88a52442021-04-26 12:11:41 -040011 if (currentMessage) {
12 props.onSend(currentMessage)
13 setCurrentMessage('')
14 }
Adrien Béraud8a438f82021-04-14 16:18:57 -040015 }
Adrien Béraud5e9e19b2021-04-22 01:38:53 -040016 const handleInputChange = (event) => setCurrentMessage(event.target.value)
idillonaedab942022-09-01 14:29:43 -040017
Adrien Béraud023f7cf2022-09-18 14:57:53 -040018 const onEmojiSelected = useCallback(
idillonaedab942022-09-01 14:29:43 -040019 (emoji) => setCurrentMessage((currentMessage) => currentMessage + emoji),
20 [setCurrentMessage],
21 )
Larbi Gharibe9af9732021-03-31 15:08:01 +010022
Adrien Béraud8a438f82021-04-14 16:18:57 -040023 return (
idillonaedab942022-09-01 14:29:43 -040024 <Stack
25 padding="30px 16px 0px 16px"
26 >
27 <Divider
28 sx={{
29 bordeTop: "1px solid #E5E5E5",
30 }}
31 />
32 <Stack
33 component="form"
Adrien Béraud8a438f82021-04-14 16:18:57 -040034 onSubmit={handleSubmit}
idillonaedab942022-09-01 14:29:43 -040035 direction="row"
36 alignItems="center"
37 flexGrow={1}
38 spacing="20px"
39 padding="16px 0px"
40 >
41 <UploadFileButton/>
42 <RecordVoiceMessageButton/>
43 <RecordVideoMessageButton/>
Adrien Béraud8a438f82021-04-14 16:18:57 -040044
idillonaedab942022-09-01 14:29:43 -040045 <Stack
46 flexGrow={1}
47 >
48 <InputBase
49 placeholder="Write something nice"
50 value={currentMessage}
51 onChange={handleInputChange}
52 sx={{
53 fontSize: "15px",
54 color: "black",
55 "& ::placeholder": {
56 color: "#7E7E7E",
57 opacity: 1,
58 },
59 }}
60 />
61 </Stack>
62 <SelectEmojiButton
63 onEmojiSelected={onEmojiSelected}
Adrien Béraud8a438f82021-04-14 16:18:57 -040064 />
idillonaedab942022-09-01 14:29:43 -040065 { currentMessage && <SendMessageButton type="submit"/> }
66 </Stack>
67 </Stack>
Adrien Béraudab519ff2022-05-03 15:34:48 -040068 );
Larbi Gharibe9af9732021-03-31 15:08:01 +010069}