index.tsx 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import MenuList from '@mui/material/MenuList';
  2. import MenuItem from '@mui/material/MenuItem';
  3. import ListItemText from '@mui/material/ListItemText';
  4. import ListItemIcon from '@mui/material/ListItemIcon';
  5. import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile';
  6. import { makeStyles } from '@material-ui/core'
  7. import { usePrevious } from '../../../../../hooks';
  8. import UploadFile from './UploadFile'
  9. const useStyles = makeStyles({
  10. list: {
  11. background: '#fdfdfd',
  12. },
  13. listIcon: {
  14. position: 'absolute',
  15. left:0
  16. },
  17. listText: {
  18. position: 'absolute',
  19. left:40
  20. },
  21. })
  22. interface IFilesMenu {
  23. setIsOpenMenu: any,
  24. setFile: any,
  25. setValue: any,
  26. setType: any,
  27. type: string
  28. }
  29. const FilesMenu = ({setIsOpenMenu,setFile,setValue,setType,type}:IFilesMenu) => {
  30. const classes = useStyles()
  31. const prevType = usePrevious(type);
  32. const handleClose = (typeFile:string) => {
  33. setIsOpenMenu(false)
  34. setType(typeFile)
  35. }
  36. return (
  37. <MenuList className={classes.list}>
  38. <MenuItem onClick={() => handleClose('content')}>
  39. <UploadFile setFile={setFile} setValue={setValue} setType={setType} prevType={prevType} accept='image/*,video/*,audio/*'>
  40. <ListItemIcon className={classes.listIcon}>
  41. <InsertDriveFileIcon fontSize="medium" />
  42. </ListItemIcon>
  43. <ListItemText className={classes.listText}>Upload Image/Audio/Video</ListItemText>
  44. </UploadFile>
  45. </MenuItem>
  46. <MenuItem onClick={() => handleClose('application')}>
  47. <UploadFile setFile={setFile} setValue={setValue} setType={setType} prevType={prevType} accept='application/pdf,
  48. application/vnd.openxmlformats-officedocument.wordprocessingml.document'>
  49. <ListItemIcon className={classes.listIcon}>
  50. <InsertDriveFileIcon fontSize="medium" />
  51. </ListItemIcon>
  52. <ListItemText className={classes.listText}>Upload File</ListItemText>
  53. </UploadFile>
  54. </MenuItem>
  55. </MenuList>
  56. );
  57. }
  58. export default FilesMenu