File tree Expand file tree Collapse file tree 3 files changed +18
-34
lines changed
Expand file tree Collapse file tree 3 files changed +18
-34
lines changed Original file line number Diff line number Diff line change @@ -4,20 +4,17 @@ class EngagementsFilter extends Equatable {
44 const EngagementsFilter ({
55 this .searchQuery,
66 this .selectedStatus,
7- this .hasComment = false ,
87 });
98
109 final String ? searchQuery;
1110 final ModerationStatus ? selectedStatus;
12- final bool hasComment;
1311
1412 bool get isFilterActive =>
1513 (searchQuery != null && searchQuery! .isNotEmpty) ||
16- selectedStatus != null ||
17- hasComment;
14+ selectedStatus != null ;
1815
1916 @override
20- List <Object ?> get props => [searchQuery, selectedStatus, hasComment ];
17+ List <Object ?> get props => [searchQuery, selectedStatus];
2118}
2219
2320class ReportsFilter extends Equatable {
Original file line number Diff line number Diff line change @@ -104,21 +104,27 @@ class CommunityManagementBloc
104104 }
105105
106106 Map <String , dynamic > buildEngagementsFilterMap (EngagementsFilter filter) {
107- final filterMap = < String , dynamic > {};
107+ final conditions = < Map <String , dynamic >> [];
108+
108109 if (filter.searchQuery != null && filter.searchQuery! .isNotEmpty) {
109- filterMap[ 'userId' ] = filter.searchQuery;
110+ conditions. add ({ 'userId' : filter.searchQuery}) ;
110111 }
112+
111113 if (filter.selectedStatus != null ) {
112- filterMap['comment.status' ] = {
113- r'$in' : [filter.selectedStatus! .name],
114- };
114+ if (filter.selectedStatus == ModerationStatus .resolved) {
115+ conditions.add ({'comment.status' : ModerationStatus .resolved.name});
116+ } else {
117+ conditions.add ({'comment.status' : filter.selectedStatus! .name});
118+ }
115119 }
116- if (filter.hasComment) {
117- filterMap['comment' ] = {
118- r'$ne' : null ,
119- };
120+
121+ if (conditions.isEmpty) {
122+ return {};
123+ } else if (conditions.length == 1 ) {
124+ return conditions.first;
125+ } else {
126+ return {r'$and' : conditions};
120127 }
121- return filterMap;
122128 }
123129
124130 Map <String , dynamic > buildReportsFilterMap (ReportsFilter filter) {
Original file line number Diff line number Diff line change @@ -169,7 +169,6 @@ class _CommunityFilterDialogState extends State<CommunityFilterDialog> {
169169 EngagementsFilter (
170170 searchQuery: query,
171171 selectedStatus: state.engagementsFilter.selectedStatus,
172- hasComment: state.engagementsFilter.hasComment,
173172 ),
174173 ),
175174 );
@@ -259,24 +258,6 @@ class _CommunityFilterDialogState extends State<CommunityFilterDialog> {
259258 EngagementsFilter (
260259 searchQuery: state.engagementsFilter.searchQuery,
261260 selectedStatus: item,
262- hasComment: state.engagementsFilter.hasComment,
263- ),
264- ),
265- );
266- },
267- ),
268- const Divider (height: AppSpacing .lg * 2 ),
269- SwitchListTile (
270- title: Text (l10n.hasCommentFilterLabel),
271- subtitle: Text (l10n.hasCommentFilterDescription),
272- value: state.engagementsFilter.hasComment,
273- onChanged: (value) {
274- context.read <CommunityFilterBloc >().add (
275- EngagementsFilterChanged (
276- EngagementsFilter (
277- searchQuery: state.engagementsFilter.searchQuery,
278- selectedStatus: state.engagementsFilter.selectedStatus,
279- hasComment: value,
280261 ),
281262 ),
282263 );
You can’t perform that action at this time.
0 commit comments