Fixed state problem with games list
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m6s
Pull Request Pipeline / lint (pull_request) Successful in 2m6s

This commit is contained in:
2025-12-09 18:26:05 +01:00
parent 062c2681bf
commit 701500c7e2
3 changed files with 23 additions and 16 deletions

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(
fullscreenDialog: true,
builder: (context) => GameResultView(game: game),
builder: (context) => GameResultView(
game: game,
onWinnerChanged: widget.onWinnerChanged,
),
),
);
}

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) {