mirror of
https://github.com/Xevion/paperless-mobile.git
synced 2025-12-15 06:12:29 -06:00
Externalized API and models as own package
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:paperless_mobile/features/labels/model/label.model.dart';
|
||||
import 'package:paperless_mobile/features/labels/model/label_state.dart';
|
||||
import 'package:paperless_mobile/features/labels/repository/label_repository.dart';
|
||||
import 'package:paperless_api/paperless_api.dart';
|
||||
import 'package:paperless_mobile/features/labels/bloc/label_state.dart';
|
||||
|
||||
abstract class LabelCubit<T extends Label> extends Cubit<LabelState<T>> {
|
||||
final LabelRepository labelRepository;
|
||||
final PaperlessLabelsApi labelsApi;
|
||||
|
||||
LabelCubit(this.labelRepository) : super(LabelState.initial());
|
||||
LabelCubit(this.labelsApi) : super(LabelState.initial());
|
||||
|
||||
@protected
|
||||
void loadFrom(Iterable<T> items) {
|
||||
|
||||
19
lib/features/labels/bloc/label_state.dart
Normal file
19
lib/features/labels/bloc/label_state.dart
Normal file
@@ -0,0 +1,19 @@
|
||||
import 'package:paperless_api/paperless_api.dart';
|
||||
|
||||
class LabelState<T extends Label> {
|
||||
LabelState.initial() : this(isLoaded: false, labels: {});
|
||||
final bool isLoaded;
|
||||
final Map<int, T> labels;
|
||||
|
||||
LabelState({
|
||||
required this.isLoaded,
|
||||
required this.labels,
|
||||
});
|
||||
|
||||
T? getLabel(int? key) {
|
||||
if (isLoaded) {
|
||||
return labels[key];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user