2017-12-21 22:08:54 +01:00
|
|
|
import React from 'react';
|
|
|
|
import ReactMarkdown from 'react-markdown';
|
|
|
|
import lbry from 'lbry.js';
|
|
|
|
import FileActions from 'component/fileActions';
|
|
|
|
import Link from 'component/link';
|
|
|
|
import DateTime from 'component/dateTime';
|
2017-09-17 22:33:52 +02:00
|
|
|
|
2017-12-21 22:08:54 +01:00
|
|
|
const path = require('path');
|
2017-09-20 14:47:08 +02:00
|
|
|
|
2017-09-17 22:33:52 +02:00
|
|
|
class FileDetails extends React.PureComponent {
|
|
|
|
render() {
|
2017-12-21 22:08:54 +01:00
|
|
|
const { claim, contentType, fileInfo, metadata, openFolder, uri } = this.props;
|
2017-09-17 22:33:52 +02:00
|
|
|
|
|
|
|
if (!claim || !metadata) {
|
|
|
|
return (
|
|
|
|
<div className="card__content">
|
2017-12-21 22:08:54 +01:00
|
|
|
<span className="empty">{__('Empty claim or metadata info.')}</span>
|
2017-09-17 22:33:52 +02:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
const { description, language, license } = metadata;
|
|
|
|
const mediaType = lbry.getMediaType(contentType);
|
2017-09-23 06:22:55 +02:00
|
|
|
|
2017-12-21 22:08:54 +01:00
|
|
|
const downloadPath = fileInfo ? path.normalize(fileInfo.download_path) : null;
|
2017-09-17 22:33:52 +02:00
|
|
|
|
|
|
|
return (
|
|
|
|
<div>
|
2017-10-10 05:10:59 +02:00
|
|
|
<div className="divider__horizontal" />
|
2017-09-17 22:33:52 +02:00
|
|
|
<FileActions uri={uri} />
|
2017-10-10 05:10:59 +02:00
|
|
|
<div className="divider__horizontal" />
|
2017-09-17 22:33:52 +02:00
|
|
|
<div className="card__content card__subtext card__subtext--allow-newlines">
|
|
|
|
<ReactMarkdown
|
2017-12-21 22:08:54 +01:00
|
|
|
source={description || ''}
|
|
|
|
escapeHtml
|
|
|
|
disallowedTypes={['Heading', 'HtmlInline', 'HtmlBlock']}
|
2017-09-17 22:33:52 +02:00
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
<div className="card__content">
|
|
|
|
<table className="table-standard table-stretch">
|
|
|
|
<tbody>
|
|
|
|
<tr>
|
2017-12-21 22:08:54 +01:00
|
|
|
<td>{__('Content-Type')}</td>
|
2017-11-24 15:31:05 +01:00
|
|
|
<td>{mediaType}</td>
|
2017-09-17 22:33:52 +02:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2017-12-21 22:08:54 +01:00
|
|
|
<td>{__('Language')}</td>
|
2017-11-24 15:31:05 +01:00
|
|
|
<td>{language}</td>
|
2017-09-17 22:33:52 +02:00
|
|
|
</tr>
|
|
|
|
<tr>
|
2017-12-21 22:08:54 +01:00
|
|
|
<td>{__('License')}</td>
|
2017-11-24 15:31:05 +01:00
|
|
|
<td>{license}</td>
|
2017-09-17 22:33:52 +02:00
|
|
|
</tr>
|
2017-11-24 15:31:05 +01:00
|
|
|
{downloadPath && (
|
2017-09-20 14:47:08 +02:00
|
|
|
<tr>
|
2017-12-21 22:08:54 +01:00
|
|
|
<td>{__('Downloaded to')}</td>
|
2017-09-20 14:47:08 +02:00
|
|
|
<td>
|
2017-12-21 22:08:54 +01:00
|
|
|
<Link onClick={() => openFolder(downloadPath)}>{downloadPath}</Link>
|
2017-09-20 14:47:08 +02:00
|
|
|
</td>
|
2017-11-24 15:31:05 +01:00
|
|
|
</tr>
|
|
|
|
)}
|
2017-09-17 22:33:52 +02:00
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default FileDetails;
|