MessageForm.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import TextareaAutosize from '@mui/material/TextareaAutosize';
  2. import Button from '@mui/material/Button';
  3. import { useState } from 'react';
  4. import Box from '@mui/material/Box';
  5. export const MessageForm = ({sendMessage, data}) => {
  6. const [message, setMessage] = useState({message: ''});
  7. return (
  8. <Box
  9. component="form"
  10. onSubmit = {(e) =>
  11. {
  12. e.preventDefault()
  13. sendMessage(message);
  14. setMessage({message: ''});
  15. }}
  16. sx={{
  17. display: 'flex',
  18. margin: '20px 5px'
  19. }}>
  20. <TextareaAutosize
  21. id="outlined-basic"
  22. label="Type a message..."
  23. variant="outlined"
  24. value={message.message}
  25. placeholder='type you message...'
  26. minRows={3}
  27. maxRows={4}
  28. onKeyPress={(e) => {
  29. if (e.key === "Enter") {
  30. e.preventDefault();
  31. sendMessage(message);
  32. setMessage({message: ''});
  33. }
  34. }}
  35. onChange={e => setMessage({...message, message: e.target.value})}
  36. style={{
  37. width: '80%',
  38. resize: 'none',
  39. borderRadius: '4px',
  40. }}
  41. />
  42. <Button
  43. variant="contained"
  44. type='submit'
  45. disabled={data.isMutted}
  46. style={{
  47. width: '20%',
  48. }}
  49. >Send</Button>
  50. </Box>
  51. )
  52. }