diff options
-rw-r--r-- | packages/gitbook-plugin-search/src/actions/search.js | 24 | ||||
-rw-r--r-- | packages/gitbook-plugin-search/src/components/Results.js | 6 |
2 files changed, 26 insertions, 4 deletions
diff --git a/packages/gitbook-plugin-search/src/actions/search.js b/packages/gitbook-plugin-search/src/actions/search.js index 6f8f8ad..6cea419 100644 --- a/packages/gitbook-plugin-search/src/actions/search.js +++ b/packages/gitbook-plugin-search/src/actions/search.js @@ -67,6 +67,20 @@ function handleQuery(q) { } /** + * Refresh current search (when handlers have changed) + * @return {Action} + */ +function refresh() { + return (dispatch, getState) => { + const q = getState().search.query; + console.log('refresh search with', q); + if (q) { + dispatch(handleQuery(q)); + } + }; +} + +/** * Clear the whole search * @return {Action} */ @@ -81,7 +95,10 @@ function clear() { * @return {Action} */ function registerHandler(name, handler) { - return { type: TYPES.REGISTER_HANDLER, name, handler }; + return (dispatch) => { + dispatch({ type: TYPES.REGISTER_HANDLER, name, handler }); + dispatch(refresh()); + }; } /** @@ -90,7 +107,10 @@ function registerHandler(name, handler) { * @return {Action} */ function unregisterHandler(name) { - return { type: TYPES.UNREGISTER_HANDLER, name }; + return (dispatch) => { + dispatch({ type: TYPES.UNREGISTER_HANDLER, name }); + dispatch(refresh()); + }; } module.exports = { diff --git a/packages/gitbook-plugin-search/src/components/Results.js b/packages/gitbook-plugin-search/src/components/Results.js index 89fb531..85e6133 100644 --- a/packages/gitbook-plugin-search/src/components/Results.js +++ b/packages/gitbook-plugin-search/src/components/Results.js @@ -11,7 +11,9 @@ const Result = React.createClass({ return ( <div className="Search-Result"> - <h3>{result.title}</h3> + <h3> + <GitBook.Link to={result.url}>{result.title}</GitBook.Link> + </h3> <p>{result.body}</p> </div> ); @@ -36,7 +38,7 @@ const SearchResults = React.createClass({ return ( <div className="Search-ResultsContainer"> <h1>{i18n.t('SEARCH_RESULTS_TITLE', { query, count: results.size })}</h1> - <div className="Search/Results"> + <div className="Search-Results"> {results.map((result, i) => { return <Result key={i} result={result} />; })} |