fix: no redundant search queries

This commit is contained in:
edde746
2025-10-30 13:08:31 +01:00
parent 564746d6a7
commit 17dba97dbb
+8
View File
@@ -28,6 +28,7 @@ class _SearchScreenState extends State<SearchScreen>
bool _isSearching = false; bool _isSearching = false;
bool _hasSearched = false; bool _hasSearched = false;
Timer? _debounceTimer; Timer? _debounceTimer;
String _lastSearchedQuery = '';
@override @override
void initState() { void initState() {
@@ -54,10 +55,16 @@ class _SearchScreenState extends State<SearchScreen>
_searchResults = []; _searchResults = [];
_hasSearched = false; _hasSearched = false;
_isSearching = false; _isSearching = false;
_lastSearchedQuery = '';
}); });
return; return;
} }
// Only search if the query has actually changed
if (query.trim() == _lastSearchedQuery.trim()) {
return;
}
// Start new timer // Start new timer
_debounceTimer = Timer(const Duration(milliseconds: 500), () { _debounceTimer = Timer(const Duration(milliseconds: 500), () {
_performSearch(query); _performSearch(query);
@@ -84,6 +91,7 @@ class _SearchScreenState extends State<SearchScreen>
setState(() { setState(() {
_searchResults = results; _searchResults = results;
_isSearching = false; _isSearching = false;
_lastSearchedQuery = query.trim();
}); });
} }
} catch (e) { } catch (e) {