From 412d1fd334b5475f5f1fd4f02c9ab5c7c6d639f8 Mon Sep 17 00:00:00 2001 From: mathiskirchner Date: Tue, 18 Nov 2025 17:08:07 +0100 Subject: [PATCH] fixed search bugs where duplicates where created or search results were wrong --- .../create_group/create_group_view.dart | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/lib/presentation/views/main_menu/create_group/create_group_view.dart b/lib/presentation/views/main_menu/create_group/create_group_view.dart index 823b6ff..87ef5bc 100644 --- a/lib/presentation/views/main_menu/create_group/create_group_view.dart +++ b/lib/presentation/views/main_menu/create_group/create_group_view.dart @@ -130,9 +130,12 @@ class _CreateGroupViewState extends State { suggestedPlayers = [...allPlayers]; } else { suggestedPlayers = allPlayers.where((player) { - return player.name.toLowerCase().contains( - value.toLowerCase(), - ); + final bool nameMatches = player.name + .toLowerCase() + .contains(value.toLowerCase()); + final bool isNotSelected = !selectedPlayers + .contains(player); + return nameMatches && isNotSelected; }).toList(); } }); @@ -180,11 +183,19 @@ class _CreateGroupViewState extends State { child: const Icon(Icons.close, size: 20), onTap: () { setState(() { - suggestedPlayers.add(selectedPlayer); + final currentSearch = _searchBarController + .text + .toLowerCase(); selectedPlayers.remove(selectedPlayer); - suggestedPlayers.sort( - (a, b) => a.name.compareTo(b.name), - ); + if (currentSearch.isEmpty || + selectedPlayer.name + .toLowerCase() + .contains(currentSearch)) { + suggestedPlayers.add(selectedPlayer); + suggestedPlayers.sort( + (a, b) => a.name.compareTo(b.name), + ); + } }); }, ),