diff --git a/src/client/components/facet_bar/ActiveFilters.js b/src/client/components/facet_bar/ActiveFilters.js index 91f86b6fc82059f5a953c734b625c55e5558ed62..57bae263cbbb5814010f6a7c298a71a887e0b44f 100644 --- a/src/client/components/facet_bar/ActiveFilters.js +++ b/src/client/components/facet_bar/ActiveFilters.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import ChipsArray from './ChipsArray'; const ActiveFilters = props => { - const { uriFilters, textFilters, timespanFilters, facets } = props; + const { uriFilters, textFilters, timespanFilters, facets, someFacetIsFetching } = props; const facetValues = []; Object.keys(uriFilters).map(activeFacetID => { Object.values(uriFilters[activeFacetID]).forEach(value => { @@ -36,6 +36,7 @@ const ActiveFilters = props => { data={facetValues} facetClass={props.facetClass} updateFacetOption={props.updateFacetOption} + someFacetIsFetching={someFacetIsFetching} /> ); }; @@ -47,7 +48,8 @@ ActiveFilters.propTypes = { spatialFilters: PropTypes.object.isRequired, textFilters: PropTypes.object.isRequired, timespanFilters: PropTypes.object.isRequired, - updateFacetOption: PropTypes.func.isRequired + updateFacetOption: PropTypes.func.isRequired, + someFacetIsFetching: PropTypes.bool.isRequired }; export default ActiveFilters; diff --git a/src/client/components/facet_bar/ChipsArray.js b/src/client/components/facet_bar/ChipsArray.js index fff73b2ca81c91d551ccc9b5775a93de45586e38..d21a9e6b310ff5cad0205b74658eec0a2d0f4664 100644 --- a/src/client/components/facet_bar/ChipsArray.js +++ b/src/client/components/facet_bar/ChipsArray.js @@ -18,13 +18,15 @@ const styles = theme => ({ class ChipsArray extends React.Component { handleDelete = item => () => { - if (item.filterType === 'uriFilter') { - this.props.updateFacetOption({ - facetClass: this.props.facetClass, - facetID: item.facetID, - option: item.filterType, - value: item.value - }); + if (!this.props.someFacetIsFetching) { + if (item.filterType === 'uriFilter') { + this.props.updateFacetOption({ + facetClass: this.props.facetClass, + facetID: item.facetID, + option: item.filterType, + value: item.value + }); + } } }; @@ -88,7 +90,8 @@ ChipsArray.propTypes = { classes: PropTypes.object.isRequired, data: PropTypes.array.isRequired, facetClass: PropTypes.string.isRequired, - updateFacetOption: PropTypes.func.isRequired + updateFacetOption: PropTypes.func.isRequired, + someFacetIsFetching: PropTypes.bool.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 ffc74ae28c0fc82ae18e2b7c505d708d166badde..de48ee61dd6d11d3d1adf1f3592dd22a93389e84 100644 --- a/src/client/components/facet_bar/FacetBar.js +++ b/src/client/components/facet_bar/FacetBar.js @@ -192,6 +192,7 @@ class FacetBar extends React.Component { fetchingResultCount={this.props.fetchingResultCount} updateFacetOption={this.props.updateFacetOption} fetchResultCount={this.props.fetchResultCount} + someFacetIsFetching={someFacetIsFetching} /> </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 77bb51fe011ecbf1740cfce67d881e7e54da783e..a294af002a768533d5bed0504fcb99a39a3a0e3a 100644 --- a/src/client/components/facet_bar/FacetInfo.js +++ b/src/client/components/facet_bar/FacetInfo.js @@ -34,7 +34,7 @@ class FacetInfo extends React.Component { } render() { - const { classes, facetClass, resultClass, resultCount } = this.props; + const { classes, facetClass, resultClass, resultCount, someFacetIsFetching } = this.props; const { facets } = this.props.facetData; let uriFilters = {}; let spatialFilters = {}; @@ -90,6 +90,7 @@ class FacetInfo extends React.Component { textFilters={textFilters} timespanFilters={timespanFilters} updateFacetOption={this.props.updateFacetOption} + someFacetIsFetching={someFacetIsFetching} /> </div> <Divider className={classes.facetInfoDivider} /> @@ -110,7 +111,8 @@ FacetInfo.propTypes = { resultCount: PropTypes.number.isRequired, fetchingResultCount: PropTypes.bool.isRequired, updateFacetOption: PropTypes.func.isRequired, - fetchResultCount: PropTypes.func.isRequired + fetchResultCount: PropTypes.func.isRequired, + someFacetIsFetching: PropTypes.bool.isRequired }; export default withStyles(styles)(FacetInfo);