diff --git a/lib/pages/games_page.dart b/lib/pages/games_page.dart index a7a1134..17874da 100644 --- a/lib/pages/games_page.dart +++ b/lib/pages/games_page.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:maggs_victory_voyage/services/db_helper.dart'; +import 'package:maggs_victory_voyage/widgets/games_popup.dart'; import 'package:provider/provider.dart'; import '../models/game.dart'; @@ -82,7 +83,16 @@ class _GamesPageState extends State { list.add( GamesButton( title: game.name, - buttonPressed: () {}, + buttonPressed: () { + showDialog( + context: context, + builder: (context) => GamesPopup( + withPlacements: game.rewards.length > 1, + game: game, + onSubmitted: (_) {}, + ), + ); + }, ), ); } diff --git a/lib/widgets/games_popup.dart b/lib/widgets/games_popup.dart new file mode 100644 index 0000000..0c9d0df --- /dev/null +++ b/lib/widgets/games_popup.dart @@ -0,0 +1,44 @@ +import 'package:flutter/material.dart'; + +import '../models/game.dart'; + +typedef IntCallback = Function(int); + +class GamesPopup extends StatelessWidget { + const GamesPopup({ + super.key, + this.withPlacements = false, + required this.onSubmitted, + required this.game, + }); + final bool withPlacements; + final IntCallback onSubmitted; + final Game game; + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 400, + width: 400, + child: AlertDialog( + title: _getTitle(withPlacements), + content: _getContent(withPlacements), + ), + ); + } + + Widget _getTitle(bool withPlacements) { + if (withPlacements) { + return const Text('Which place did you achieve?'); + } + return Text('Confirm you won at ${game.name}'); + } + + Widget _getContent(bool withPlacements) { + if (withPlacements) { + return const Text(''); + } else { + return const Text(''); + } + } +}