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 'package:finlytic_app/features/trades/repositories/trade_repository.dart';
import 'trade_event.dart';
import 'trade_state.dart';
class TradeBloc extends Bloc<TradeEvent, TradeState> {
final TradeRepository repository;
TradeBloc({required this.repository}) : super(TradeInitial()) {
on<FetchTrades>(_onFetchTrades);
on<CloseTrade>(_onCloseTrade);
on<AcceptTradeProposalEvent>(_onAcceptTradeProposal);
}
Future<void> _onFetchTrades(FetchTrades event, Emitter<TradeState> emit) async {
emit(TradeLoading());
try {
final trades = await repository.fetchTrades(isin: event.isin, status: event.status);
emit(TradeLoaded(trades));
} catch (e) {
emit(const TradeError("Trades konnten nicht geladen werden"));
}
}
Future<void> _onCloseTrade(CloseTrade event, Emitter<TradeState> emit) async {
emit(TradeLoading());
try {
await repository.closeTrade(event.tradeId);
final trades = await repository.fetchTrades();
emit(TradeLoaded(trades));
} catch (e) {
emit(const TradeError("Position konnte nicht geschlossen werden"));
}
}
Future<void> _onAcceptTradeProposal(AcceptTradeProposalEvent event, Emitter<TradeState> emit) async {
emit(TradeLoading());
try {
await repository.acceptTrade(event.dto);
final trades = await repository.fetchTrades();
emit(TradeLoaded(trades));
} catch (e) {
emit(const TradeError("Trade konnte nicht akzeptiert werden"));
}
}
}