lbry-desktop/src/renderer/component/fileDetails/view.jsx

78 lines
1.8 KiB
React
Raw Normal View History

2018-03-26 23:32:43 +02:00
// @flow
import * as React from 'react';
import MarkdownPreview from 'component/markdownPreview';
2018-03-26 23:32:43 +02:00
import Button from 'component/button';
import path from 'path';
import type { Claim } from 'types/claim';
2017-09-17 22:33:52 +02:00
2018-03-26 23:32:43 +02:00
type Props = {
claim: Claim,
2018-03-26 23:32:43 +02:00
fileInfo: {
download_path: string,
},
metadata: {
description: string,
language: string,
license: string,
},
openFolder: string => void,
contentType: string,
};
2018-03-26 23:32:43 +02:00
const FileDetails = (props: Props) => {
const { claim, contentType, fileInfo, metadata, openFolder } = props;
2017-09-17 22:33:52 +02:00
2018-03-26 23:32:43 +02:00
if (!claim || !metadata) {
return (
<div className="card__content">
<span className="empty">{__('Empty claim or metadata info.')}</span>
</div>
);
}
2017-09-17 22:33:52 +02:00
2018-03-26 23:32:43 +02:00
const { description, language, license } = metadata;
2018-04-17 03:51:33 +02:00
const mediaType = contentType || 'unknown';
2018-03-26 23:32:43 +02:00
const downloadPath = fileInfo ? path.normalize(fileInfo.download_path) : null;
2017-09-17 22:33:52 +02:00
2018-03-26 23:32:43 +02:00
return (
<React.Fragment>
{description && (
<React.Fragment>
<div className="card__subtext-title">About</div>
<div className="card__subtext">
<MarkdownPreview content={description} />
2018-03-26 23:32:43 +02:00
</div>
</React.Fragment>
)}
<div className="card__subtext-title">Info</div>
<div className="card__subtext">
<div>
{__('Content-Type')}
{': '}
{mediaType}
</div>
<div>
{__('Language')}
{': '}
{language}
2017-09-17 22:33:52 +02:00
</div>
2018-03-26 23:32:43 +02:00
<div>
{__('License')}
{': '}
{license}
2017-09-17 22:33:52 +02:00
</div>
2018-03-26 23:32:43 +02:00
{downloadPath && (
<div>
{__('Downloaded to')}
{': '}
<Button button="link" onClick={() => openFolder(downloadPath)} label={downloadPath} />
</div>
)}
2017-09-17 22:33:52 +02:00
</div>
2018-03-26 23:32:43 +02:00
</React.Fragment>
);
};
2017-09-17 22:33:52 +02:00
export default FileDetails;