From a3dc950e49adf084b0fd5fccf0e00924406a46a9 Mon Sep 17 00:00:00 2001 From: Marie-Laure Thuret Date: Fri, 10 Feb 2017 09:17:04 +0100 Subject: [PATCH] feat(MultiRange): add an all range (#1959) BREAKING CHANGE: - MultiRange/connectMultiRange: will add a "All" range to allow unselection of range without the usage of CurrentRefinements. This range can be either filtered or ramove via CSS if not needed. The label can be changed by using our translations system. --- .../src/components/MultiRange.js | 14 +- .../src/components/MultiRange.test.js | 22 ++- .../__snapshots__/MultiRange.test.js.snap | 159 +++++++++++++++++- .../src/connectors/connectMultiRange.js | 13 ++ .../src/connectors/connectMultiRange.test.js | 116 +++++++------ .../src/widgets/MultiRange.js | 2 + 6 files changed, 260 insertions(+), 66 deletions(-) diff --git a/packages/react-instantsearch/src/components/MultiRange.js b/packages/react-instantsearch/src/components/MultiRange.js index 524df96e97..c6ac0b0bc7 100644 --- a/packages/react-instantsearch/src/components/MultiRange.js +++ b/packages/react-instantsearch/src/components/MultiRange.js @@ -1,6 +1,7 @@ import React, {PropTypes, Component} from 'react'; import List from './List'; import classNames from './classNames.js'; +import translatable from '../core/translatable'; const cx = classNames('MultiRange'); @@ -15,6 +16,7 @@ class MultiRange extends Component { refine: PropTypes.func.isRequired, transformItems: PropTypes.func, canRefine: PropTypes.bool.isRequired, + translate: PropTypes.func.isRequired, }; static contextTypes = { @@ -30,10 +32,10 @@ class MultiRange extends Component { } renderItem = item => { - const {refine} = this.props; - + const {refine, translate} = this.props; + const label = item.value === '' ? translate('all') : item.label; return ( -