summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-plugin-search/src
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-10-02 00:15:59 +0200
committerSamy Pesse <samypesse@gmail.com>2016-10-02 00:15:59 +0200
commit24624f0d0e3f489a0430daa20a0ca59497b4e0d6 (patch)
tree30a6b8aac357d4effcdfdaa918f4ade49c964934 /packages/gitbook-plugin-search/src
parent9aaf561c4195dd363e66667b3d697694ae134337 (diff)
downloadgitbook-24624f0d0e3f489a0430daa20a0ca59497b4e0d6.zip
gitbook-24624f0d0e3f489a0430daa20a0ca59497b4e0d6.tar.gz
gitbook-24624f0d0e3f489a0430daa20a0ca59497b4e0d6.tar.bz2
Fix clear of search
Diffstat (limited to 'packages/gitbook-plugin-search/src')
-rw-r--r--packages/gitbook-plugin-search/src/actions/search.js4
-rw-r--r--packages/gitbook-plugin-search/src/actions/types.js4
-rw-r--r--packages/gitbook-plugin-search/src/reducers/search.js20
3 files changed, 20 insertions, 8 deletions
diff --git a/packages/gitbook-plugin-search/src/actions/search.js b/packages/gitbook-plugin-search/src/actions/search.js
index fe7fdfe..52afc3c 100644
--- a/packages/gitbook-plugin-search/src/actions/search.js
+++ b/packages/gitbook-plugin-search/src/actions/search.js
@@ -15,7 +15,7 @@ function query(q) {
return (dispatch, getState) => {
const { handlers } = getState().search;
- dispatch({ type: TYPES.UPDATE_QUERY, query: q });
+ dispatch({ type: TYPES.START, query: q });
return Promise.reduce(
handlers.toArray(),
@@ -27,7 +27,7 @@ function query(q) {
)
.then(
results => {
- dispatch({ type: TYPES.UPDATE_RESULTS, query: q, results });
+ dispatch({ type: TYPES.END, query: q, results });
}
);
};
diff --git a/packages/gitbook-plugin-search/src/actions/types.js b/packages/gitbook-plugin-search/src/actions/types.js
index ddbd086..6886098 100644
--- a/packages/gitbook-plugin-search/src/actions/types.js
+++ b/packages/gitbook-plugin-search/src/actions/types.js
@@ -3,6 +3,6 @@ module.exports = {
CLEAR: 'search/clear',
REGISTER_HANDLER: 'search/register_handler',
UNREGISTER_HANDLER: 'search/unregister_handler',
- UPDATE_QUERY: 'search/update_query',
- UPDATE_RESULTS: 'search/update_results'
+ START: 'search/start',
+ END: 'search/end'
};
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
});