index.tsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import List from '@mui/material/List';
  2. import ListItem from '@mui/material/ListItem';
  3. import ListItemText from '@mui/material/ListItemText';
  4. import ListItemAvatar from '@mui/material/ListItemAvatar';
  5. import VideoLibraryIcon from '@mui/icons-material/VideoLibrary';
  6. import Divider from '@mui/material/Divider';
  7. import { makeStyles } from '@material-ui/core'
  8. import AlertInfo from '../../../../../reusableComponents/AlertInfo';
  9. import { timeStampEU,handleDownload,prodAwsS3 } from '../../../../../../helpers'
  10. import { TMessages } from '../../../../../../typescript/redux/messages/types'
  11. const useStyles = makeStyles({
  12. folderIcon: {
  13. color: '#54b0fc',
  14. cursor: 'pointer',
  15. '&:hover': {
  16. color: '#016cc3'
  17. },
  18. },
  19. listItem: {
  20. cursor:'pointer',
  21. '&:hover': {
  22. backgroundColor: '#f0f0f0',
  23. }
  24. },
  25. })
  26. interface IVideoList {
  27. openPinned: boolean,
  28. filteredAndSorted: TMessages,
  29. handleScrollToTheMessage: (_id:string) => void,
  30. }
  31. const VideoList = ({ filteredAndSorted,handleScrollToTheMessage,openPinned }: IVideoList) => {
  32. const classes = useStyles()
  33. return filteredAndSorted.length > 0 ?(
  34. <List>
  35. {filteredAndSorted.map(({ message, createdAt, fullType,_id }) =>
  36. <div key={createdAt}>
  37. <ListItem onClick={() => handleScrollToTheMessage(_id)}
  38. key={createdAt} alignItems="flex-start" className={classes.listItem}>
  39. <ListItemAvatar>
  40. <VideoLibraryIcon onClick={() =>
  41. handleDownload(`${prodAwsS3}/${message}`, fullType)}
  42. className={classes.folderIcon} fontSize='large' />
  43. </ListItemAvatar>
  44. <ListItemText
  45. primary={fullType}
  46. secondary={timeStampEU(createdAt)}
  47. />
  48. </ListItem>
  49. <Divider variant="inset"/>
  50. </div>)}
  51. </List>
  52. ): <AlertInfo name={`You do not have ${openPinned&&'Pinned'} Video yet!`}/>
  53. }
  54. export default VideoList