Files
Krezus/lib/domains/category/category_bloc.dart
2024-02-17 14:16:07 +01:00

31 lines
989 B
Dart

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