1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import * as React from 'react';
6 import { Popover as MaterialPopover } from '@material-ui/core';
8 import { PopoverOrigin } from '@material-ui/core/Popover';
10 export interface PopoverProps {
11 triggerComponent: React.ComponentType<{ onClick: (event: React.MouseEvent<any>) => void }>;
15 class Popover extends React.Component<PopoverProps> {
21 transformOrigin: PopoverOrigin = {
29 <this.props.triggerComponent onClick={this.handleClick} />
31 anchorEl={this.state.anchorEl}
32 open={Boolean(this.state.anchorEl)}
33 onClose={this.handleClose}
34 transformOrigin={this.transformOrigin}
35 anchorOrigin={this.transformOrigin}
44 this.setState({ anchorEl: undefined });
47 handleClick = (event: React.MouseEvent<any>) => {
48 this.setState({ anchorEl: event.currentTarget });
53 export default Popover;