const GitBook = require('gitbook-core');
const { React } = GitBook;
const Highlight = require('react-highlighter');
const MAX_DESCRIPTION_SIZE = 500;
const Result = React.createClass({
propTypes: {
result: React.PropTypes.object,
query: React.PropTypes.string
},
render() {
const { result, query } = this.props;
let summary = result.body.trim();
if (summary.length > MAX_DESCRIPTION_SIZE) {
summary = summary.slice(0, MAX_DESCRIPTION_SIZE).trim() + '...';
}
return (
);
}
});
const SearchResults = React.createClass({
propTypes: {
i18n: GitBook.Shapes.I18n,
results: GitBook.Shapes.list,
query: React.PropTypes.string,
children: React.PropTypes.node
},
render() {
const { i18n, query, results, children } = this.props;
if (!query) {
return React.Children.only(children);
}
return (
{i18n.t('SEARCH_RESULTS_TITLE', { query, count: results.size })}
{results.map((result, i) => {
return ;
})}
);
}
});
const mapStateToProps = (state) => {
const { results, query } = state.search;
return { results, query };
};
module.exports = GitBook.connect(SearchResults, mapStateToProps);