blob: dd2bb9c6c90cd1940b8d75f75086a79a59394103 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
const GitBook = require('gitbook-core');
const { React } = GitBook;
const Result = React.createClass({
propTypes: {
result: React.PropTypes.object
},
render() {
const { result } = this.props;
return (
<div className="Search/Result">
<h3>{result.title}</h3>
<p>{result.body}</p>
</div>
);
}
});
const SearchResults = React.createClass({
propTypes: {
query: React.PropTypes.string,
results: GitBook.Shapes.list,
children: React.PropTypes.node
},
render() {
const { query, results, children } = this.props;
if (!query) {
return React.Children.only(children);
}
return (
<div className="Search/ResultsContainer">
<h1>Results for "{query}"</h1>
<div className="Search/Results">
{results.map((result, i) => {
return <Result key={i} result={result} />;
})}
</div>
</div>
);
}
});
const mapStateToProps = (state) => {
const { results, query } = state.search;
return { results, query };
};
module.exports = GitBook.connect(SearchResults, mapStateToProps);
|