CreateGameView erstellen #67

Merged
sneeex merged 35 commits from feature/3-creategameview-erstellen into development 2025-12-10 20:43:54 +00:00
3 changed files with 23 additions and 16 deletions
Showing only changes of commit 701500c7e2 - Show all commits

View File

@@ -17,7 +17,8 @@ import 'package:game_tracker/presentation/widgets/tiles/choose_tile.dart';
import 'package:provider/provider.dart';
class CreateGameView extends StatefulWidget {
const CreateGameView({super.key});
final VoidCallback? onWinnerChanged;
const CreateGameView({super.key, this.onWinnerChanged});
@override
State<CreateGameView> createState() => _CreateGameViewState();
@@ -231,7 +232,10 @@ class _CreateGameViewState extends State<CreateGameView> {
context,
CupertinoPageRoute(
flixcoo marked this conversation as resolved Outdated

db ist doch schon assignt? warum nochmal? siehe zeile 99

db ist doch schon assignt? warum nochmal? siehe zeile 99
fullscreenDialog: true,
builder: (context) => GameResultView(game: game),
builder: (context) => GameResultView(
game: game,
onWinnerChanged: widget.onWinnerChanged,
),
),
sneeex marked this conversation as resolved Outdated
grafik.png game lässt sich nicht erstellen, obwohl spieler, game name und ruleset ausgewählt ist (funktioniert auch mit 2 spielern nicht, hier muss aber darauf geachtet werden, dass ein spiel nur mit min. 2 spielern erstellt werden kann)
<img width="318" alt="grafik.png" src="attachments/1bb19145-834c-4a72-9399-a43972f77e46"> game lässt sich nicht erstellen, obwohl spieler, game name und ruleset ausgewählt ist (funktioniert auch mit 2 spielern nicht, hier muss aber darauf geachtet werden, dass ein spiel nur mit min. 2 spielern erstellt werden kann)
132 KiB

Ja ups haha ich hab ganz vergessen irgendwas mit den ausgewählten Spielern zu machen, hab die einfach nur geprinted haha. Hab die jetzt auch included und sollte jetzt funktionieren

Ja ups haha ich hab ganz vergessen irgendwas mit den ausgewählten Spielern zu machen, hab die einfach nur geprinted haha. Hab die jetzt auch included und sollte jetzt funktionieren
);
}

View File

@@ -98,17 +98,16 @@ class _GameHistoryViewState extends State<GameHistoryView> {
}
return GameHistoryTile(
onTap: () async {
await Navigator.push(
Navigator.push(
context,
CupertinoPageRoute(
fullscreenDialog: true,
builder: (context) =>
GameResultView(game: games[index]),
builder: (context) => GameResultView(
game: games[index],
onWinnerChanged: refreshGameList,
),
),
);
setState(() {
_gameListFuture = db.gameDao.getAllGames();
});
},
game: games[index],
);
@@ -123,17 +122,13 @@ class _GameHistoryViewState extends State<GameHistoryView> {
text: 'Create Game',
sizeRelativeToWidth: 0.90,
onPressed: () async {
await Navigator.push(
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return const CreateGameView();
},
builder: (context) =>
CreateGameView(onWinnerChanged: refreshGameList),
),
);
setState(() {
_gameListFuture = db.gameDao.getAllGames();
});
},
),
),
@@ -141,4 +136,10 @@ class _GameHistoryViewState extends State<GameHistoryView> {
),
);
}
void refreshGameList() {
setState(() {
_gameListFuture = db.gameDao.getAllGames();
});
}
}

View File

@@ -9,8 +9,9 @@ import 'package:provider/provider.dart';
class GameResultView extends StatefulWidget {
final Game game;
const GameResultView({super.key, required this.game});
final VoidCallback? onWinnerChanged;
const GameResultView({super.key, required this.game, this.onWinnerChanged});
@override
State<GameResultView> createState() => _GameResultViewState();
}
@@ -131,6 +132,7 @@ class _GameResultViewState extends State<GameResultView> {
winnerId: _selectedPlayer!.id,
);
}
widget.onWinnerChanged?.call();
}
List<Player> getAllPlayers(Game game) {