MVP #141

Merged
flixcoo merged 705 commits from development into main 2026-01-09 12:55:50 +00:00
Showing only changes of commit 546a3e3717 - Show all commits

View File

@@ -49,8 +49,7 @@ class _CreateGroupViewState extends State<CreateGroupView> {
@override @override
void dispose() { void dispose() {
_groupNameController.dispose(); _groupNameController.dispose();
_searchBarController _searchBarController.dispose();
.dispose(); // Listener entfernen und Controller aufräumen
super.dispose(); super.dispose();
} }
@@ -123,12 +122,7 @@ class _CreateGroupViewState extends State<CreateGroupView> {
.trim() .trim()
.isNotEmpty, .isNotEmpty,
onTrailingButtonPressed: () async { onTrailingButtonPressed: () async {
addNewPlayerFromSearch( addNewPlayerFromSearch(context: context);
context: context,
searchBarController: _searchBarController,
db: db,
loadPlayerList: loadPlayerList,
);
}, },
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
@@ -339,48 +333,47 @@ class _CreateGroupViewState extends State<CreateGroupView> {
), ),
); );
} }
}
/// 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 or failure.
/// [context] - BuildContext to show the snackbar. /// [context] - BuildContext to show the snackbar.
/// [searchBarController] - TextEditingController of the search bar. void addNewPlayerFromSearch({required BuildContext context}) async {
/// [db] - AppDatabase instance to interact with the database. String playerName = _searchBarController.text.trim();
/// [loadPlayerList] - Function to reload the player list after adding. Player createdPlayer = Player(name: playerName);
void addNewPlayerFromSearch({ bool success = await db.playerDao.addPlayer(player: createdPlayer);
required BuildContext context, if (!context.mounted) return;
required TextEditingController searchBarController, if (success) {
required AppDatabase db, selectedPlayers.add(createdPlayer);
required Function loadPlayerList, allPlayers.add(createdPlayer);
}) async { setState(() {
String playerName = searchBarController.text.trim(); _searchBarController.clear();
bool success = await db.playerDao.addPlayer(player: Player(name: playerName)); suggestedPlayers = allPlayers.where((player) {
if (!context.mounted) return; return !selectedPlayers.contains(player);
if (success) { }).toList();
loadPlayerList(); });
ScaffoldMessenger.of(context).showSnackBar( ScaffoldMessenger.of(context).showSnackBar(
SnackBar( SnackBar(
backgroundColor: CustomTheme.boxColor, backgroundColor: CustomTheme.boxColor,
content: Center( content: Center(
child: Text( child: Text(
'Successfully added player $playerName.', 'Successfully added player $playerName.',
style: const TextStyle(color: Colors.white), style: const TextStyle(color: Colors.white),
),
), ),
), ),
), );
); } else {
searchBarController.clear(); ScaffoldMessenger.of(context).showSnackBar(
} else { SnackBar(
ScaffoldMessenger.of(context).showSnackBar( backgroundColor: CustomTheme.boxColor,
SnackBar( content: Center(
backgroundColor: CustomTheme.boxColor, child: Text(
content: Center( 'Could not add player $playerName.',
child: Text( style: const TextStyle(color: Colors.white),
'Could not add player $playerName.', ),
style: const TextStyle(color: Colors.white),
), ),
), ),
), );
); }
} }
} }