2 Commits

Author SHA1 Message Date
701500c7e2 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
2025-12-09 18:26:05 +01:00
062c2681bf Corrected info message 2025-12-09 18:10:31 +01:00
4 changed files with 25 additions and 18 deletions

View File

@@ -76,8 +76,8 @@ class _ChooseGroupViewState extends State<ChooseGroupView> {
visible: filteredGroups.isNotEmpty,
replacement: const TopCenteredMessage(
icon: Icons.info,
title: 'No group',
message: 'There is no group matching your search.',
title: 'Info',
message: 'There is no group matching your search',
),
child: ListView.builder(
padding: const EdgeInsets.only(bottom: 85),

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