import 'package:equatable/equatable.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; // Define User States abstract class UserState extends Equatable { @override List get props => []; } class UserInitial extends UserState {} class UserLoaded extends UserState { final List users; final String selectedUser; UserLoaded({required this.users, required this.selectedUser}); @override List get props => [users, selectedUser]; } abstract class UserEvent extends Equatable { @override List get props => []; } class LoadUsers extends UserEvent { @override List get props => []; } class SelectUser extends UserEvent { final String selectedUser; SelectUser(this.selectedUser); @override List get props => [selectedUser]; } class UserManagementBloc extends Bloc { UserManagementBloc() : super(UserInitial()) { on((event, emit) { // Dummy list of users final List users = []; // Emit the UserLoaded state with the dummy users emit(UserLoaded(users: users, selectedUser: users[0])); }); on((event, emit) { // Handle user selection in the UserLoaded state if (state is UserLoaded) { final loadedState = state as UserLoaded; emit(UserLoaded( users: loadedState.users, selectedUser: event.selectedUser)); } }); } }