Files
syncrow-web/lib/pages/spaces_management/bloc/test_bloc.dart
hannathkadher 8672817791 updated models
2024-10-02 10:27:54 +04:00

61 lines
1.4 KiB
Dart

import 'package:equatable/equatable.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
// Define User States
abstract class UserState extends Equatable {
@override
List<Object> get props => [];
}
class UserInitial extends UserState {}
class UserLoaded extends UserState {
final List<String> users;
final String selectedUser;
UserLoaded({required this.users, required this.selectedUser});
@override
List<Object> get props => [users, selectedUser];
}
abstract class UserEvent extends Equatable {
@override
List<Object> get props => [];
}
class LoadUsers extends UserEvent {
@override
List<Object> get props => [];
}
class SelectUser extends UserEvent {
final String selectedUser;
SelectUser(this.selectedUser);
@override
List<Object> get props => [selectedUser];
}
class UserManagementBloc extends Bloc<UserEvent, UserState> {
UserManagementBloc() : super(UserInitial()) {
on<LoadUsers>((event, emit) {
// Dummy list of users
final List<String> users = [];
// Emit the UserLoaded state with the dummy users
emit(UserLoaded(users: users, selectedUser: users[0]));
});
on<SelectUser>((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));
}
});
}
}