blob: 48770bab3217a2ea3fb4a7a4dd4501a400dfb0ae [file] [log] [blame]
Larbi Gharibe9af9732021-03-31 15:08:01 +01001import React from 'react'
Adrien Béraud8a438f82021-04-14 16:18:57 -04002import { makeStyles } from '@material-ui/core/styles'
3import { IconButton, InputBase, Paper, Popper } from '@material-ui/core'
Adrien Béraude74741b2021-04-19 13:22:54 -04004import { Send, EmojiEmotionsRounded } from '@material-ui/icons'
Adrien Béraud8a438f82021-04-14 16:18:57 -04005import EmojiPicker from 'emoji-picker-react'
Larbi Gharibe9af9732021-03-31 15:08:01 +01006
Adrien Béraud35e7d7c2021-04-13 03:28:39 -04007const useStyles = makeStyles((theme) => ({
Adrien Béraud8a438f82021-04-14 16:18:57 -04008 root: {
9 margin: 16,
10 padding: '2px 4px',
11 display: 'flex',
12 alignItems: 'center',
13 borderRadius: 8
14 },
15 input: {
16 marginLeft: theme.spacing(1),
17 flex: 1,
18 },
19 iconButton: {
20 padding: 10,
21 },
22 divider: {
23 height: 28,
24 margin: 4,
25 },
26}));
Larbi Gharibe9af9732021-03-31 15:08:01 +010027
Adrien Béraud8a438f82021-04-14 16:18:57 -040028export default function SendMessageForm(props) {
29 const classes = useStyles()
30 const [anchorEl, setAnchorEl] = React.useState(null)
31 const [currentMessage, setCurrentMessage] = React.useState("")
Adrien Béraud35e7d7c2021-04-13 03:28:39 -040032
Adrien Béraud8a438f82021-04-14 16:18:57 -040033 const handleOpenEmojiPicker = e => {
34 setAnchorEl(anchorEl ? null : e.currentTarget)
35 }
36 const handleClose = () => {
37 setAnchorEl(null)
38 }
39 const handleSubmit = e => {
40 e.preventDefault()
41 }
42 const handleInputChange = (event) => {
43 setCurrentMessage(event.target.value);
44 };
45 const onEmojiClick = (e, emojiObject) => {
46 console.log(emojiObject.emoji)
47 setCurrentMessage(currentMessage + emojiObject.emoji)
48 handleClose()
49 }
50 const open = Boolean(anchorEl)
51 const id = open ? 'simple-popover' : undefined
Larbi Gharibe9af9732021-03-31 15:08:01 +010052
Adrien Béraud8a438f82021-04-14 16:18:57 -040053 return (
54 <div className="send-message-form">
55 <Paper component="form"
56 onSubmit={handleSubmit}
57 className="send-message-card"
58 className={classes.root}>
59 <IconButton aria-describedby={id} variant="contained" color="primary" onClick={handleOpenEmojiPicker}>
Adrien Béraude74741b2021-04-19 13:22:54 -040060 <EmojiEmotionsRounded />
Adrien Béraud8a438f82021-04-14 16:18:57 -040061 </IconButton>
62 <Popper
63 id={id}
64 open={open}
65 anchorEl={anchorEl}
66 onClose={handleClose}
67 >
Adrien Béraude74741b2021-04-19 13:22:54 -040068 <EmojiPicker.default
Adrien Béraud8a438f82021-04-14 16:18:57 -040069 onEmojiClick={onEmojiClick}
70 disableAutoFocus={true}
71 disableSkinTonePicker={true}
72 native
73 />
74 </Popper>
75
76 <InputBase
77 className={classes.input}
78 placeholder="Write something nice"
79 height="35"
80 value={currentMessage}
81 onChange={handleInputChange}
82 />
83 <IconButton type="submit" className={classes.iconButton} aria-label="search">
Adrien Béraude74741b2021-04-19 13:22:54 -040084 <Send />
Adrien Béraud8a438f82021-04-14 16:18:57 -040085 </IconButton>
86 </Paper>
87 </div>
88 )
Larbi Gharibe9af9732021-03-31 15:08:01 +010089}