// @flow import { observable } from "mobx"; import { inject, observer } from "mobx-react"; import * as React from "react"; import { Redirect } from "react-router-dom"; import SharesStore from "stores/SharesStore"; import UiStore from "stores/UiStore"; import Share from "models/Share"; import CopyToClipboard from "components/CopyToClipboard"; import { DropdownMenu, DropdownMenuItem } from "components/DropdownMenu"; 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);