diff options
Diffstat (limited to 'packages/gitbook-plugin-search/src/reducers/search.js')
-rw-r--r-- | packages/gitbook-plugin-search/src/reducers/search.js | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/packages/gitbook-plugin-search/src/reducers/search.js b/packages/gitbook-plugin-search/src/reducers/search.js index 4bf7b31..b960a77 100644 --- a/packages/gitbook-plugin-search/src/reducers/search.js +++ b/packages/gitbook-plugin-search/src/reducers/search.js @@ -4,6 +4,8 @@ const { Record, List, OrderedMap } = GitBook.Immutable; const TYPES = require('../actions/types'); const SearchState = Record({ + // Is the search being processed + loading: Boolean(false), // Current query query: String(''), // Current list of results @@ -16,15 +18,25 @@ module.exports = (state = SearchState(), action) => { switch (action.type) { case TYPES.CLEAR: - return SearchState(); + return state.merge({ + loading: false, + query: '', + results: List() + }); - case TYPES.UPDATE_QUERY: + case TYPES.START: return state.merge({ - query: action.query + loading: true, + query: action.query }); - case TYPES.UPDATE_RESULTS: + case TYPES.END: + if (action.query !== state.query) { + return state; + } + return state.merge({ + loading: false, results: action.results }); |