WIP - More decoupling of data layer from ui layer

This commit is contained in:
Anton Stubenbord
2022-12-09 00:54:39 +01:00
parent 75fa2f7713
commit c9694fa8d0
87 changed files with 2508 additions and 1879 deletions

View File

@@ -1,24 +1,25 @@
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:injectable/injectable.dart';
import 'package:paperless_api/paperless_api.dart';
import 'package:paperless_mobile/features/linked_documents_preview/bloc/state/linked_documents_state.dart';
@injectable
class LinkedDocumentsCubit extends Cubit<LinkedDocumentsState> {
final PaperlessDocumentsApi _api;
LinkedDocumentsCubit(this._api) : super(LinkedDocumentsState());
LinkedDocumentsCubit(this._api, DocumentFilter filter)
: super(LinkedDocumentsState(filter: filter)) {
_initialize();
}
Future<void> initialize(DocumentFilter filter) async {
Future<void> _initialize() async {
final documents = await _api.find(
filter.copyWith(
state.filter.copyWith(
pageSize: 100,
),
);
emit(LinkedDocumentsState(
isLoaded: true,
documents: documents,
filter: filter,
filter: state.filter,
));
}
}

View File

@@ -3,10 +3,10 @@ import 'package:paperless_api/paperless_api.dart';
class LinkedDocumentsState {
final bool isLoaded;
final PagedSearchResult<DocumentModel>? documents;
final DocumentFilter? filter;
final DocumentFilter filter;
LinkedDocumentsState({
this.filter,
required this.filter,
this.isLoaded = false,
this.documents,
});

View File

@@ -7,7 +7,6 @@ import 'package:paperless_mobile/di_initializer.dart';
import 'package:paperless_mobile/features/document_details/bloc/document_details_cubit.dart';
import 'package:paperless_mobile/features/document_details/view/pages/document_details_page.dart';
import 'package:paperless_mobile/features/documents/view/widgets/list/document_list_item.dart';
import 'package:paperless_mobile/features/labels/bloc/global_state_bloc_provider.dart';
import 'package:paperless_mobile/features/linked_documents_preview/bloc/linked_documents_cubit.dart';
import 'package:paperless_mobile/features/linked_documents_preview/bloc/state/linked_documents_state.dart';
import 'package:paperless_mobile/generated/l10n.dart';
@@ -64,15 +63,12 @@ class _LinkedDocumentsPageState extends State<LinkedDocumentsPage> {
Navigator.push(
context,
MaterialPageRoute(
builder: (ctxt) => GlobalStateBlocProvider(
additionalProviders: [
builder: (context) =>
BlocProvider<DocumentDetailsCubit>.value(
value: DocumentDetailsCubit(
getIt<PaperlessDocumentsApi>(),
document,
),
),
],
value: DocumentDetailsCubit(
getIt<PaperlessDocumentsApi>(),
document,
),
child: const DocumentDetailsPage(
isLabelClickable: false,
allowEdit: false,