Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3694 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 3694 Rev 3719
Línea 1... Línea 1...
1
import React, { useContext } from 'react';
1
import React, { useContext } from 'react';
2
import { IconButton, MenuItem as MuiMenuItem, Menu as MuiMenu } from '@mui/material';
2
import { IconButton, MenuItem as MuiMenuItem, Menu as MuiMenu } from '@mui/material';
3
import MoreVert from '@mui/icons-material/MoreVert';
3
import MoreVert from '@mui/icons-material/MoreVert';
4
 
4
 
5
import { MenuContext } from './MenuContext';
5
import { MenuContext } from './MenuContext';
6
 
6
 
7
export function MenuContent({ icon, children, style, ...props }) {
7
export function MenuContent({ icon, children, style, ...props }) {
8
  const { anchorEl, open, openMenu, closeMenu } = useContext(MenuContext);
8
  const { anchorEl, open, openMenu, closeMenu } = useContext(MenuContext);
9
 
9
 
10
  return (
10
  return (
11
    <>
11
    <>
12
      <IconButton
12
      <IconButton
13
        onClick={(event) => {
13
        onClick={(event) => {
14
          event.stopPropagation();
14
          event.stopPropagation();
15
          openMenu(event.currentTarget);
15
          openMenu(event.currentTarget);
16
        }}
16
        }}
17
        style={style}
17
        style={style}
18
        {...props}
18
        {...props}
19
      >
19
      >
20
        {icon ? icon : <MoreVert />}
20
        {icon ? icon : <MoreVert />}
21
      </IconButton>
21
      </IconButton>
22
      <MuiMenu
22
      <MuiMenu
23
        anchorEl={anchorEl}
23
        anchorEl={anchorEl}
24
        open={open}
24
        open={open}
25
        onClose={(event) => {
25
        onClose={(event) => {
26
          event.stopPropagation();
26
          event.stopPropagation();
27
          closeMenu();
27
          closeMenu();
28
        }}
28
        }}
29
        anchorOrigin={{
29
        anchorOrigin={{
30
          vertical: 'center',
30
          vertical: 'center',
31
          horizontal: 'center'
31
          horizontal: 'center'
32
        }}
32
        }}
33
        transformOrigin={{
33
        transformOrigin={{
34
          vertical: 'top',
34
          vertical: 'top',
35
          horizontal: 'right'
35
          horizontal: 'right'
36
        }}
36
        }}
37
      >
37
      >
38
        {children}
38
        {children}
39
      </MuiMenu>
39
      </MuiMenu>
40
    </>
40
    </>
41
  );
41
  );
42
}
42
}
43
 
43
 
44
export function MenuItem({ onClick, children }) {
44
export function MenuItem({ onClick, children }) {
45
  const { handleClick } = useContext(MenuContext);
45
  const { handleClick } = useContext(MenuContext);
46
 
46
 
47
  return (
47
  return (
48
    <MuiMenuItem
48
    <MuiMenuItem
49
      onClick={(event) => {
49
      onClick={(event) => {
50
        event.stopPropagation();
50
        event.stopPropagation();
51
        handleClick(onClick);
51
        handleClick(onClick);
52
      }}
52
      }}
53
    >
53
    >
54
      {children}
54
      {children}
55
    </MuiMenuItem>
55
    </MuiMenuItem>
56
  );
56
  );
57
}
57
}