File tree 3 files changed +73
-1
lines changed
3 files changed +73
-1
lines changed Original file line number Diff line number Diff line change
1
+ var React = require ( 'react' ) ;
2
+
3
+ class Toggle extends React . Component {
4
+ render ( ) {
5
+ var toggleFilter = this . props . toggleFilter ;
6
+ var label = this . props . label ;
7
+ var isRefined = this . props . isRefined ;
8
+
9
+ return (
10
+ < label >
11
+ < input
12
+ checked = { isRefined }
13
+ onChange = { toggleFilter }
14
+ type = "checkbox"
15
+ />
16
+ { label }
17
+ </ label >
18
+ ) ;
19
+ }
20
+ }
21
+
22
+ Toggle . propTypes = {
23
+ toggleFilter : React . PropTypes . func ,
24
+ label : React . PropTypes . string ,
25
+ isRefined : React . PropTypes . bool
26
+ } ;
27
+
28
+ module . exports = Toggle ;
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ module.exports = {
6
6
multipleChoiceList : require ( './widgets/multiple-choice-list' ) ,
7
7
pagination : require ( './widgets/pagination' ) ,
8
8
searchBox : require ( './widgets/search-box' ) ,
9
- stats : require ( './widgets/stats' )
9
+ stats : require ( './widgets/stats' ) ,
10
+ toggle : require ( './widgets/toggle' )
10
11
}
11
12
} ;
Original file line number Diff line number Diff line change
1
+ var React = require ( 'react' ) ;
2
+
3
+ var utils = require ( '../lib/widget-utils.js' ) ;
4
+
5
+ function toggle ( {
6
+ container = null ,
7
+ facetName = null ,
8
+ label = null
9
+ } ) {
10
+ var Toggle = require ( '../components/Toggle' ) ;
11
+
12
+ var containerNode = utils . getContainerNode ( container ) ;
13
+ var usage = 'Usage: toggle({container, facetName, label})' ;
14
+
15
+ if ( container === null || facetName === null || label === null ) {
16
+ throw new Error ( usage ) ;
17
+ }
18
+
19
+ return {
20
+ getConfiguration : ( ) => ( {
21
+ facets : [ facetName ]
22
+ } ) ,
23
+ render : function ( results , state , helper ) {
24
+ var isRefined = helper . hasRefinements ( facetName ) ;
25
+
26
+ function toggleFilter ( ) {
27
+ var methodToCall = isRefined ? 'removeFacetRefinement' : 'addFacetRefinement' ;
28
+ helper [ methodToCall ] ( facetName , true ) . search ( ) ;
29
+ }
30
+
31
+ React . render (
32
+ < Toggle
33
+ isRefined = { isRefined }
34
+ toggleFilter = { toggleFilter }
35
+ label = { label }
36
+ /> ,
37
+ containerNode
38
+ ) ;
39
+ }
40
+ } ;
41
+ }
42
+
43
+ module . exports = toggle ;
You can’t perform that action at this time.
0 commit comments