// @flow import * as React from 'react'; import { Redirect } from 'react-router-dom'; import { inject, observer } from 'mobx-react'; import { observable } from 'mobx'; import CopyToClipboard from 'components/CopyToClipboard'; import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu'; import SharesStore from 'stores/SharesStore'; import UiStore from 'stores/UiStore'; import Share from 'models/Share'; type Props = { onOpen?: () => void, onClose: () => void, shares: SharesStore, ui: UiStore, share: Share, }; @observer class ShareMenu extends React.Component { @observable redirectTo: ?string; componentDidUpdate() { this.redirectTo = undefined; } handleGoToDocument = (ev: SyntheticEvent<>) => { ev.preventDefault(); this.redirectTo = this.props.share.documentUrl; }; handleRevoke = (ev: SyntheticEvent<>) => { ev.preventDefault(); this.props.shares.revoke(this.props.share); this.props.ui.showToast('Share link revoked'); }; handleCopy = () => { this.props.ui.showToast('Share link copied'); }; render() { if (this.redirectTo) return ; const { share, onOpen, onClose } = this.props; return ( Copy link Go to document
Revoke link
); } } export default inject('shares', 'ui')(ShareMenu);