31 lines
989 B
Dart
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() }
|
|
));
|
|
}
|
|
}
|