Fixed state problem with games list
This commit is contained in:
@@ -17,7 +17,8 @@ import 'package:game_tracker/presentation/widgets/tiles/choose_tile.dart';
|
|||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
|
|
||||||
class CreateGameView extends StatefulWidget {
|
class CreateGameView extends StatefulWidget {
|
||||||
const CreateGameView({super.key});
|
final VoidCallback? onWinnerChanged;
|
||||||
|
const CreateGameView({super.key, this.onWinnerChanged});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<CreateGameView> createState() => _CreateGameViewState();
|
State<CreateGameView> createState() => _CreateGameViewState();
|
||||||
@@ -231,7 +232,10 @@ class _CreateGameViewState extends State<CreateGameView> {
|
|||||||
context,
|
context,
|
||||||
CupertinoPageRoute(
|
CupertinoPageRoute(
|
||||||
fullscreenDialog: true,
|
fullscreenDialog: true,
|
||||||
builder: (context) => GameResultView(game: game),
|
builder: (context) => GameResultView(
|
||||||
|
game: game,
|
||||||
|
onWinnerChanged: widget.onWinnerChanged,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -98,17 +98,16 @@ class _GameHistoryViewState extends State<GameHistoryView> {
|
|||||||
}
|
}
|
||||||
return GameHistoryTile(
|
return GameHistoryTile(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
await Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
CupertinoPageRoute(
|
CupertinoPageRoute(
|
||||||
fullscreenDialog: true,
|
fullscreenDialog: true,
|
||||||
builder: (context) =>
|
builder: (context) => GameResultView(
|
||||||
GameResultView(game: games[index]),
|
game: games[index],
|
||||||
|
onWinnerChanged: refreshGameList,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
setState(() {
|
|
||||||
_gameListFuture = db.gameDao.getAllGames();
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
game: games[index],
|
game: games[index],
|
||||||
);
|
);
|
||||||
@@ -123,17 +122,13 @@ class _GameHistoryViewState extends State<GameHistoryView> {
|
|||||||
text: 'Create Game',
|
text: 'Create Game',
|
||||||
sizeRelativeToWidth: 0.90,
|
sizeRelativeToWidth: 0.90,
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
await Navigator.push(
|
Navigator.push(
|
||||||
context,
|
context,
|
||||||
MaterialPageRoute(
|
MaterialPageRoute(
|
||||||
builder: (context) {
|
builder: (context) =>
|
||||||
return const CreateGameView();
|
CreateGameView(onWinnerChanged: refreshGameList),
|
||||||
},
|
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
setState(() {
|
|
||||||
_gameListFuture = db.gameDao.getAllGames();
|
|
||||||
});
|
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -141,4 +136,10 @@ class _GameHistoryViewState extends State<GameHistoryView> {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void refreshGameList() {
|
||||||
|
setState(() {
|
||||||
|
_gameListFuture = db.gameDao.getAllGames();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,8 +9,9 @@ import 'package:provider/provider.dart';
|
|||||||
class GameResultView extends StatefulWidget {
|
class GameResultView extends StatefulWidget {
|
||||||
final Game game;
|
final Game game;
|
||||||
|
|
||||||
const GameResultView({super.key, required this.game});
|
final VoidCallback? onWinnerChanged;
|
||||||
|
|
||||||
|
const GameResultView({super.key, required this.game, this.onWinnerChanged});
|
||||||
@override
|
@override
|
||||||
State<GameResultView> createState() => _GameResultViewState();
|
State<GameResultView> createState() => _GameResultViewState();
|
||||||
}
|
}
|
||||||
@@ -131,6 +132,7 @@ class _GameResultViewState extends State<GameResultView> {
|
|||||||
winnerId: _selectedPlayer!.id,
|
winnerId: _selectedPlayer!.id,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
widget.onWinnerChanged?.call();
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Player> getAllPlayers(Game game) {
|
List<Player> getAllPlayers(Game game) {
|
||||||
|
|||||||
Reference in New Issue
Block a user