From 194ddff5aeff63348fdc79136e51511cf7117968 Mon Sep 17 00:00:00 2001
From: esikkala <esko.ikkala@aalto.fi>
Date: Thu, 21 Oct 2021 13:33:06 +0300
Subject: [PATCH] FacetBar: handle dateNoTimespanFilter

---
 src/client/components/facet_bar/ActiveFilters.js | 13 ++++++++++++-
 src/client/components/facet_bar/FacetBar.js      |  1 +
 src/client/components/facet_bar/FacetInfo.js     |  8 ++++++++
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/client/components/facet_bar/ActiveFilters.js b/src/client/components/facet_bar/ActiveFilters.js
index 944d5f7e..15705120 100644
--- a/src/client/components/facet_bar/ActiveFilters.js
+++ b/src/client/components/facet_bar/ActiveFilters.js
@@ -4,7 +4,10 @@ import intl from 'react-intl-universal'
 import ChipsArray from './ChipsArray'
 
 const ActiveFilters = props => {
-  const { uriFilters, textFilters, timespanFilters, integerFilters, facetClass, someFacetIsFetching, fetchingResultCount } = props
+  const {
+    uriFilters, textFilters, timespanFilters, dateNoTimespanFilters, integerFilters,
+    facetClass, someFacetIsFetching, fetchingResultCount
+  } = props
   const facetValues = []
   Object.keys(uriFilters).forEach(activeFacetID => {
     // URI filter may have multiple values
@@ -33,6 +36,14 @@ const ActiveFilters = props => {
       value: timespanFilters[facetID]
     })
   })
+  Object.keys(dateNoTimespanFilters).forEach(facetID => {
+    facetValues.push({
+      facetID: facetID,
+      facetLabel: intl.get(`perspectives.${facetClass}.properties.${facetID}.label`),
+      filterType: 'dateNoTimespanFilter',
+      value: dateNoTimespanFilters[facetID]
+    })
+  })
   Object.keys(integerFilters).forEach(facetID => {
     facetValues.push({
       facetID: facetID,
diff --git a/src/client/components/facet_bar/FacetBar.js b/src/client/components/facet_bar/FacetBar.js
index e0337ad2..3cd17114 100644
--- a/src/client/components/facet_bar/FacetBar.js
+++ b/src/client/components/facet_bar/FacetBar.js
@@ -173,6 +173,7 @@ class FacetBar extends React.Component {
         )
         break
       case 'dateFilter':
+      case 'dateNoTimespanFilter':
         facetComponent = (
           <DateFacet
             facetID={facetID}
diff --git a/src/client/components/facet_bar/FacetInfo.js b/src/client/components/facet_bar/FacetInfo.js
index 07e040e1..032f8a3b 100644
--- a/src/client/components/facet_bar/FacetInfo.js
+++ b/src/client/components/facet_bar/FacetInfo.js
@@ -70,11 +70,13 @@ class FacetInfo extends React.Component {
     const spatialFilters = {}
     const textFilters = {}
     const timespanFilters = {}
+    const dateNoTimespanFilters = {}
     const integerFilters = {}
     let activeUriFilters = false
     let activeSpatialFilters = false
     let activeTextFilters = false
     let activeTimespanFilters = false
+    let activeDateNoTimespanFilters = false
     let activeIntegerFilters = false
     Object.entries(facets).forEach(entry => {
       const [key, value] = entry
@@ -94,6 +96,10 @@ class FacetInfo extends React.Component {
         activeTimespanFilters = true
         timespanFilters[key] = value.timespanFilter
       }
+      if (has(value, 'dateNoTimespanFilter') && value.dateNoTimespanFilter !== null) {
+        activeDateNoTimespanFilters = true
+        dateNoTimespanFilters[key] = value.dateNoTimespanFilter
+      }
       if (has(value, 'integerFilter') && value.integerFilter !== null) {
         activeIntegerFilters = true
         integerFilters[key] = value.integerFilter
@@ -109,6 +115,7 @@ class FacetInfo extends React.Component {
           activeSpatialFilters ||
           activeTextFilters ||
           activeTimespanFilters ||
+          activeDateNoTimespanFilters ||
           activeIntegerFilters
         ) &&
           <>
@@ -132,6 +139,7 @@ class FacetInfo extends React.Component {
                 spatialFilters={spatialFilters}
                 textFilters={textFilters}
                 timespanFilters={timespanFilters}
+                dateNoTimespanFilters={dateNoTimespanFilters}
                 integerFilters={integerFilters}
                 updateFacetOption={this.props.updateFacetOption}
                 someFacetIsFetching={someFacetIsFetching}
-- 
GitLab