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;