add search fragment
This commit is contained in:
parent
72a46116b3
commit
4833b5c18c
8 changed files with 542 additions and 6 deletions
32
lib/bloc/scoop_search_bloc.dart
Normal file
32
lib/bloc/scoop_search_bloc.dart
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import 'package:bloc/bloc.dart';
|
||||
import 'package:bloc_concurrency/bloc_concurrency.dart';
|
||||
import 'package:equatable/equatable.dart';
|
||||
|
||||
import '../models/scoop_app_model.dart';
|
||||
import '../utils/scoop_utils.dart';
|
||||
|
||||
part 'scoop_search_event.dart';
|
||||
part 'scoop_search_state.dart';
|
||||
|
||||
class ScoopSearchBloc extends Bloc<ScoopSearchEvent, ScoopSearchState> {
|
||||
ScoopSearchBloc() : super(ScoopSearchInitial()) {
|
||||
on<ScoopSearchQueryChanged>(
|
||||
(event, emit) async {
|
||||
emit(ScoopSearchLoading());
|
||||
|
||||
try {
|
||||
Map<String, List<ScoopAppModel>> data = {};
|
||||
if (event.query.isEmpty) {
|
||||
data = await getAllInstallableApps();
|
||||
} else {
|
||||
data = await searchInstallableApps(event.query);
|
||||
}
|
||||
emit(ScoopSearchLoaded(data));
|
||||
} catch (e) {
|
||||
emit(ScoopSearchError(e.toString()));
|
||||
}
|
||||
},
|
||||
transformer: restartable(),
|
||||
);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue