/* @flow */ import React from 'react'; import { FormattedMessage, injectIntl } from 'react-intl'; import TextInputWithCopyButton from '../../components/text-input-with-copy-button'; import Tooltip from '../../components/tooltip'; import PlainButton from '../../components/plain-button'; import { convertToMs } from '../../utils/datetime'; import IconExpirationInverted from '../../icons/general/IconExpirationInverted'; import IconSettingInverted from '../../icons/general/IconSettingInverted'; import SharedLinkAccess from './SharedLinkAccess'; import messages from './messages'; import { accessLevelPropType, allowedAccessLevelsPropType, permissionLevelPropType } from './propTypes'; import './SharedLink.scss'; type Props = { accessDropdownMenuProps?: Object, accessLevel?: accessLevelPropType, accessMenuButtonProps?: Object, allowedAccessLevels?: allowedAccessLevelsPropType, canRemoveLink?: boolean, changeAccessLevel: Function, changePermissionLevel?: Function, copyButtonProps?: Object, enterpriseName?: string, expiration?: number, isDownloadAllowed?: boolean, isEditAllowed?: boolean, isPreviewAllowed?: boolean, itemType: string, onCopySuccess?: Function, onSettingsClick?: Function, permissionLevel?: permissionLevelPropType, removeLink: Function, removeLinkButtonProps?: Object, settingsButtonProps?: Object, sharedLink: string, submitting?: boolean, } & InjectIntlProvidedProps; const SharedLink = (props: Props) => { const { accessDropdownMenuProps, accessLevel, accessMenuButtonProps, allowedAccessLevels, canRemoveLink, changeAccessLevel, changePermissionLevel, copyButtonProps, enterpriseName, expiration, intl, isDownloadAllowed, isEditAllowed, isPreviewAllowed, itemType, onCopySuccess, onSettingsClick, permissionLevel, removeLink, removeLinkButtonProps, settingsButtonProps = {}, sharedLink, submitting, } = props; return (