@@ -3,6 +3,8 @@ import 'package:core/core.dart';
33import 'package:equatable/equatable.dart' ;
44import 'package:flutter_news_app_web_dashboard_full_source_code/user_management/bloc/user_management_bloc.dart'
55 show UserManagementBloc;
6+ import 'package:flutter_news_app_web_dashboard_full_source_code/user_management/enums/authentication_filter.dart' ;
7+ import 'package:flutter_news_app_web_dashboard_full_source_code/user_management/enums/subscription_filter.dart' ;
68
79part 'user_filter_event.dart' ;
810part 'user_filter_state.dart' ;
@@ -18,8 +20,6 @@ class UserFilterBloc extends Bloc<UserFilterEvent, UserFilterState> {
1820 /// {@macro user_filter_bloc}
1921 UserFilterBloc () : super (const UserFilterState ()) {
2022 on < UserFilterSearchQueryChanged > (_onSearchQueryChanged);
21- on < UserFilterAppRolesChanged > (_onAppRolesChanged);
22- on < UserFilterDashboardRolesChanged > (_onDashboardRolesChanged);
2323 on < UserFilterReset > (_onFilterReset);
2424 on < UserFilterApplied > (_onFilterApplied);
2525 }
@@ -32,22 +32,6 @@ class UserFilterBloc extends Bloc<UserFilterEvent, UserFilterState> {
3232 emit (state.copyWith (searchQuery: event.query));
3333 }
3434
35- /// Handles changes to the selected app roles filter.
36- void _onAppRolesChanged (
37- UserFilterAppRolesChanged event,
38- Emitter <UserFilterState > emit,
39- ) {
40- emit (state.copyWith (selectedAppRoles: event.appRoles));
41- }
42-
43- /// Handles changes to the selected dashboard roles filter.
44- void _onDashboardRolesChanged (
45- UserFilterDashboardRolesChanged event,
46- Emitter <UserFilterState > emit,
47- ) {
48- emit (state.copyWith (selectedDashboardRoles: event.dashboardRoles));
49- }
50-
5135 /// Resets all filters to their default values.
5236 void _onFilterReset (
5337 UserFilterReset event,
@@ -64,35 +48,10 @@ class UserFilterBloc extends Bloc<UserFilterEvent, UserFilterState> {
6448 emit (
6549 state.copyWith (
6650 searchQuery: event.searchQuery,
67- selectedAppRoles: event.selectedAppRoles,
68- selectedDashboardRoles: event.selectedDashboardRoles,
51+ authenticationFilter: event.authenticationFilter,
52+ subscriptionFilter: event.subscriptionFilter,
53+ dashboardRole: event.dashboardRole,
6954 ),
7055 );
7156 }
72-
73- /// Builds the filter map for the data repository query.
74- Map <String , dynamic > buildFilterMap () {
75- final filter = < String , dynamic > {};
76-
77- if (state.searchQuery.isNotEmpty) {
78- filter[r'$or' ] = [
79- {
80- 'email' : {r'$regex' : state.searchQuery, r'$options' : 'i' },
81- },
82- {'_id' : state.searchQuery},
83- ];
84- }
85-
86- if (state.selectedAppRoles.isNotEmpty) {
87- filter['appRole' ] = {
88- r'$in' : state.selectedAppRoles.map ((r) => r.name).toList (),
89- };
90- }
91- if (state.selectedDashboardRoles.isNotEmpty) {
92- filter['dashboardRole' ] = {
93- r'$in' : state.selectedDashboardRoles.map ((r) => r.name).toList (),
94- };
95- }
96- return filter;
97- }
9857}
0 commit comments