@@ -58,6 +58,12 @@ const Filter = ({
58
58
updateQuery ( filterChange ) ;
59
59
} }
60
60
updateFilter = { ( filterChange ) => {
61
+ // turn off community filters if all sub-communities are selected
62
+ const n = filterChange . groups . length + filterChange . events . length ;
63
+ if ( n >= challengeSubCommunities . length ) {
64
+ filterChange . events = [ ] ;
65
+ filterChange . groups = [ ] ;
66
+ }
61
67
updateFilter ( filterChange ) ;
62
68
updateQuery ( filterChange ) ;
63
69
} }
@@ -90,6 +96,32 @@ Filter.propTypes = {
90
96
updateQuery : PT . func ,
91
97
} ;
92
98
99
+ function getSelectedCommunityEvents ( state ) {
100
+ if (
101
+ state . filter . challenge . events . length > 0 ||
102
+ state . filter . challenge . groups . length > 0
103
+ ) {
104
+ return state . filter . challenge . events ;
105
+ } else {
106
+ return state . lookup . subCommunities
107
+ . filter ( utils . challenge . isTCOEventCommunity )
108
+ . map ( utils . challenge . getCommunityEvent ) ;
109
+ }
110
+ }
111
+
112
+ function getSelectedCommunityGroups ( state ) {
113
+ if (
114
+ state . filter . challenge . events . length > 0 ||
115
+ state . filter . challenge . groups . length > 0
116
+ ) {
117
+ return state . filter . challenge . groups ;
118
+ } else {
119
+ return state . lookup . subCommunities
120
+ . filter ( utils . challenge . isGroupCommunity )
121
+ . map ( utils . challenge . getCommunityGroup ) ;
122
+ }
123
+ }
124
+
93
125
const mapStateToProps = ( state ) => ( {
94
126
state : state ,
95
127
bucket : state . filter . challenge . bucket ,
@@ -99,8 +131,8 @@ const mapStateToProps = (state) => ({
99
131
totalPrizesFrom : state . filter . challenge . totalPrizesFrom ,
100
132
totalPrizesTo : state . filter . challenge . totalPrizesTo ,
101
133
recommended : state . filter . challenge . recommended ,
102
- events : state . filter . challenge . events ,
103
- groups : state . filter . challenge . groups ,
134
+ events : getSelectedCommunityEvents ( state ) ,
135
+ groups : getSelectedCommunityGroups ( state ) ,
104
136
challengeBuckets : state . lookup . buckets ,
105
137
challengeTypes : state . lookup . types ,
106
138
challengeTracks : state . lookup . tracks ,
0 commit comments