const getFileNameAndExtension = require('@uppy/utils/lib/getFileNameAndExtension') const truncateString = require('../utils/truncateString') const copyToClipboard = require('../utils/copyToClipboard') const prettyBytes = require('prettier-bytes') const FileItemProgress = require('./FileItemProgress') const getFileTypeIcon = require('../utils/getFileTypeIcon') const FilePreview = require('./FilePreview') const { iconRetry } = require('./icons') const classNames = require('classnames') const { h } = require('preact') function FileItemProgressWrapper (props) { if (props.hideRetryButton && props.error) { return } if (props.isUploaded || (props.hidePauseResumeCancelButtons && !props.error)) { return
} return } module.exports = function FileItem (props) { const file = props.file const acquirers = props.acquirers const isProcessing = file.progress.preprocess || file.progress.postprocess const isUploaded = file.progress.uploadComplete && !isProcessing && !file.error const uploadInProgressOrComplete = file.progress.uploadStarted || isProcessing const uploadInProgress = (file.progress.uploadStarted && !file.progress.uploadComplete) || isProcessing const isPaused = file.isPaused || false const error = file.error || false const fileName = getFileNameAndExtension(file.meta.name).name const truncatedFileName = props.isWide ? truncateString(fileName, 30) : fileName function onPauseResumeCancelRetry (ev) { if (isUploaded) return if (error && !props.hideRetryButton) { props.retryUpload(file.id) return } if (props.hidePauseResumeCancelButtons) { return } if (props.resumableUploads) { props.pauseUpload(file.id) } else if (props.individualCancellation) { props.cancelUpload(file.id) } } function progressIndicatorTitle (props) { if (isUploaded) { return props.i18n('uploadComplete') } if (error) { return props.i18n('retryUpload') } if (props.resumableUploads) { if (file.isPaused) { return props.i18n('resumeUpload') } return props.i18n('pauseUpload') } else if (props.individualCancellation) { return props.i18n('cancelUpload') } return '' } const dashboardItemClass = classNames( 'uppy-DashboardItem', { 'is-inprogress': uploadInProgress }, { 'is-processing': isProcessing }, { 'is-complete': isUploaded }, { 'is-paused': isPaused }, { 'is-error': error }, { 'is-resumable': props.resumableUploads }, { 'is-noIndividualCancellation': !props.individualCancellation } ) const showRemoveButton = props.individualCancellation ? !isUploaded : !uploadInProgress && !isUploaded return
  • {props.showLinkToFileUploadResult && file.uploadURL ? : null }
    {file.data.size ?
    {prettyBytes(file.data.size)}
    : null} {(file.source && file.source !== props.id) &&
    {acquirers.map(acquirer => { if (acquirer.id === file.source) { return {acquirer.icon()} } })}
    } {(!uploadInProgressOrComplete && props.metaFields && props.metaFields.length) ? : null } {props.showLinkToFileUploadResult && file.uploadURL ? : '' }
    {showRemoveButton && }
  • }