import 'dart:async'; import 'package:bloc/bloc.dart'; import 'package:equatable/equatable.dart'; import 'package:paperless_api/paperless_api.dart'; import 'package:paperless_mobile/core/repository/label_repository.dart'; part 'edit_label_state.dart'; class EditLabelCubit extends Cubit> { final LabelRepository _repository; StreamSubscription? _subscription; EditLabelCubit(LabelRepository repository) : _repository = repository, super(EditLabelState(labels: repository.current?.values ?? {})) { _subscription = repository.values.listen( (event) => emit(EditLabelState(labels: event?.values ?? {})), ); } Future create(T label) => _repository.create(label); Future update(T label) => _repository.update(label); Future delete(T label) => _repository.delete(label); @override Future close() { _subscription?.cancel(); return super.close(); } }