Merge remote-tracking branch 'origin/feature/100-lokalisierung-hinzufügen' into feature/100-lokalisierung-hinzufügen
This commit is contained in:
@@ -156,18 +156,24 @@ class _PlayerSelectionState extends State<PlayerSelection> {
|
|||||||
onIconTap: () {
|
onIconTap: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
// Removes the player from the selection and notifies the parent.
|
// Removes the player from the selection and notifies the parent.
|
||||||
|
selectedPlayers.remove(player);
|
||||||
|
widget.onChanged([...selectedPlayers]);
|
||||||
|
|
||||||
|
// Get the current search query
|
||||||
final currentSearch = _searchBarController
|
final currentSearch = _searchBarController
|
||||||
.text
|
.text
|
||||||
.toLowerCase();
|
.toLowerCase();
|
||||||
selectedPlayers.remove(player);
|
|
||||||
widget.onChanged([...selectedPlayers]);
|
|
||||||
// If the player matches the current search query (or search is empty),
|
// If the player matches the current search query (or search is empty),
|
||||||
// they are added back to the suggestions and the list is re-sorted.
|
// they are added back to the `suggestedPlayers` and the list is re-sorted.
|
||||||
if (currentSearch.isEmpty ||
|
if (currentSearch.isEmpty ||
|
||||||
player.name.toLowerCase().contains(
|
player.name.toLowerCase().contains(
|
||||||
currentSearch,
|
currentSearch,
|
||||||
)) {
|
)) {
|
||||||
suggestedPlayers.add(player);
|
suggestedPlayers.add(player);
|
||||||
|
suggestedPlayers.sort(
|
||||||
|
(a, b) => a.name.compareTo(b.name),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
@@ -209,11 +215,15 @@ class _PlayerSelectionState extends State<PlayerSelection> {
|
|||||||
text: suggestedPlayers[index].name,
|
text: suggestedPlayers[index].name,
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
|
// If the player is not already selected
|
||||||
if (!selectedPlayers.contains(
|
if (!selectedPlayers.contains(
|
||||||
suggestedPlayers[index],
|
suggestedPlayers[index],
|
||||||
)) {
|
)) {
|
||||||
selectedPlayers.add(suggestedPlayers[index]);
|
// Add to player to the front of the selectedPlayers
|
||||||
|
selectedPlayers.insert(0, suggestedPlayers[index]);
|
||||||
|
// Notify the parent widget of the change
|
||||||
widget.onChanged([...selectedPlayers]);
|
widget.onChanged([...selectedPlayers]);
|
||||||
|
// Remove the player from the suggestedPlayers
|
||||||
suggestedPlayers.remove(suggestedPlayers[index]);
|
suggestedPlayers.remove(suggestedPlayers[index]);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -230,7 +240,7 @@ class _PlayerSelectionState extends State<PlayerSelection> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Adds a new player to the database from the search bar input.
|
/// Adds a new player to the database from the search bar input.
|
||||||
/// Shows a snackbar indicating success or failure.
|
/// Shows a snackbar indicating success xfor failure.
|
||||||
/// [context] - BuildContext to show the snackbar.
|
/// [context] - BuildContext to show the snackbar.
|
||||||
void addNewPlayerFromSearch({required BuildContext context}) async {
|
void addNewPlayerFromSearch({required BuildContext context}) async {
|
||||||
String playerName = _searchBarController.text.trim();
|
String playerName = _searchBarController.text.trim();
|
||||||
@@ -238,7 +248,7 @@ class _PlayerSelectionState extends State<PlayerSelection> {
|
|||||||
bool success = await db.playerDao.addPlayer(player: createdPlayer);
|
bool success = await db.playerDao.addPlayer(player: createdPlayer);
|
||||||
if (!context.mounted) return;
|
if (!context.mounted) return;
|
||||||
if (success) {
|
if (success) {
|
||||||
selectedPlayers.add(createdPlayer);
|
selectedPlayers.insert(0, createdPlayer);
|
||||||
widget.onChanged([...selectedPlayers]);
|
widget.onChanged([...selectedPlayers]);
|
||||||
allPlayers.add(createdPlayer);
|
allPlayers.add(createdPlayer);
|
||||||
setState(() {
|
setState(() {
|
||||||
|
|||||||
Reference in New Issue
Block a user