@@ -58,6 +58,12 @@ const Filter = ({
5858 updateQuery ( filterChange ) ;
5959 } }
6060 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+ }
6167 updateFilter ( filterChange ) ;
6268 updateQuery ( filterChange ) ;
6369 } }
@@ -90,6 +96,32 @@ Filter.propTypes = {
9096 updateQuery : PT . func ,
9197} ;
9298
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+
93125const mapStateToProps = ( state ) => ( {
94126 state : state ,
95127 bucket : state . filter . challenge . bucket ,
@@ -99,8 +131,8 @@ const mapStateToProps = (state) => ({
99131 totalPrizesFrom : state . filter . challenge . totalPrizesFrom ,
100132 totalPrizesTo : state . filter . challenge . totalPrizesTo ,
101133 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 ) ,
104136 challengeBuckets : state . lookup . buckets ,
105137 challengeTypes : state . lookup . types ,
106138 challengeTracks : state . lookup . tracks ,
0 commit comments