import React from 'react'; import PropTypes from 'prop-types'; import { Dropdown, DropdownMenu, DropdownToggle, DropdownItem } from 'reactstrap'; import { gettext } from '../../../utils/constants'; import { Utils } from '../../../utils/utils'; const propTypes = { item: PropTypes.object.isRequired, onFreezedItem: PropTypes.func.isRequired, onUnfreezedItem: PropTypes.func.isRequired, onMenuItemClick: PropTypes.func.isRequired, }; class OpMenu extends React.Component { constructor(props) { super(props); this.state = { isItemMenuShow: false }; } onMenuItemClick = (e) => { let operation = Utils.getEventData(e, 'op'); this.props.onMenuItemClick(operation); } onDropdownToggleClick = (e) => { this.toggleOperationMenu(e); } toggleOperationMenu = (e) => { this.setState( {isItemMenuShow: !this.state.isItemMenuShow}, () => { if (this.state.isItemMenuShow) { this.props.onFreezedItem(); } else { this.props.onUnfreezedItem(); } } ); } translateOperations = (item) => { let translateResult = ''; switch(item) { case 'Set to current': translateResult = gettext('Set to current'); break; case 'Delete': translateResult = gettext('Delete'); break; default: break; } return translateResult; } render() { const { item } = this.props; let operations = []; if (!item.is_current) { operations.push('Set to current'); } operations.push('Delete'); return ( {operations.map((item, index )=> { return ({this.translateOperations(item)}); })} ); } } OpMenu.propTypes = propTypes; export default OpMenu;