mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-14 17:25:50 +00:00
61 lines
1.4 KiB
Dart
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));
|
|
}
|
|
});
|
|
}
|
|
}
|