summaryrefslogtreecommitdiffstats
path: root/packages/gitbook-plugin-search/src/actions/search.js
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-10-05 14:01:22 +0200
committerSamy Pesse <samypesse@gmail.com>2016-10-05 14:01:22 +0200
commit83c98cf4d88a62accda76193b478d97360bd405a (patch)
tree5dd3d3a3e46804173c1382e5a4d48264064eafdc /packages/gitbook-plugin-search/src/actions/search.js
parent86848e7acb5e5308297a0e4aaf0a164e7f9bf5f2 (diff)
downloadgitbook-83c98cf4d88a62accda76193b478d97360bd405a.zip
gitbook-83c98cf4d88a62accda76193b478d97360bd405a.tar.gz
gitbook-83c98cf4d88a62accda76193b478d97360bd405a.tar.bz2
Fix search not refreshed when adding an handler
Diffstat (limited to 'packages/gitbook-plugin-search/src/actions/search.js')
-rw-r--r--packages/gitbook-plugin-search/src/actions/search.js24
1 files changed, 22 insertions, 2 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 = {