feat(App): update Finlytic Flutter app UI and blocs
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import 'dart:async';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:finlytic_app/features/favorites/repositories/favorites_repository.dart';
|
||||
import 'favorites_event.dart';
|
||||
import 'favorites_state.dart';
|
||||
|
||||
class FavoritesBloc extends Bloc<FavoritesEvent, FavoritesState> {
|
||||
final FavoritesRepository repository;
|
||||
|
||||
FavoritesBloc({required this.repository}) : super(FavoritesInitial()) {
|
||||
on<LoadFavorites>(_onLoadFavorites);
|
||||
}
|
||||
|
||||
Future<void> _onLoadFavorites(LoadFavorites event, Emitter<FavoritesState> emit) async {
|
||||
emit(FavoritesLoading());
|
||||
try {
|
||||
final favorites = await repository.fetchFavoritesDetails(event.symbols);
|
||||
emit(FavoritesLoaded(favorites));
|
||||
} catch (e) {
|
||||
emit(const FavoritesError("Fehler beim Laden der Favoriten."));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
abstract class FavoritesEvent extends Equatable {
|
||||
const FavoritesEvent();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class LoadFavorites extends FavoritesEvent {
|
||||
final List<String> symbols;
|
||||
|
||||
const LoadFavorites(this.symbols);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [symbols];
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
import 'package:equatable/equatable.dart';
|
||||
import 'package:finlytic_app/features/favorites/models/favorite_asset_model.dart';
|
||||
|
||||
abstract class FavoritesState extends Equatable {
|
||||
const FavoritesState();
|
||||
|
||||
@override
|
||||
List<Object?> get props => [];
|
||||
}
|
||||
|
||||
class FavoritesInitial extends FavoritesState {}
|
||||
|
||||
class FavoritesLoading extends FavoritesState {}
|
||||
|
||||
class FavoritesLoaded extends FavoritesState {
|
||||
final List<FavoriteAssetModel> favorites;
|
||||
|
||||
const FavoritesLoaded(this.favorites);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [favorites];
|
||||
}
|
||||
|
||||
class FavoritesError extends FavoritesState {
|
||||
final String message;
|
||||
|
||||
const FavoritesError(this.message);
|
||||
|
||||
@override
|
||||
List<Object?> get props => [message];
|
||||
}
|
||||
Reference in New Issue
Block a user