index.tsx 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import Divider from '@mui/material/Divider';
  2. import Paper from '@mui/material/Paper';
  3. import MenuList from '@mui/material/MenuList';
  4. import MenuItem from '@mui/material/MenuItem';
  5. import ListItemText from '@mui/material/ListItemText';
  6. import ListItemIcon from '@mui/material/ListItemIcon';
  7. import PermContactCalendarIcon from '@mui/icons-material/PermContactCalendar';
  8. import SettingsIcon from '@mui/icons-material/Settings';
  9. import Brightness3Icon from '@mui/icons-material/Brightness3';
  10. import HelpOutlineIcon from '@mui/icons-material/HelpOutline';
  11. import BugReportIcon from '@mui/icons-material/BugReport';
  12. import PersonAddAltIcon from '@mui/icons-material/PersonAddAlt';
  13. import Switch from '@mui/material/Switch';
  14. import { makeStyles } from '@material-ui/core'
  15. import { useDispatch } from 'react-redux';
  16. import { asyncCurrentUser } from '../../../../redux/authorization/operations';
  17. import { updateUser } from '../../../../api-data';
  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. },
  27. container: {
  28. position: 'absolute',
  29. width: 270,
  30. maxWidth: '100%',
  31. top: 60,
  32. left: 15,
  33. zIndex: 10,
  34. visibility: 'visible',
  35. },
  36. list: {
  37. background:'#fdfdfd'
  38. },
  39. listItemLast: {
  40. textAlign: 'center',
  41. },
  42. listIcon: {
  43. marginRight: 15,
  44. },
  45. listIconText: {
  46. marginRight: 15,
  47. paddingLeft:6
  48. }
  49. })
  50. const label = { inputProps: { 'aria-label': 'Switch demo' } };
  51. interface IContactsList {
  52. handleSelectedMenu: (i: number) => void,
  53. nightMode: boolean
  54. }
  55. const MenuBar = ({handleSelectedMenu,nightMode}:IContactsList) => {
  56. const classes = useStyles()
  57. const dispatch = useDispatch()
  58. const handleNightMode = () => {
  59. updateUser({ nightMode: !nightMode })
  60. dispatch(asyncCurrentUser())
  61. }
  62. return (
  63. <div className={classes.overlay} id='overlay'>
  64. <Paper className={classes.container}>
  65. <MenuList className={classes.list}>
  66. <MenuItem onClick={() => handleSelectedMenu(3)}>
  67. <ListItemIcon className={classes.listIcon}>
  68. <PersonAddAltIcon fontSize="medium" />
  69. </ListItemIcon>
  70. <ListItemText>New Contact</ListItemText>
  71. </MenuItem>
  72. <MenuItem onClick={() => handleSelectedMenu(1)}>
  73. <ListItemIcon className={classes.listIcon}>
  74. <PermContactCalendarIcon fontSize="medium" />
  75. </ListItemIcon>
  76. <ListItemText>Contacts</ListItemText>
  77. </MenuItem>
  78. <MenuItem onClick={() => handleSelectedMenu(2)}>
  79. <ListItemIcon className={classes.listIcon}>
  80. <SettingsIcon fontSize="medium" />
  81. </ListItemIcon>
  82. <ListItemText>Settings</ListItemText>
  83. </MenuItem>
  84. <MenuItem style={{cursor:'default'}}>
  85. <ListItemIcon className={classes.listIcon}>
  86. <Brightness3Icon fontSize="medium" />
  87. </ListItemIcon>
  88. <ListItemText>Night Mode</ListItemText>
  89. <Switch onClick={handleNightMode} checked={nightMode} {...label} style={{cursor:'pointer'}}/>
  90. </MenuItem>
  91. <a style={{ textDecoration: 'none', color: 'inherit' }} target='blank'
  92. href='https://www.makeuseof.com/tag/useful-telegram-features/'>
  93. <MenuItem>
  94. <ListItemIcon className={classes.listIcon}>
  95. <HelpOutlineIcon fontSize="medium" />
  96. </ListItemIcon>
  97. <ListItemText>Telegram Features</ListItemText>
  98. </MenuItem>
  99. </a>
  100. <a style={{ textDecoration: 'none', color: 'inherit' }} target='blank'
  101. href='https://bugs.telegram.org/?tag_ids=41&sort=time'>
  102. <MenuItem>
  103. <ListItemIcon className={classes.listIcon}>
  104. <BugReportIcon fontSize="medium" />
  105. </ListItemIcon>
  106. <ListItemText>Report bug</ListItemText>
  107. </MenuItem>
  108. </a>
  109. <a style={{ textDecoration: 'none', color: 'inherit' }} target='blank'
  110. href='https://www.msn.com/en-in/money/tech/telegram-webk-and-webz-web-apps-launched-whats-the-difference/ar-BB1fOwLR'>
  111. <MenuItem>
  112. <ListItemIcon className={classes.listIconText}>
  113. K
  114. </ListItemIcon>
  115. <ListItemText>Switch to K Version</ListItemText>
  116. </MenuItem>
  117. </a>
  118. <a style={{ textDecoration: 'none', color: 'inherit' }} target='blank'
  119. href='https://desktop.telegram.org/changelog'>
  120. <MenuItem>
  121. <ListItemIcon className={classes.listIconText}>
  122. W
  123. </ListItemIcon>
  124. <ListItemText>Switch to Old Version</ListItemText>
  125. </MenuItem>
  126. </a>
  127. <Divider />
  128. <MenuItem style={{cursor:'default'}}>
  129. <ListItemText secondary='Telegram WebZ 1.32.3' className={classes.listItemLast}/>
  130. </MenuItem>
  131. </MenuList>
  132. </Paper>
  133. </div>
  134. );
  135. }
  136. export default MenuBar