From 03035138acb3d9580713c67296cfbc9e0f3696df Mon Sep 17 00:00:00 2001 From: mathiskirchner Date: Sat, 6 Dec 2025 10:00:59 +0100 Subject: [PATCH] refactor game result view variable naming and layout --- .../views/main_menu/game_result_view.dart | 61 ++++++++----------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/lib/presentation/views/main_menu/game_result_view.dart b/lib/presentation/views/main_menu/game_result_view.dart index a32ba95..e07b788 100644 --- a/lib/presentation/views/main_menu/game_result_view.dart +++ b/lib/presentation/views/main_menu/game_result_view.dart @@ -5,7 +5,6 @@ import 'package:game_tracker/data/dto/game.dart'; import 'package:game_tracker/data/dto/player.dart'; import 'package:game_tracker/presentation/widgets/buttons/custom_width_button.dart'; import 'package:game_tracker/presentation/widgets/tiles/custom_radio_list_tile.dart'; -import 'package:game_tracker/presentation/widgets/top_centered_message.dart'; import 'package:provider/provider.dart'; class GameResultView extends StatefulWidget { @@ -20,14 +19,16 @@ class GameResultView extends StatefulWidget { class _GameResultViewState extends State { late final List allPlayers; late final AppDatabase db; - Player? _player; + Player? _selectedPlayer; @override void initState() { db = Provider.of(context, listen: false); allPlayers = getAllPlayers(widget.game); if (widget.game.winner != null) { - _player = allPlayers.firstWhere((p) => p.id == widget.game.winner!.id); + _selectedPlayer = allPlayers.firstWhere( + (p) => p.id == widget.game.winner!.id, + ); } super.initState(); } @@ -78,36 +79,28 @@ class _GameResultViewState extends State { fontWeight: FontWeight.bold, ), ), - const SizedBox(height: 2), - Visibility( - visible: allPlayers.isNotEmpty, - replacement: const TopCenteredMessage( - icon: Icons.info, - title: 'Info', - message: 'No players in this game.', - ), - child: Expanded( - child: RadioGroup( - groupValue: _player, - onChanged: (Player? value) { - setState(() { - _player = value; - }); + const SizedBox(height: 10), + Expanded( + child: RadioGroup( + groupValue: _selectedPlayer, + onChanged: (Player? value) { + setState(() { + _selectedPlayer = value; + }); + }, + child: ListView.builder( + itemCount: allPlayers.length, + itemBuilder: (context, index) { + return CustomRadioListTile( + text: allPlayers[index].name, + value: allPlayers[index], + onContainerTap: (value) { + setState(() { + _selectedPlayer = value; + }); + }, + ); }, - child: ListView.builder( - itemCount: allPlayers.length, - itemBuilder: (context, index) { - return CustomRadioListTile( - text: allPlayers[index].name, - value: allPlayers[index], - onContainerTap: (value) { - setState(() { - _player = value; - }); - }, - ); - }, - ), ), ), ), @@ -118,11 +111,11 @@ class _GameResultViewState extends State { CustomWidthButton( text: 'Save', sizeRelativeToWidth: 0.95, - onPressed: _player != null + onPressed: _selectedPlayer != null ? () async { bool success = await db.gameDao.setWinner( gameId: widget.game.id, - winnerId: _player!.id, + winnerId: _selectedPlayer!.id, ); if (!context.mounted) return; if (success) {