From fa7194771f847d807172f85077ecc6150e160309 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Thu, 9 May 2019 10:48:14 +0300
Subject: [PATCH] Add text filter to app state

---
 src/client/epics/index.js                |  8 ++++++
 src/client/reducers/manuscriptsFacets.js | 35 ++++++++++++------------
 2 files changed, 26 insertions(+), 17 deletions(-)

diff --git a/src/client/epics/index.js b/src/client/epics/index.js
index ef715341..b974334d 100644
--- a/src/client/epics/index.js
+++ b/src/client/epics/index.js
@@ -218,8 +218,10 @@ export const stateToUrl = ({
   if (variant !== null) { params.variant = variant; }
   let uriFilters = {};
   let spatialFilters = {};
+  let textFilters = {};
   let activeUriFilters = false;
   let activeSpatialFilters = false;
+  let activeTextFilters = false;
   for (const [key, value] of Object.entries(facets)) {
     if (value.uriFilter !== null) {
       activeUriFilters = true;
@@ -227,6 +229,9 @@ export const stateToUrl = ({
     } else if (has(value, 'spatialFilter') && value.spatialFilter !== null) {
       activeSpatialFilters = true;
       spatialFilters[key] = boundsToValues(value.spatialFilter._bounds);
+    }  else if (has(value, 'textFilter') && value.textFilter !== null) {
+      activeTextFilters = true;
+      textFilters[key] = value.textFilter;
     }
   }
   if (activeUriFilters) {
@@ -235,6 +240,9 @@ export const stateToUrl = ({
   if (activeSpatialFilters) {
     params.spatialFilters = JSON.stringify(spatialFilters);
   }
+  if (activeTextFilters) {
+    params.textFilter = JSON.stringify(textFilters);
+  }
 
   return querystring.stringify(params);
 };
diff --git a/src/client/reducers/manuscriptsFacets.js b/src/client/reducers/manuscriptsFacets.js
index 76f7447d..7774d3bd 100644
--- a/src/client/reducers/manuscriptsFacets.js
+++ b/src/client/reducers/manuscriptsFacets.js
@@ -16,23 +16,24 @@ export const INITIAL_STATE = {
   facetUpdateID: 0,
   updatedFilter: null,
   facets: {
-    // label: {
-    //   id: 'label',
-    //   label: 'Label',
-    //   // predicate: defined in backend
-    //   distinctValueCount: 0,
-    //   values: [],
-    //   flatValues: [],
-    //   //sortBy: 'instanceCount',
-    //   //sortDirection: 'desc',
-    //   sortButton: false,
-    //   spatialFilterButton: false,
-    //   isFetching: false,
-    //   searchField: false,
-    //   containerClass: 'one',
-    //   filterType: 'text',
-    //   uriFilter: null
-    // },
+    text: {
+      id: 'text',
+      label: 'Label',
+      // predicate: defined in backend
+      distinctValueCount: 0,
+      values: [],
+      flatValues: [],
+      //sortBy: 'instanceCount',
+      //sortDirection: 'desc',
+      sortButton: false,
+      spatialFilterButton: false,
+      isFetching: false,
+      searchField: false,
+      containerClass: 'one',
+      filterType: 'text',
+      uriFilter: null,
+      textFilter: null,
+    },
     source: {
       id: 'source',
       label: 'Source',
-- 
GitLab