feat(App): update Finlytic Flutter app UI and blocs
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import 'dart:async';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
|
||||
import '../repositories/admin_repository.dart';
|
||||
import 'admin_event.dart';
|
||||
import 'admin_state.dart';
|
||||
|
||||
export 'admin_event.dart';
|
||||
export 'admin_state.dart';
|
||||
|
||||
class AdminBloc extends Bloc<AdminEvent, AdminState> {
|
||||
final AdminRepository repository;
|
||||
|
||||
AdminBloc({required this.repository}) : super(AdminInitial()) {
|
||||
on<FetchAdminUsers>(_onFetchUsers);
|
||||
on<CreateAdminUser>(_onCreateUser);
|
||||
on<UpdateAdminUser>(_onUpdateUser);
|
||||
}
|
||||
|
||||
Future<void> _onFetchUsers(FetchAdminUsers event, Emitter<AdminState> emit) async {
|
||||
emit(AdminLoading());
|
||||
try {
|
||||
final users = await repository.fetchUsers();
|
||||
emit(AdminLoaded(users));
|
||||
} catch (e) {
|
||||
emit(const AdminError("Fehler beim Laden der Admin-Nutzer."));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onCreateUser(CreateAdminUser event, Emitter<AdminState> emit) async {
|
||||
try {
|
||||
await repository.createUser(event.dto);
|
||||
add(FetchAdminUsers());
|
||||
} catch (e) {
|
||||
emit(AdminError(e.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _onUpdateUser(UpdateAdminUser event, Emitter<AdminState> emit) async {
|
||||
try {
|
||||
await repository.updateUser(event.id, event.dto);
|
||||
add(FetchAdminUsers());
|
||||
} catch (e) {
|
||||
emit(const AdminError("Nutzer konnte nicht aktualisiert werden."));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user