From 6c1c650fa14141e871d86444f36d6b234544054c Mon Sep 17 00:00:00 2001 From: Valentin CZERYBA Date: Sun, 25 May 2025 23:39:37 +0200 Subject: [PATCH] add last data --- covas_mobile/lib/pages/ListItemMenu.dart | 25 ++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/covas_mobile/lib/pages/ListItemMenu.dart b/covas_mobile/lib/pages/ListItemMenu.dart index b6cd544..9d726c7 100644 --- a/covas_mobile/lib/pages/ListItemMenu.dart +++ b/covas_mobile/lib/pages/ListItemMenu.dart @@ -50,6 +50,7 @@ class _MyHomePageState extends State { final AuthService _authService = AuthService(); late ScrollController _scrollController; int _fetchCount = 0; + bool _last = false; bool _isLoading = false; Future> postsFuture = getPosts(); @@ -470,13 +471,16 @@ class _MyHomePageState extends State { if ((body.isNotEmpty) || (_fetchCount > 0)) { if (body.isEmpty) { _fetchCount--; + _last = true; } // If we have results, map them to Events - filteredPosts.addAll( - body - .map((e) => Events.fromJson(e as Map)) - .toList(), - ); + if (!_last) { + filteredPosts.addAll( + body + .map((e) => Events.fromJson(e as Map)) + .toList(), + ); + } } else { // If no results, clear filteredPosts filteredPosts.clear(); @@ -619,6 +623,7 @@ class _MyHomePageState extends State { labelText: 'Search by item', onChanged: (value) { _fetchCount = 0; + _last = false; if (value.isNotEmpty) { setState(() { itemName = value; @@ -637,6 +642,7 @@ class _MyHomePageState extends State { }, onClear: () { _fetchCount = 0; + _last = false; setState(() { inputItem.clear(); itemName = ''; @@ -649,7 +655,7 @@ class _MyHomePageState extends State { suggestions: suggestionsItem, onSuggestionTap: (suggestion) async { _fetchCount = 0; - + _last = false; setState(() { itemName = suggestion['name']; inputItem.text = itemName; @@ -666,7 +672,7 @@ class _MyHomePageState extends State { labelText: 'Search by tags', onChanged: (value) { _fetchCount = 0; - + _last = false; if (value.isNotEmpty) { setState(() { itemTags = value; @@ -693,6 +699,7 @@ class _MyHomePageState extends State { suggestions: suggestionsTags, onSuggestionTap: (suggestion) async { _fetchCount = 0; + _last = false; setState(() { itemTags = suggestion['name']; @@ -718,6 +725,7 @@ class _MyHomePageState extends State { labelText: 'Search by geographical zone', onChanged: (value) async { _fetchCount = 0; + _last = false; if (value.isNotEmpty) { setState(() { @@ -741,7 +749,7 @@ class _MyHomePageState extends State { }, onClear: () async { _fetchCount = 0; - + _last = false; final prefs = await SharedPreferences.getInstance(); prefs.remove("city_lat"); prefs.remove("city_long"); @@ -758,6 +766,7 @@ class _MyHomePageState extends State { suggestions: suggestionsGeo, onSuggestionTap: (suggestion) async { _fetchCount = 0; + _last = false; final latitude = suggestion['geometry']['coordinates'][1]; final longitude = suggestion['geometry']['coordinates'][0];