// @flow import * as React from 'react'; import { observable } from 'mobx'; import { inject, observer } from 'mobx-react'; import { withRouter, type RouterHistory } from 'react-router-dom'; import Modal from 'components/Modal'; import GroupEdit from 'scenes/GroupEdit'; import GroupDelete from 'scenes/GroupDelete'; import Group from 'models/Group'; import UiStore from 'stores/UiStore'; import PoliciesStore from 'stores/PoliciesStore'; import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu'; type Props = { ui: UiStore, policies: PoliciesStore, group: Group, history: RouterHistory, onMembers: () => void, onOpen?: () => void, onClose?: () => void, }; @observer class GroupMenu extends React.Component { @observable editModalOpen: boolean = false; @observable deleteModalOpen: boolean = false; onEdit = (ev: SyntheticEvent<>) => { ev.preventDefault(); this.editModalOpen = true; }; onDelete = (ev: SyntheticEvent<>) => { ev.preventDefault(); this.deleteModalOpen = true; }; handleEditModalClose = () => { this.editModalOpen = false; }; handleDeleteModalClose = () => { this.deleteModalOpen = false; }; render() { const { policies, group, onOpen, onClose } = this.props; const can = policies.abilities(group.id); return ( {group && ( Members… {(can.update || can.delete) &&
} {can.update && ( Edit… )} {can.delete && ( Delete… )}
)}
); } } export default inject('policies')(withRouter(GroupMenu));