import React from 'react'; import lbry from '../lbry.js'; import lighthouse from '../lighthouse.js'; import {CreditAmount, Thumbnail} from '../component/common.js'; import {Link, DownloadLink, WatchLink} from '../component/link.js'; var formatItemImgStyle = { maxWidth: '100%', maxHeight: '100%', display: 'block', marginLeft: 'auto', marginRight: 'auto', marginTop: '5px', }; var FormatItem = React.createClass({ propTypes: { claimInfo: React.PropTypes.object, amount: React.PropTypes.number, name: React.PropTypes.string, available: React.PropTypes.bool, }, render: function() { var claimInfo = this.props.claimInfo; var thumbnail = claimInfo.thumbnail; var title = claimInfo.title; var description = claimInfo.description; var author = claimInfo.author; var language = claimInfo.language; var license = claimInfo.license; var fileContentType = (claimInfo.content_type || claimInfo['content-type']); var mediaType = lbry.getMediaType(fileContentType); var available = this.props.available; var amount = this.props.amount || 0.0; return (

{description}

Content-Type{fileContentType}
Cost
Author{author}
Language{language}
License{license}
{mediaType == 'video' ? : null}
); } }); var FormatsSection = React.createClass({ propTypes: { claimInfo: React.PropTypes.object, amount: React.PropTypes.number, name: React.PropTypes.string, available: React.PropTypes.bool, }, render: function() { var name = this.props.name; var format = this.props.claimInfo; var title = format.title; if(format == null) { return (

Sorry, no results found for "{name}".

); } return (
lbry://{name}

{title}

{/* In future, anticipate multiple formats, just a guess at what it could look like // var formats = this.props.claimInfo.formats // return ({formats.map(function(format,i){ */} {/* })}); */}
); } }); var DetailPage = React.createClass({ propTypes: { name: React.PropTypes.string, }, getInitialState: function() { return { claimInfo: null, amount: null, searching: true, matchFound: null, }; }, componentWillMount: function() { document.title = 'lbry://' + this.props.name; lighthouse.search(this.props.name, (results) => { var result = results[0]; if (result.name != this.props.name) { this.setState({ searching: false, matchFound: false, }); } else { this.setState({ amount: result.cost, available: result.available, claimInfo: result.value, searching: false, matchFound: true, }); } }); }, render: function() { if (this.state.claimInfo == null && this.state.searching) { // Still waiting for metadata return null; } var name = this.props.name; var available = this.state.available; var claimInfo = this.state.claimInfo; var amount = this.state.amount; return (
{this.state.matchFound ? ( ) : (

No content

There is no content available at the name lbry://{this.props.name}. If you reached this page from a link within the LBRY interface, please . Thanks!
)}
); } }); export default DetailPage;