Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6938 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6911 stevensc 1
import React, { useState } from 'react'
6938 stevensc 2
import styled from 'styled-components'
6911 stevensc 3
import IconButton from '@mui/material/IconButton'
4
import MoreVertIcon from '@mui/icons-material/MoreVert'
6938 stevensc 5
import { Menu, MenuItem } from '@mui/material'
6911 stevensc 6
 
6938 stevensc 7
const StyledOptionsButton = styled(IconButton)`
6940 stevensc 8
  position: absolute !important;
9
  right: ${(props) => props.right || '0'};
10
  top: ${(props) => props.top || '50%'};
6938 stevensc 11
  transform: translateY(-50%);
12
  z-index: 100;
13
`
6911 stevensc 14
 
6938 stevensc 15
const Options = ({ options, right, top }) => {
16
  const [anchorEl, setAnchorEl] = useState(null)
17
  const open = Boolean(anchorEl)
18
 
19
  const handleClick = (event) => {
20
    setAnchorEl(event.currentTarget)
6911 stevensc 21
  }
22
 
6938 stevensc 23
  const handleClose = () => {
24
    setAnchorEl(null)
25
  }
26
 
6911 stevensc 27
  return (
6938 stevensc 28
    <>
29
      <StyledOptionsButton
30
        right={right}
31
        top={top}
32
        onClick={handleClick}
33
        aria-controls={open ? 'account-menu' : undefined}
34
        aria-haspopup="true"
35
        aria-expanded={open ? 'true' : undefined}
36
      >
6911 stevensc 37
        <MoreVertIcon />
6938 stevensc 38
      </StyledOptionsButton>
39
      <Menu
40
        anchorEl={anchorEl}
41
        id="account-menu"
42
        open={open}
43
        onClose={handleClose}
44
        onClick={handleClose}
45
        transformOrigin={{ horizontal: 'right', vertical: 'top' }}
46
        anchorOrigin={{ horizontal: 'right', vertical: 'bottom' }}
47
      >
48
        {options.map((option, index) => (
49
          <MenuItem
50
            key={index}
6911 stevensc 51
            onClick={() => {
52
              option.action()
6938 stevensc 53
              handleClose()
6911 stevensc 54
            }}
55
          >
56
            {option.label}
6938 stevensc 57
          </MenuItem>
58
        ))}
59
      </Menu>
60
    </>
6911 stevensc 61
  )
62
}
63
 
64
export default Options