all repos — caroster @ 2d7b6d7c0ba20bc08a603a1c18f604608f552eaf

[Octree] Group carpool to your event https://caroster.io

app/src/containers/EventMenu/index.js (view raw)

 1import React from 'react';
 2import Menu from '@material-ui/core/Menu';
 3import MenuItem from '@material-ui/core/MenuItem';
 4import {makeStyles} from '@material-ui/core/styles';
 5import {useTranslation} from 'react-i18next';
 6import {useStrapi} from 'strapi-react-context';
 7
 8const EventMenu = ({anchorEl, setAnchorEl, actions = []}) => {
 9  const {t} = useTranslation();
10  const strapi = useStrapi();
11  const classes = useStyles();
12  const [settings] = strapi.stores?.settings || [{}];
13  const aboutMenuItem = {
14    label: t('menu.about'),
15    onClick: () => (window.location.href = settings['about_link']),
16    id: 'AboutTabs',
17    className: classes.withDivider,
18  };
19
20  return (
21    <Menu
22      anchorEl={anchorEl}
23      anchorOrigin={{
24        vertical: 'top',
25        horizontal: 'right',
26      }}
27      keepMounted
28      transformOrigin={{
29        vertical: 'top',
30        horizontal: 'right',
31      }}
32      open={!!anchorEl}
33      onClose={() => setAnchorEl(null)}
34    >
35      {actions &&
36        [...actions, aboutMenuItem]
37          .filter(Boolean)
38          .map(({label, id, onClick, ...attributes}, idx) => (
39            <MenuItem
40              onClick={() => {
41                onClick();
42                setAnchorEl(null);
43              }}
44              key={idx}
45              id={id || `MenuItem${idx}`}
46              {...attributes}
47            >
48              {label}
49            </MenuItem>
50          ))}
51    </Menu>
52  );
53};
54
55const useStyles = makeStyles(theme => ({
56  withDivider: {
57    borderTop: `1px solid ${theme.palette.divider}`,
58  },
59}));
60export default EventMenu;