import React from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import Tooltip from '../../components/tooltip'; import { Menu, MenuItem } from '../../components/menu'; import IconSharedLink from '../../icons/general/IconSharedLink'; import IconInviteCollaborators from '../../icons/general/IconInviteCollaborators'; import IconCollaboratorsRestricted from '../../icons/general/IconCollaboratorsRestricted'; import IconSharedLinkRestricted from '../../icons/general/IconSharedLinkRestricted'; import messages from './messages'; import './ShareMenu.scss'; const OWNER_COOWNER_ONLY = 'owner_coowner_only'; const INSUFFICIENT_PERMISSIONS = 'insufficient_permissions'; const ShareMenu = ({ canInvite, canShare, className = '', getSharedLinkProps = {}, inviteCollabsProps = {}, inviteRestrictionCode, isDownloadAllowed, isPreviewAllowed, onGetSharedLinkSelect, onInviteCollabSelect, ...rest }) => { const inviteCollabsOption = ( {canInvite ? : }
); const inviteCollabTooltip = inviteRestrictionCode === OWNER_COOWNER_ONLY ? ( ) : ( ); let sharedLinkPermissions; if (isDownloadAllowed && isPreviewAllowed) { sharedLinkPermissions = ; } else if (isPreviewAllowed) { sharedLinkPermissions = ; } else if (isDownloadAllowed) { sharedLinkPermissions = ; } else { sharedLinkPermissions = ; } return ( {canInvite ? ( inviteCollabsOption ) : ( {inviteCollabsOption} )} {canShare ? : }
{sharedLinkPermissions}
); }; ShareMenu.propTypes = { canInvite: PropTypes.bool.isRequired, canShare: PropTypes.bool.isRequired, className: PropTypes.string, getSharedLinkProps: PropTypes.object, inviteCollabsProps: PropTypes.object, inviteRestrictionCode: PropTypes.oneOf([INSUFFICIENT_PERMISSIONS, OWNER_COOWNER_ONLY]), isDownloadAllowed: PropTypes.bool.isRequired, isPreviewAllowed: PropTypes.bool.isRequired, onGetSharedLinkSelect: PropTypes.func.isRequired, onInviteCollabSelect: PropTypes.func.isRequired, }; export { OWNER_COOWNER_ONLY, INSUFFICIENT_PERMISSIONS }; export default ShareMenu;