import React from 'react'; import lbry from 'lbry'; import lbryuri from 'lbryuri'; import Video from 'component/video'; import { Thumbnail } from 'component/common'; import FilePrice from 'component/filePrice'; import FileDetails from 'component/fileDetails'; import UriIndicator from 'component/uriIndicator'; import Icon from 'component/icon'; import WalletSendTip from 'component/walletSendTip'; import DateTime from 'component/dateTime'; import * as icons from 'constants/icons'; import Link from 'component/link'; import SubscribeButton from 'component/subscribeButton'; class FilePage extends React.PureComponent { componentDidMount() { this.fetchFileInfo(this.props); this.fetchCostInfo(this.props); } componentWillReceiveProps(nextProps) { this.fetchFileInfo(nextProps); } fetchFileInfo(props) { if (props.fileInfo === undefined) { props.fetchFileInfo(props.uri); } } fetchCostInfo(props) { if (props.costInfo === undefined) { props.fetchCostInfo(props.uri); } } render() { const { claim, fileInfo, metadata, contentType, tab, uri, rewardedContentClaimIds, } = this.props; const showTipBox = tab == 'tip'; if (!claim || !metadata) { return {__('Empty claim or metadata info.')}; } const title = metadata.title; const isRewardContent = rewardedContentClaimIds.includes(claim.claim_id); const mediaType = lbry.getMediaType(contentType); const player = require('render-media'); const obscureNsfw = this.props.obscureNsfw && metadata && metadata.nsfw; const isPlayable = Object.values(player.mime).indexOf(contentType) !== -1 || mediaType === 'audio'; const { height, channel_name: channelName, value } = claim; const channelClaimId = value && value.publisherSignature && value.publisherSignature.certificateId; let subscriptionUri; if (channelName && channelClaimId) { subscriptionUri = lbryuri.build({ channelName, claimId: channelClaimId }, false); } return (
{isPlayable ? (
{(!tab || tab === 'details') && (
{' '}
{!fileInfo || fileInfo.written_bytes <= 0 ? ( {isRewardContent && ( {' '} )} ) : null}

{title}

Published on
)} {tab === 'tip' && }
); } } export default FilePage;