// @flow import { SIMPLE_SITE } from 'config'; import React, { PureComponent } from 'react'; import Button from 'component/button'; import path from 'path'; import { formatBytes } from 'util/format-bytes'; type Props = { claim: StreamClaim, fileInfo: FileListItem, metadata: StreamMetadata, openFolder: (string) => void, contentType: string, user: ?any, }; class FileDetails extends PureComponent { render() { const { claim, contentType, fileInfo, metadata, openFolder } = this.props; if (!claim || !metadata) { return {__('Empty claim or metadata info.')}; } const { languages, license } = metadata; const mediaType = contentType || 'unknown'; const fileSize = metadata.source && metadata.source.size ? formatBytes(metadata.source.size) : fileInfo && fileInfo.download_path && formatBytes(fileInfo.written_bytes); let downloadPath = fileInfo && fileInfo.download_path ? path.normalize(fileInfo.download_path) : null; let downloadNote; // If the path is blank, file is not available. Streamed files won't have any blobs saved // Create path from name so the folder opens on click. if (fileInfo && fileInfo.blobs_completed >= 1 && fileInfo.download_path === null) { downloadPath = `${fileInfo.download_directory}/${fileInfo.file_name}`; downloadNote = __('This file may have been streamed, moved or deleted'); } return ( <>
{__('URL')} {claim.canonical_url}
{__('Claim ID')} {claim.claim_id}
{!SIMPLE_SITE && ( <> {languages && (
{__('Languages')} {languages.join(' ')}
)} {mediaType && (
{__('Media Type')} {mediaType}
)}
{__('License')} {license}
{downloadPath && (
{__('Downloaded to')}
)} )} {fileSize && (
{fileSize}
)} ); } } export default FileDetails;