From 82f874817704937dd299bfff282d1ba331e52ce1 Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Sat, 22 Feb 2025 17:17:31 +0100 Subject: [PATCH] Fix refresh all button --- lib/main.dart | 100 +++++++++++++++++++++++++++++--------------------- 1 file changed, 59 insertions(+), 41 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index bbd85f1..3f9ecef 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -63,6 +63,14 @@ class _MyHomePageState extends State { Future _refreshGames() async { final games = await GameRepository.getAll(); + games.forEach((key, game) { + game.updateActualVersion().then((_) { + GameRepository.upsert(game); + setState(() { + games[game.name] = game; + }); + }); + }); setState(() { this.games = games; }); @@ -91,50 +99,60 @@ class _MyHomePageState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - child: i < games.length - ? GameCard( - game: games.values.elementAt(i), - onGameUpdated: (game) async { - game = await GameRepository.upsert(game); - setState(() { - games[game.name] = game; - }); - }, - onDelete: () async { - await GameRepository.delete(games.values.elementAt(i)); - setState(() { - games.remove(games.values.elementAt(i).name); - }); - }, - ) - : NewGameCard( - onGameCreated: (game) async { - game = await GameRepository.upsert(game); - setState(() { - games[game.name] = game; - }); - }, - ), + child: + i < games.length + ? GameCard( + game: games.values.elementAt(i), + onGameUpdated: (game) async { + game = await GameRepository.upsert(game); + setState(() { + games[game.name] = game; + }); + }, + onDelete: () async { + await GameRepository.delete( + games.values.elementAt(i), + ); + setState(() { + games.remove( + games.values.elementAt(i).name, + ); + }); + }, + ) + : NewGameCard( + onGameCreated: (game) async { + game = await GameRepository.upsert(game); + setState(() { + games[game.name] = game; + }); + }, + ), ), const SizedBox(width: 8), Expanded( - child: i + 1 < games.length - ? GameCard( - game: games.values.elementAt(i + 1), - onGameUpdated: (game) async { - game = await GameRepository.upsert(game); - setState(() { - games[game.name] = game; - }); - }, - onDelete: () async { - await GameRepository.delete(games.values.elementAt(i + 1)); - setState(() { - games.remove(games.values.elementAt(i + 1).name); - }); - }, - ) - : const SizedBox(), // Empty space for odd number of items + child: + i + 1 < games.length + ? GameCard( + game: games.values.elementAt(i + 1), + onGameUpdated: (game) async { + game = await GameRepository.upsert(game); + setState(() { + games[game.name] = game; + }); + }, + onDelete: () async { + await GameRepository.delete( + games.values.elementAt(i + 1), + ); + setState(() { + games.remove( + games.values.elementAt(i + 1).name, + ); + }); + }, + ) + : const SizedBox(), // Empty space for odd number of items ), ], ),