D1APP-38 radar search bug fixed

This commit is contained in:
MohammadTaha Basiri 2022-01-07 13:12:46 +03:30
parent e75d750007
commit 6928cb697e
2 changed files with 13 additions and 13 deletions

View File

@ -125,11 +125,12 @@ class _RadarState extends State<Radar> {
} }
void _onChanged(String value) { void _onChanged(String value) {
context.read<RadarState>().resetFilters(); final state = context.read<RadarState>();
state.resetFilters(shoudUpdate: false);
if (value.length < 4 && value.isNotEmpty) return; if (value.length < 4 && value.isNotEmpty) return;
_timer?.cancel(); _timer?.cancel();
_timer = Timer(const Duration(seconds: 2), () { _timer = Timer(const Duration(seconds: 2), () {
context.read<RadarState>().getRadarOverviews( state.getRadarOverviews(
page: 1, page: 1,
search: value, search: value,
); );

View File

@ -8,19 +8,21 @@ import 'package:didvan/services/network/request_helper.dart';
class RadarState extends CoreProvier { class RadarState extends CoreProvier {
bool isFiltering = false; bool isFiltering = false;
String? _lastSearch; String? lastSearch;
String? startDate; String? startDate;
String? endDate; String? endDate;
final List<RadarCategory> selectedCats = []; final List<RadarCategory> selectedCats = [];
final List<RadarOverview> radars = []; final List<RadarOverview> radars = [];
void resetFilters() { void resetFilters({bool shoudUpdate = true}) {
startDate = null; startDate = null;
endDate = null; endDate = null;
selectedCats.clear(); selectedCats.clear();
if (shoudUpdate) {
getRadarOverviews(page: 1); getRadarOverviews(page: 1);
} }
}
Future<void> getRadarOverviews({ Future<void> getRadarOverviews({
required int page, required int page,
@ -28,17 +30,14 @@ class RadarState extends CoreProvier {
bool filter = false, bool filter = false,
}) async { }) async {
if (search != null && search.isNotEmpty) { if (search != null && search.isNotEmpty) {
if (_lastSearch == search && !filter) { if (lastSearch == search && !filter) {
return; return;
} }
isFiltering = true; isFiltering = true;
_lastSearch = search; lastSearch = search;
} else { } else {
isFiltering = false; isFiltering = false;
} }
if (filter) {
isFiltering = true;
}
appState = AppState.busy; appState = AppState.busy;
final RequestService service = RequestService( final RequestService service = RequestService(
RequestHelper.getRadarOverviews( RequestHelper.getRadarOverviews(