import React from 'react'; import lbry from '../lbry.js'; import lighthouse from '../lighthouse.js'; import {FileTile} from '../component/file-tile.js'; import {Link} from '../component/link.js'; import {ToolTip} from '../component/tooltip.js'; import {BusyMessage} from '../component/common.js'; var fetchResultsStyle = { color: '#888', textAlign: 'center', fontSize: '1.2em' }; var SearchActive = React.createClass({ render: function() { return (
); } }); var searchNoResultsStyle = { textAlign: 'center' }, searchNoResultsMessageStyle = { fontStyle: 'italic', marginRight: '5px' }; var SearchNoResults = React.createClass({ render: function() { return (
No one has checked anything in for {this.props.query} yet.
); } }); var SearchResults = React.createClass({ render: function() { var rows = [], seenNames = {}; //fix this when the search API returns claim IDs this.props.results.forEach(function({name, value}) { if (!seenNames[name]) { seenNames[name] = name; rows.push( ); } }); return (
{rows}
); } }); var featuredContentLegendStyle = { fontSize: '12px', color: '#aaa', verticalAlign: '15%', }; var FeaturedContent = React.createClass({ render: function() { const toolTipText = ('Community Content is a public space where anyone can share content with the ' + 'rest of the LBRY community. Bid on the names "one," "two," "three," "four" and ' + '"five" to put your content here!'); return (

Featured Content

Community Content

); } }); var DiscoverPage = React.createClass({ userTypingTimer: null, componentDidUpdate: function() { if (this.props.query != this.state.query) { this.handleSearchChanged(this.props.query); } }, componentWillReceiveProps: function(nextProps, nextState) { if (nextProps.query != nextState.query) { this.handleSearchChanged(nextProps.query); } }, handleSearchChanged: function(query) { this.setState({ searching: true, query: query, }); lighthouse.search(query, this.searchCallback); }, componentWillMount: function() { document.title = "Discover"; if (this.props.query) { // Rendering with a query already typed this.handleSearchChanged(this.props.query); } }, getInitialState: function() { return { results: [], query: this.props.query, searching: ('query' in this.props) && (this.props.query.length > 0) }; }, searchCallback: function(results) { if (this.state.searching) //could have canceled while results were pending, in which case nothing to do { this.setState({ results: results, searching: false //multiple searches can be out, we're only done if we receive one we actually care about }); } }, render: function() { return (
{ this.state.searching ? : null } { !this.state.searching && this.props.query && this.state.results.length ? : null } { !this.state.searching && this.props.query && !this.state.results.length ? : null } { !this.props.query && !this.state.searching ? : null }
); } }); export default DiscoverPage;