GameResultView erstellen #62
@@ -1,10 +1,12 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:game_tracker/core/custom_theme.dart';
|
import 'package:game_tracker/core/custom_theme.dart';
|
||||||
|
import 'package:game_tracker/data/db/database.dart';
|
||||||
import 'package:game_tracker/data/dto/game.dart';
|
import 'package:game_tracker/data/dto/game.dart';
|
||||||
import 'package:game_tracker/data/dto/player.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/buttons/custom_width_button.dart';
|
||||||
import 'package:game_tracker/presentation/widgets/tiles/custom_radio_list_tile.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:game_tracker/presentation/widgets/top_centered_message.dart';
|
||||||
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class GameResultView extends StatefulWidget {
|
class GameResultView extends StatefulWidget {
|
||||||
final Game game;
|
final Game game;
|
||||||
@@ -17,11 +19,16 @@ class GameResultView extends StatefulWidget {
|
|||||||
|
|
||||||
class _GameResultViewState extends State<GameResultView> {
|
class _GameResultViewState extends State<GameResultView> {
|
||||||
late final List<Player> allPlayers;
|
late final List<Player> allPlayers;
|
||||||
|
late final AppDatabase db;
|
||||||
Player? _player; //TODO: Set last winner as selected
|
Player? _player; //TODO: Set last winner as selected
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
db = Provider.of<AppDatabase>(context, listen: false);
|
||||||
allPlayers = getAllPlayers(widget.game);
|
allPlayers = getAllPlayers(widget.game);
|
||||||
|
if (widget.game.winner != null) {
|
||||||
|
_player = allPlayers.firstWhere((p) => p.id == widget.game.winner!.id);
|
||||||
|
}
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,11 +119,29 @@ class _GameResultViewState extends State<GameResultView> {
|
|||||||
text: 'Save',
|
text: 'Save',
|
||||||
sizeRelativeToWidth: 0.95,
|
sizeRelativeToWidth: 0.95,
|
||||||
onPressed: _player != null
|
onPressed: _player != null
|
||||||
? () {
|
? () async {
|
||||||
print(
|
print('Selected Winner: ${_player!.name}');
|
||||||
'Selected Winner: ${_player!.name}',
|
bool success = await db.gameDao.setWinner(
|
||||||
); //TODO: Add winner to db
|
gameId: widget.game.id,
|
||||||
Navigator.pop(context);
|
winnerId: _player!.id,
|
||||||
|
);
|
||||||
|
if (!context.mounted) return;
|
||||||
|
if (success) {
|
||||||
|
Navigator.pop(context);
|
||||||
|
} else {
|
||||||
|
ScaffoldMessenger.of(context).showSnackBar(
|
||||||
|
SnackBar(
|
||||||
|
backgroundColor: CustomTheme.boxColor,
|
||||||
|
content: const Center(
|
||||||
|
child: Text(
|
||||||
|
'Error while setting winner, please try again',
|
||||||
|
style: TextStyle(color: Colors.white),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
setState(() {});
|
||||||
}
|
}
|
||||||
: null,
|
: null,
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user