wip - filter category
This commit is contained in:
parent
2bb3312a39
commit
44ddafcb0c
|
@ -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);
|
||||
}
|
||||
|
||||
/// -----------------------------------------------
|
||||
|
|
|
@ -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: ');
|
||||
|
|
Loading…
Reference in New Issue