diff --git a/js/page/discover.js b/js/page/discover.js index 70bbd2e49..77633ca84 100644 --- a/js/page/discover.js +++ b/js/page/discover.js @@ -46,8 +46,7 @@ var SearchResults = React.createClass({ var mediaType = lbry.getMediaType(result.value.content_type); rows.push( + description={result.value.description} nsfw={result.value.nsfw} mediaType={mediaType} /> ); }); return ( @@ -93,6 +92,8 @@ var SearchResultRow = React.createClass({ return { downloading: false, isHovered: false, + cost: null, + costIncludesData: null, } }, handleMouseOver: function() { @@ -105,6 +106,21 @@ var SearchResultRow = React.createClass({ isHovered: false, }); }, + componentWillMount: function() { + if ('cost' in this.props) { + this.setState({ + cost: this.props.cost, + costIncludesData: this.props.costIncludesData, + }); + } else { + lbry.getCostInfoForName(this.props.name, ({cost, includesData}) => { + this.setState({ + cost: cost, + costIncludesData: includesData, + }); + }); + } + }, render: function() { var obscureNsfw = !lbry.getClientSetting('showNsfw') && this.props.nsfw; if (!this.props.compact) { @@ -122,9 +138,9 @@ var SearchResultRow = React.createClass({
- {'cost' in this.props + {this.state.cost !== null ? - + : null}
lbry://{this.props.name}
@@ -185,21 +201,18 @@ var FeaturedContentItem = React.createClass({ }, componentDidMount: function() { - this.resolveSearch = true; + this._isMounted = true; - lighthouse.search(this.props.name, function(results) { - var result = results[0]; - var metadata = result.value; - if (this.resolveSearch) - { - this.setState({ - metadata: metadata, - amount: result.cost, - available: result.available, - title: metadata && metadata.title ? metadata.title : ('lbry://' + this.props.name), - }); + lbry.resolveName(this.props.name, (metadata) => { + if (!this._isMounted) { + return; } - }.bind(this)); + + this.setState({ + metadata: metadata, + title: metadata && metadata.title ? metadata.title : ('lbry://' + this.props.name), + }); + }); }, render: function() { @@ -208,11 +221,10 @@ var FeaturedContentItem = React.createClass({ return null; } - const costProp = this.state.cost === null ? {} : {cost: this.state.cost} return (
+ nsfw={this.state.metadata.nsfw} compact />
); } });