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