index.tsx 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import { makeStyles } from '@material-ui/core'
  2. import { useSelector } from 'react-redux';
  3. import ListItemText from '@mui/material/ListItemText';
  4. import ListItemAvatar from '@mui/material/ListItemAvatar';
  5. import Avatar from '@mui/material/Avatar';
  6. import MinimizeIcon from '@mui/icons-material/Minimize';
  7. import CropLandscapeIcon from '@mui/icons-material/CropLandscape';
  8. import CloseIcon from '@mui/icons-material/Close';
  9. import ScreenShareIcon from '@mui/icons-material/ScreenShare';
  10. import StopScreenShareIcon from '@mui/icons-material/StopScreenShare';
  11. import VideocamIcon from '@mui/icons-material/Videocam';
  12. import VideocamOffIcon from '@mui/icons-material/VideocamOff';
  13. import MicIcon from '@mui/icons-material/Mic';
  14. import MicOffIcon from '@mui/icons-material/MicOff';
  15. import CallEndIcon from '@mui/icons-material/CallEnd';
  16. import { getChat } from '../../../../../../redux/chat/selector';
  17. import { prodAwsS3,firstLetter,slicedWord } from '../../../../../../helpers'
  18. const useStyles = makeStyles({
  19. overlay: {
  20. position: 'fixed',
  21. top: 0,
  22. left: 0,
  23. width: '100vw',
  24. height: '100vh',
  25. zIndex: 100,
  26. backgroundColor: 'rgba(104, 105, 104, 0.6)',
  27. overflowY: 'hidden',
  28. },
  29. modalCall: {
  30. background: 'rgb(5, 5, 5)',
  31. position: 'absolute',
  32. display: 'flex',
  33. flexDirection: 'column',
  34. justifyContent: 'center',
  35. alignItems: 'center',
  36. justifyItems:"center",
  37. width: '36vw',
  38. height:'50vh',
  39. left: '32vw',
  40. bottom: '25vh',
  41. borderRadius: 7,
  42. padding: 7,
  43. },
  44. rightIcons: {
  45. display: 'flex',
  46. justifyContent: 'end',
  47. alignContent: 'center',
  48. alignItems: 'center',
  49. marginBottom: 50,
  50. width:'100%'
  51. }
  52. })
  53. const CallModal = ({setModalCall}:{setModalCall:any}) => {
  54. const classes = useStyles()
  55. const {name,lastName,avatarUrl,color,companionId} = useSelector(getChat)
  56. const handleDeleteModal = (e: any) => {
  57. // const id = e.target.id
  58. // if (id === 'overlay' || id === 'cancel') return setModalCall(false)
  59. // if (id === 'delete') {
  60. // setModalCall(false)
  61. // }
  62. }
  63. return (
  64. <div onClick={handleDeleteModal} className={classes.overlay} id='overlay'>
  65. <div className={classes.modalCall}>
  66. <div className={classes.rightIcons}>
  67. <MinimizeIcon style={{ color: '#ffffff',cursor:'pointer'}} fontSize='small' />
  68. <CropLandscapeIcon style={{ color: '#ffffff',marginLeft:12,cursor:'pointer' }} fontSize='small' />
  69. <CloseIcon style={{ color:'#ffffff',marginLeft:12,cursor:'pointer'}} fontSize='small' />
  70. </div>
  71. <ListItemAvatar>
  72. <Avatar alt={name} src={avatarUrl?`${prodAwsS3}/${avatarUrl}`:undefined}
  73. sx={{ background: color, width: 120, height: 120, marginRight: 2, fontSize:30}}>
  74. {`${firstLetter(name)}${firstLetter(lastName)}`}
  75. </Avatar>
  76. </ListItemAvatar>
  77. <ListItemText primary={`${firstLetter(name)}${slicedWord(name, 15, 1)}
  78. ${firstLetter(lastName)}${slicedWord(lastName, 15, 1)}`}
  79. primaryTypographyProps={{ color: '#ffffff', fontSize: 22, fontWeight: 500 }}
  80. secondary='ringing ...' secondaryTypographyProps={{color: '#ffffff',fontSize:17,marginBottom:20}}/>
  81. </div>
  82. </div>
  83. )
  84. }
  85. export default CallModal