import React from 'react' import PropTypes from 'prop-types' import { Dropdown, MenuItem, OverlayTrigger, Tooltip } from 'react-bootstrap' import { useTranslation, Trans } from 'react-i18next' import Icon from '../../../shared/components/icon' export const topFileTypes = ['bbl', 'gls', 'ind'] function PreviewDownloadButton({ isCompiling, outputFiles, pdfDownloadUrl, showText }) { let topFiles = [] let otherFiles = [] const { t } = useTranslation() if (outputFiles) { topFiles = outputFiles.filter(file => { if (topFileTypes.includes(file.type)) { return file } }) otherFiles = outputFiles.filter(file => { if (!topFileTypes.includes(file.type)) { if (file.type === 'pdf' && file.main === true) return return file } }) } let textStyle = {} if (!showText) { textStyle = { position: 'absolute', right: '-100vw' } } const buttonElement = ( {t('download_pdf')} ) return ( {showText ? ( buttonElement ) : ( {t('download_pdf')} } > {buttonElement} )} {otherFiles.length > 0 && topFiles.length > 0 ? ( <> {t('other_output_files')} ) : ( <> )} {otherFiles.length > 0 ? ( <> ) : ( <> )} ) } function FileList({ listType, list }) { return list.map((file, index) => { return ( ]} values={{ type: file.fileName }} /> ) }) } PreviewDownloadButton.propTypes = { isCompiling: PropTypes.bool.isRequired, outputFiles: PropTypes.array, pdfDownloadUrl: PropTypes.string, showText: PropTypes.bool.isRequired } FileList.propTypes = { list: PropTypes.array.isRequired, listType: PropTypes.string.isRequired } export default PreviewDownloadButton