import 'dart:ui'; import 'package:equatable/equatable.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:tunas/repositories/account/account_repository.dart'; import 'package:tunas/repositories/account/models/category.dart'; part 'category_event.dart'; part 'category_state.dart'; class CategoryBloc extends Bloc { final AccountRepository _accountRepository; CategoryBloc({required AccountRepository accountRepository}) : _accountRepository = accountRepository, super(const CategoryState()) { on(_onCategoriesLoad); _accountRepository .getCategoriesStream() .listen((categories) => add(CategoriesLoad(categories))); } _onCategoriesLoad( CategoriesLoad event, Emitter emit ) { emit(state.copyWith( categories: event.categories, categoriesColors: { for (var category in event.categories) category.label : category.rgbToColor() } )); } }