From 44ddafcb0cdb0f8449549d6e1e93af42cbb4eb28 Mon Sep 17 00:00:00 2001 From: jantunesmessias Date: Fri, 14 Feb 2025 14:18:56 -0300 Subject: [PATCH] wip - filter category --- .../documents/document_page_bloc.dart | 52 ++++++++++++------- .../documents/document_page_model.dart | 2 +- 2 files changed, 33 insertions(+), 21 deletions(-) diff --git a/lib/features/documents/document_page_bloc.dart b/lib/features/documents/document_page_bloc.dart index 5128ee03..235718de 100644 --- a/lib/features/documents/document_page_bloc.dart +++ b/lib/features/documents/document_page_bloc.dart @@ -11,8 +11,7 @@ class DocumentPageBloc extends Bloc { : super(initialState) { on(_selectDocument); on(_unselectDocument); - on(_selectCategory); - on(_unselectCategory); + on(_filterCategoryEvent); } static DocumentPageBloc create(DocumentPageModel model) { @@ -23,31 +22,46 @@ class DocumentPageBloc extends Bloc { return DocumentPageBloc._(model, initialState); } - Future _selectCategory( - SelectCategoryEvent event, Emitter emit) async { - print('select: ${event.query}'); - final docs = await model.generateDocuments(state.page, event.query); - final bool isSelected = !state.isCategorySelected; + Future _filterCategoryEvent( + FilterCategoryEvent event, Emitter emit) async { + state.isCategorySelected + ? _unselectCategory(event, emit) + : _selectCategory(event, emit); + } + Future _selectCategory( + FilterCategoryEvent event, Emitter emit) async { emit(state.copyWith( - isCategorySelected: isSelected, - documents: isSelected ? docs.$2 : state.documents, + isCategorySelected: true, )); + + final s = model.managerKey.currentState!; + state.isCategorySelected ? s.filter(event.query) : s.filter(event.query); } Future _unselectCategory( - UnselectCategoryEvent event, Emitter emit) async { - emit(state); + FilterCategoryEvent event, Emitter emit) async { + emit(state.copyWith( + isCategorySelected: false, + )); + + final s = model.managerKey.currentState!; + final Query q = Document.fromDesc(''); + s.filter(q); } Future _selectDocument( SelectDocumentEvent event, Emitter emit) async { print('-> select'); - emit(state.copyWith( - uri: await GetPDF().call(event.document.id), - currentDocument: event.document, - isDocumentSelected: true, - )); + emit( + state.copyWith( + uri: await GetPDF().call( + event.document.id, + ), + currentDocument: event.document, + isDocumentSelected: true, + ), + ); } Future _unselectDocument( @@ -81,11 +95,9 @@ class SelectDocumentEvent extends DocumentPageEvent { class UnselectDocumentEvent extends DocumentPageEvent {} -class UnselectCategoryEvent extends DocumentPageEvent {} - -class SelectCategoryEvent extends DocumentPageEvent { +class FilterCategoryEvent extends DocumentPageEvent { final Query query; - SelectCategoryEvent(this.query); + FilterCategoryEvent(this.query); } /// ----------------------------------------------- diff --git a/lib/features/documents/document_page_model.dart b/lib/features/documents/document_page_model.dart index 5c883e1b..43c2a435 100644 --- a/lib/features/documents/document_page_model.dart +++ b/lib/features/documents/document_page_model.dart @@ -154,7 +154,7 @@ class DocumentPageModel extends FlutterFlowModel { void filter(T query, BuildContext context) { context .read() - .add(SelectCategoryEvent(query as Archive?)); + .add(FilterCategoryEvent(query as Archive?)); } // { // log('filterByCategories: ');