index.tsx 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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 LibraryMusicIcon from '@mui/icons-material/LibraryMusic';
  6. import Divider from '@mui/material/Divider';
  7. import { makeStyles } from '@material-ui/core'
  8. import AlertInfo from '../../../../../../reusableComponents/AlertInfo';
  9. import { timeStampEU,handleDownload,prodBaseURL } 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. '&:hover': {
  21. backgroundColor: '#f0f0f0',
  22. }
  23. },
  24. })
  25. const AudioList = ({ messagesMemo }: { messagesMemo: TMessages }) => {
  26. const classes = useStyles()
  27. const filteredMessagesMemo = messagesMemo.filter(({type}) => type === 'audio')
  28. return filteredMessagesMemo.length > 0 ?(
  29. <List>
  30. {filteredMessagesMemo.map(({ message, createdAt, fullType }) =>
  31. <div key={createdAt}>
  32. <ListItem alignItems="flex-start" className={classes.listItem}>
  33. <ListItemAvatar>
  34. <LibraryMusicIcon onClick={() =>
  35. handleDownload(`${prodBaseURL}/${message}`, fullType)}
  36. className={classes.folderIcon} fontSize='large' />
  37. </ListItemAvatar>
  38. <ListItemText
  39. primary={fullType}
  40. secondary={timeStampEU(createdAt)}
  41. />
  42. </ListItem>
  43. <Divider variant="inset"/>
  44. </div>)}
  45. </List>
  46. ): <AlertInfo name='You do not have Audio yet!'/>
  47. }
  48. export default AudioList