diff --git a/lib/main.dart b/lib/main.dart index 456b134..e6ec744 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -90,73 +90,41 @@ class _MyHomePageState extends State { onRefresh: _refreshGames, child: SingleChildScrollView( padding: const EdgeInsets.all(8), - child: Column( + child: Wrap( + spacing: 8, + runSpacing: 8, children: [ - for (var i = 0; i < games.length + 1; i += 2) - Padding( - padding: const EdgeInsets.only(bottom: 8), - child: Row( - 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; - }); - }, - ), - ), - 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 - ), - ], + ...games.values.map( + (game) => SizedBox( + width: (MediaQuery.of(context).size.width - 24) / 2, + child: GameCard( + game: game, + onGameUpdated: (game) async { + game = await GameRepository.upsert(game); + setState(() { + games[game.name] = game; + }); + }, + onDelete: () async { + await GameRepository.delete(game); + setState(() { + games.remove(game.name); + }); + }, ), ), + ), + SizedBox( + width: (MediaQuery.of(context).size.width - 24) / 2, + child: NewGameCard( + onGameCreated: (game) async { + game = await GameRepository.upsert(game); + setState(() { + games[game.name] = game; + }); + }, + ), + ), ], ), ),