Home Reference Source

src/components/widgets/Table/cells/ButtonsCell/HintDropDownBody.js

import React, { Component } from 'react';
import PropTypes from 'prop-types';
import onClickOutside from 'react-onclickoutside';
import { map } from 'lodash';
import { Popper } from 'react-popper';

class HintDropDownBody extends Component {
  handleClickOutside() {
    if (this.props.open) {
      this.props.onToggleDropdown();
    }
  }
  render() {
    const {
      modifiers,
      positionFixed,
      menu,
      createDropDownMenu,
      open,
    } = this.props;

    return (
      <Popper modifiers={modifiers} positionFixed={positionFixed}>
        {({ ref, style, placement }) =>
          open && (
            <div
              className="n2o-buttons-cell-dropdown"
              ref={ref}
              style={style}
              data-placement={placement}
            >
              {map(menu, createDropDownMenu)}
            </div>
          )
        }
      </Popper>
    );
  }
}

HintDropDownBody.propTypes = {
  modifiers: PropTypes.object,
  positionFixed: PropTypes.bool,
  menu: PropTypes.array,
  createDropDownMenu: PropTypes.func,
  open: PropTypes.bool,
};

export default onClickOutside(HintDropDownBody);