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}
@@ -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 />
);
}
});