diff --git a/src/client/components/facet_bar/ActiveFilters.js b/src/client/components/facet_bar/ActiveFilters.js index 57bae263cbbb5814010f6a7c298a71a887e0b44f..f5d9855c77e5cd24a95056b111d6d1f8a8b4e04a 100644 --- a/src/client/components/facet_bar/ActiveFilters.js +++ b/src/client/components/facet_bar/ActiveFilters.js @@ -37,6 +37,7 @@ const ActiveFilters = props => { facetClass={props.facetClass} updateFacetOption={props.updateFacetOption} someFacetIsFetching={someFacetIsFetching} + fetchFacet={props.fetchFacet} /> ); }; @@ -49,7 +50,8 @@ ActiveFilters.propTypes = { textFilters: PropTypes.object.isRequired, timespanFilters: PropTypes.object.isRequired, updateFacetOption: PropTypes.func.isRequired, - someFacetIsFetching: PropTypes.bool.isRequired + someFacetIsFetching: PropTypes.bool.isRequired, + fetchFacet: PropTypes.func.isRequired }; export default ActiveFilters; diff --git a/src/client/components/facet_bar/ChipsArray.js b/src/client/components/facet_bar/ChipsArray.js index d21a9e6b310ff5cad0205b74658eec0a2d0f4664..a706f7f8febeb63d392adb94917df63001323562 100644 --- a/src/client/components/facet_bar/ChipsArray.js +++ b/src/client/components/facet_bar/ChipsArray.js @@ -19,13 +19,35 @@ class ChipsArray extends React.Component { handleDelete = item => () => { if (!this.props.someFacetIsFetching) { - if (item.filterType === 'uriFilter') { - this.props.updateFacetOption({ - facetClass: this.props.facetClass, - facetID: item.facetID, - option: item.filterType, - value: item.value - }); + switch(item.filterType) { + case 'uriFilter': + this.props.updateFacetOption({ + facetClass: this.props.facetClass, + facetID: item.facetID, + option: item.filterType, + value: item.value + }); + break; + case 'textFilter': + this.props.updateFacetOption({ + facetClass: this.props.facetClass, + facetID: item.facetID, + option: item.filterType, + value: null + }); + break; + case 'timespanFilter': { + this.props.updateFacetOption({ + facetClass: this.props.facetClass, + facetID: item.facetID, + option: item.filterType, + value: null + }); + this.props.fetchFacet({ + facetClass: this.props.facetClass, + facetID: item.facetID, + }); + } } } }; @@ -91,7 +113,8 @@ ChipsArray.propTypes = { data: PropTypes.array.isRequired, facetClass: PropTypes.string.isRequired, updateFacetOption: PropTypes.func.isRequired, - someFacetIsFetching: PropTypes.bool.isRequired + someFacetIsFetching: PropTypes.bool.isRequired, + fetchFacet: PropTypes.func.isRequired }; export default withStyles(styles)(ChipsArray); diff --git a/src/client/components/facet_bar/FacetBar.js b/src/client/components/facet_bar/FacetBar.js index de48ee61dd6d11d3d1adf1f3592dd22a93389e84..1b025d82a68d704b821f41aaecf630f3a1a93487 100644 --- a/src/client/components/facet_bar/FacetBar.js +++ b/src/client/components/facet_bar/FacetBar.js @@ -193,6 +193,7 @@ class FacetBar extends React.Component { updateFacetOption={this.props.updateFacetOption} fetchResultCount={this.props.fetchResultCount} someFacetIsFetching={someFacetIsFetching} + fetchFacet={this.props.fetchFacet} /> </Paper> {Object.keys(facets).map(facetID => this.renderFacet(facetID, someFacetIsFetching))} diff --git a/src/client/components/facet_bar/FacetInfo.js b/src/client/components/facet_bar/FacetInfo.js index a294af002a768533d5bed0504fcb99a39a3a0e3a..e694b60bf16f1404d6555a14da50e01c65ed1e8e 100644 --- a/src/client/components/facet_bar/FacetInfo.js +++ b/src/client/components/facet_bar/FacetInfo.js @@ -91,6 +91,7 @@ class FacetInfo extends React.Component { timespanFilters={timespanFilters} updateFacetOption={this.props.updateFacetOption} someFacetIsFetching={someFacetIsFetching} + fetchFacet={this.props.fetchFacet} /> </div> <Divider className={classes.facetInfoDivider} /> @@ -112,7 +113,8 @@ FacetInfo.propTypes = { fetchingResultCount: PropTypes.bool.isRequired, updateFacetOption: PropTypes.func.isRequired, fetchResultCount: PropTypes.func.isRequired, - someFacetIsFetching: PropTypes.bool.isRequired + someFacetIsFetching: PropTypes.bool.isRequired, + fetchFacet: PropTypes.func.isRequired }; export default withStyles(styles)(FacetInfo); diff --git a/src/client/reducers/helpers.js b/src/client/reducers/helpers.js index 2bff9ba5efac41d7c5b02a98e2d85fa0643dac87..586a69f174e7a08930567f11b650d144c7cb7e53 100644 --- a/src/client/reducers/helpers.js +++ b/src/client/reducers/helpers.js @@ -116,13 +116,20 @@ const updateFacetFilter = (state, action) => { textFilter: value }; } else if (oldFacet.filterType === 'timespanFilter') { - newFacet = { - ...state.facets[facetID], - timespanFilter: { - start: value[0], - end: value[1] - } - }; + if (value == null) { + newFacet = { + ...state.facets[facetID], + timespanFilter: null + }; + } else { + newFacet = { + ...state.facets[facetID], + timespanFilter: { + start: value[0], + end: value[1] + } + }; + } } return { ...state,