MessageForm.js 2.4 KB

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