import React from 'react'; import PropTypes from 'prop-types'; import { FormattedMessage } from 'react-intl'; import classNames from 'classnames'; import Checkbox from '../../components/checkbox'; import TextInputWithCopyButton from '../../components/text-input-with-copy-button'; import Fieldset from '../../components/fieldset'; import Tooltip from '../../components/tooltip'; import messages from './messages'; const AllowDownloadSection = ({ canChangeDownload, classification, directLink, directLinkInputProps = {}, downloadCheckboxProps = {}, isDirectLinkAvailable, isDirectLinkUnavailableDueToDownloadSettings, isDirectLinkUnavailableDueToAccessPolicy, isDownloadAvailable, isDownloadEnabled, onChange, }) => { if (!isDownloadAvailable && !isDirectLinkAvailable) { return null; } const directLinkSection = (
} type="url" value={directLink} {...directLinkInputProps} />
); const tooltipMessage = classification ? { ...messages.directDownloadBlockedByAccessPolicyWithClassification } : { ...messages.directDownloadBlockedByAccessPolicyWithoutClassification }; const allowDownloadSectionClass = classNames('bdl-AllowDownloadSection', { 'bdl-is-disabled': isDirectLinkUnavailableDueToAccessPolicy, }); const isDirectLinkSectionVisible = (isDirectLinkAvailable || isDirectLinkUnavailableDueToDownloadSettings) && isDownloadEnabled; if (isDownloadAvailable) { return (

} position="middle-left" >
} > } name="isDownloadEnabled" onChange={onChange} {...downloadCheckboxProps} /> {isDirectLinkSectionVisible && directLinkSection}
); } // When download section not available but direct link is available return (

{directLinkSection}
); }; AllowDownloadSection.propTypes = { canChangeDownload: PropTypes.bool.isRequired, directLink: PropTypes.string.isRequired, directLinkInputProps: PropTypes.object, downloadCheckboxProps: PropTypes.object, isDirectLinkAvailable: PropTypes.bool.isRequired, isDirectLinkUnavailableDueToDownloadSettings: PropTypes.bool.isRequired, isDownloadAvailable: PropTypes.bool.isRequired, isDownloadEnabled: PropTypes.bool.isRequired, onChange: PropTypes.func.isRequired, }; export default AllowDownloadSection;