diff options
Diffstat (limited to 'packages/gitbook-plugin-search')
-rw-r--r-- | packages/gitbook-plugin-search/src/actions/search.js | 20 | ||||
-rw-r--r-- | packages/gitbook-plugin-search/src/reducers/search.js | 5 |
2 files changed, 18 insertions, 7 deletions
diff --git a/packages/gitbook-plugin-search/src/actions/search.js b/packages/gitbook-plugin-search/src/actions/search.js index dc3293b..fe7fdfe 100644 --- a/packages/gitbook-plugin-search/src/actions/search.js +++ b/packages/gitbook-plugin-search/src/actions/search.js @@ -17,13 +17,19 @@ function query(q) { dispatch({ type: TYPES.UPDATE_QUERY, query: q }); - return Promise.reduce(handlers, (results, handler) => { - return Promise(handler(q)) - .then(handlerResults => results.concat(handlerResults)); - }, List()) - .then(results => { - dispatch({ type: TYPES.UPDATE_RESULTS, query: q }); - }); + return Promise.reduce( + handlers.toArray(), + (results, handler) => { + return Promise.resolve(handler(q)) + .then(handlerResults => results.concat(handlerResults)); + }, + List() + ) + .then( + results => { + dispatch({ type: TYPES.UPDATE_RESULTS, query: q, results }); + } + ); }; } diff --git a/packages/gitbook-plugin-search/src/reducers/search.js b/packages/gitbook-plugin-search/src/reducers/search.js index 9c99634..4bf7b31 100644 --- a/packages/gitbook-plugin-search/src/reducers/search.js +++ b/packages/gitbook-plugin-search/src/reducers/search.js @@ -23,6 +23,11 @@ module.exports = (state = SearchState(), action) => { query: action.query }); + case TYPES.UPDATE_RESULTS: + return state.merge({ + results: action.results + }); + case TYPES.REGISTER_HANDLER: return state.merge({ handlers: state.handlers.set(action.name, action.handler) |