wip - filter category
This commit is contained in:
parent
2bb3312a39
commit
44ddafcb0c
|
@ -11,8 +11,7 @@ class DocumentPageBloc extends Bloc<DocumentPageEvent, DocumentPageState> {
|
||||||
: super(initialState) {
|
: super(initialState) {
|
||||||
on<SelectDocumentEvent>(_selectDocument);
|
on<SelectDocumentEvent>(_selectDocument);
|
||||||
on<UnselectDocumentEvent>(_unselectDocument);
|
on<UnselectDocumentEvent>(_unselectDocument);
|
||||||
on<SelectCategoryEvent>(_selectCategory);
|
on<FilterCategoryEvent>(_filterCategoryEvent);
|
||||||
on<UnselectCategoryEvent>(_unselectCategory);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static DocumentPageBloc create(DocumentPageModel model) {
|
static DocumentPageBloc create(DocumentPageModel model) {
|
||||||
|
@ -23,31 +22,46 @@ class DocumentPageBloc extends Bloc<DocumentPageEvent, DocumentPageState> {
|
||||||
return DocumentPageBloc._(model, initialState);
|
return DocumentPageBloc._(model, initialState);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _selectCategory(
|
Future<void> _filterCategoryEvent(
|
||||||
SelectCategoryEvent event, Emitter<DocumentPageState> emit) async {
|
FilterCategoryEvent event, Emitter<DocumentPageState> emit) async {
|
||||||
print('select: ${event.query}');
|
state.isCategorySelected
|
||||||
final docs = await model.generateDocuments(state.page, event.query);
|
? _unselectCategory(event, emit)
|
||||||
final bool isSelected = !state.isCategorySelected;
|
: _selectCategory(event, emit);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _selectCategory(
|
||||||
|
FilterCategoryEvent event, Emitter<DocumentPageState> emit) async {
|
||||||
emit(state.copyWith(
|
emit(state.copyWith(
|
||||||
isCategorySelected: isSelected,
|
isCategorySelected: true,
|
||||||
documents: isSelected ? docs.$2 : state.documents,
|
|
||||||
));
|
));
|
||||||
|
|
||||||
|
final s = model.managerKey.currentState!;
|
||||||
|
state.isCategorySelected ? s.filter(event.query) : s.filter(event.query);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _unselectCategory(
|
Future<void> _unselectCategory(
|
||||||
UnselectCategoryEvent event, Emitter<DocumentPageState> emit) async {
|
FilterCategoryEvent event, Emitter<DocumentPageState> emit) async {
|
||||||
emit(state);
|
emit(state.copyWith(
|
||||||
|
isCategorySelected: false,
|
||||||
|
));
|
||||||
|
|
||||||
|
final s = model.managerKey.currentState!;
|
||||||
|
final Query q = Document.fromDesc('');
|
||||||
|
s.filter(q);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _selectDocument(
|
Future<void> _selectDocument(
|
||||||
SelectDocumentEvent event, Emitter<DocumentPageState> emit) async {
|
SelectDocumentEvent event, Emitter<DocumentPageState> emit) async {
|
||||||
print('-> select');
|
print('-> select');
|
||||||
emit(state.copyWith(
|
emit(
|
||||||
uri: await GetPDF().call(event.document.id),
|
state.copyWith(
|
||||||
|
uri: await GetPDF().call(
|
||||||
|
event.document.id,
|
||||||
|
),
|
||||||
currentDocument: event.document,
|
currentDocument: event.document,
|
||||||
isDocumentSelected: true,
|
isDocumentSelected: true,
|
||||||
));
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _unselectDocument(
|
Future<void> _unselectDocument(
|
||||||
|
@ -81,11 +95,9 @@ class SelectDocumentEvent extends DocumentPageEvent {
|
||||||
|
|
||||||
class UnselectDocumentEvent extends DocumentPageEvent {}
|
class UnselectDocumentEvent extends DocumentPageEvent {}
|
||||||
|
|
||||||
class UnselectCategoryEvent extends DocumentPageEvent {}
|
class FilterCategoryEvent extends DocumentPageEvent {
|
||||||
|
|
||||||
class SelectCategoryEvent extends DocumentPageEvent {
|
|
||||||
final Query query;
|
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) {
|
void filter<T>(T query, BuildContext context) {
|
||||||
context
|
context
|
||||||
.read<DocumentPageBloc>()
|
.read<DocumentPageBloc>()
|
||||||
.add(SelectCategoryEvent(query as Archive?));
|
.add(FilterCategoryEvent(query as Archive?));
|
||||||
}
|
}
|
||||||
// {
|
// {
|
||||||
// log('filterByCategories: ');
|
// log('filterByCategories: ');
|
||||||
|
|
Loading…
Reference in New Issue