diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-09-29 19:04:56 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-09-29 19:04:56 +0200 |
commit | 9d8dffb6f0aac87c3707a4171140fa66f7e2e82c (patch) | |
tree | 7ea5fecc01960b04aa313d85f7ba5ee4d928a638 /packages/gitbook-plugin-search/src | |
parent | 6015defe11bbdd3bc008cf194e7e88181fe165d0 (diff) | |
download | gitbook-9d8dffb6f0aac87c3707a4171140fa66f7e2e82c.zip gitbook-9d8dffb6f0aac87c3707a4171140fa66f7e2e82c.tar.gz gitbook-9d8dffb6f0aac87c3707a4171140fa66f7e2e82c.tar.bz2 |
Fix query action for search
Diffstat (limited to 'packages/gitbook-plugin-search/src')
-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) |