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 ), ], ),