wip - filter category

This commit is contained in:
jantunesmessias 2025-02-14 14:18:56 -03:00
parent 2bb3312a39
commit 44ddafcb0c
2 changed files with 33 additions and 21 deletions

View File

@ -11,8 +11,7 @@ class DocumentPageBloc extends Bloc<DocumentPageEvent, DocumentPageState> {
: super(initialState) {
on<SelectDocumentEvent>(_selectDocument);
on<UnselectDocumentEvent>(_unselectDocument);
on<SelectCategoryEvent>(_selectCategory);
on<UnselectCategoryEvent>(_unselectCategory);
on<FilterCategoryEvent>(_filterCategoryEvent);
}
static DocumentPageBloc create(DocumentPageModel model) {
@ -23,31 +22,46 @@ class DocumentPageBloc extends Bloc<DocumentPageEvent, DocumentPageState> {
return DocumentPageBloc._(model, initialState);
}
Future<void> _selectCategory(
SelectCategoryEvent event, Emitter<DocumentPageState> emit) async {
print('select: ${event.query}');
final docs = await model.generateDocuments(state.page, event.query);
final bool isSelected = !state.isCategorySelected;
Future<void> _filterCategoryEvent(
FilterCategoryEvent event, Emitter<DocumentPageState> emit) async {
state.isCategorySelected
? _unselectCategory(event, emit)
: _selectCategory(event, emit);
}
Future<void> _selectCategory(
FilterCategoryEvent event, Emitter<DocumentPageState> 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<void> _unselectCategory(
UnselectCategoryEvent event, Emitter<DocumentPageState> emit) async {
emit(state);
FilterCategoryEvent event, Emitter<DocumentPageState> emit) async {
emit(state.copyWith(
isCategorySelected: false,
));
final s = model.managerKey.currentState!;
final Query q = Document.fromDesc('');
s.filter(q);
}
Future<void> _selectDocument(
SelectDocumentEvent event, Emitter<DocumentPageState> 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<void> _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);
}
/// -----------------------------------------------

View File

@ -154,7 +154,7 @@ class DocumentPageModel extends FlutterFlowModel<DocumentPage> {
void filter<T>(T query, BuildContext context) {
context
.read<DocumentPageBloc>()
.add(SelectCategoryEvent(query as Archive?));
.add(FilterCategoryEvent(query as Archive?));
}
// {
// log('filterByCategories: ');