Fix refresh all button

This commit is contained in:
2025-02-22 17:17:31 +01:00
parent 8fd0511242
commit 82f8748177

View File

@@ -63,6 +63,14 @@ class _MyHomePageState extends State<MyHomePage> {
Future<void> _refreshGames() async { Future<void> _refreshGames() async {
final games = await GameRepository.getAll(); final games = await GameRepository.getAll();
games.forEach((key, game) {
game.updateActualVersion().then((_) {
GameRepository.upsert(game);
setState(() {
games[game.name] = game;
});
});
});
setState(() { setState(() {
this.games = games; this.games = games;
}); });
@@ -91,50 +99,60 @@ class _MyHomePageState extends State<MyHomePage> {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Expanded( Expanded(
child: i < games.length child:
? GameCard( i < games.length
game: games.values.elementAt(i), ? GameCard(
onGameUpdated: (game) async { game: games.values.elementAt(i),
game = await GameRepository.upsert(game); onGameUpdated: (game) async {
setState(() { game = await GameRepository.upsert(game);
games[game.name] = game; setState(() {
}); games[game.name] = game;
}, });
onDelete: () async { },
await GameRepository.delete(games.values.elementAt(i)); onDelete: () async {
setState(() { await GameRepository.delete(
games.remove(games.values.elementAt(i).name); games.values.elementAt(i),
}); );
}, setState(() {
) games.remove(
: NewGameCard( games.values.elementAt(i).name,
onGameCreated: (game) async { );
game = await GameRepository.upsert(game); });
setState(() { },
games[game.name] = game; )
}); : NewGameCard(
}, onGameCreated: (game) async {
), game = await GameRepository.upsert(game);
setState(() {
games[game.name] = game;
});
},
),
), ),
const SizedBox(width: 8), const SizedBox(width: 8),
Expanded( Expanded(
child: i + 1 < games.length child:
? GameCard( i + 1 < games.length
game: games.values.elementAt(i + 1), ? GameCard(
onGameUpdated: (game) async { game: games.values.elementAt(i + 1),
game = await GameRepository.upsert(game); onGameUpdated: (game) async {
setState(() { game = await GameRepository.upsert(game);
games[game.name] = game; setState(() {
}); games[game.name] = game;
}, });
onDelete: () async { },
await GameRepository.delete(games.values.elementAt(i + 1)); onDelete: () async {
setState(() { await GameRepository.delete(
games.remove(games.values.elementAt(i + 1).name); games.values.elementAt(i + 1),
}); );
}, setState(() {
) games.remove(
: const SizedBox(), // Empty space for odd number of items games.values.elementAt(i + 1).name,
);
});
},
)
: const SizedBox(), // Empty space for odd number of items
), ),
], ],
), ),