feat(App): update Finlytic Flutter app UI and blocs

This commit is contained in:
2026-08-09 21:01:46 +02:00
parent e7427b7464
commit a708d2977c
591 changed files with 1095105 additions and 0 deletions
@@ -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."));
}
}
}
@@ -0,0 +1,31 @@
import 'package:equatable/equatable.dart';
import '../models/admin_create_user_request_dto.dart';
import '../models/admin_update_user_request_dto.dart';
abstract class AdminEvent extends Equatable {
const AdminEvent();
@override
List<Object?> get props => [];
}
class FetchAdminUsers extends AdminEvent {}
class CreateAdminUser extends AdminEvent {
final AdminCreateUserRequestDto dto;
const CreateAdminUser(this.dto);
@override
List<Object?> get props => [dto];
}
class UpdateAdminUser extends AdminEvent {
final String id;
final AdminUpdateUserRequestDto dto;
const UpdateAdminUser(this.id, this.dto);
@override
List<Object?> get props => [id, dto];
}
@@ -0,0 +1,31 @@
import 'package:equatable/equatable.dart';
import 'package:finlytic_app/features/admin/models/admin_user_model.dart';
abstract class AdminState extends Equatable {
const AdminState();
@override
List<Object?> get props => [];
}
class AdminInitial extends AdminState {}
class AdminLoading extends AdminState {}
class AdminLoaded extends AdminState {
final List<AdminUserModel> users;
const AdminLoaded(this.users);
@override
List<Object?> get props => [users];
}
class AdminError extends AdminState {
final String message;
const AdminError(this.message);
@override
List<Object?> get props => [message];
}