Small refactoring
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m1s
Pull Request Pipeline / lint (pull_request) Successful in 2m6s

This commit is contained in:
2025-12-10 14:04:15 +01:00
parent e1626225ac
commit 3b3d298ff5

View File

@@ -43,6 +43,12 @@ class _CreateGameViewState extends State<CreateGameView> {
/// List of all players from the database /// List of all players from the database
List<Player> playerList = []; List<Player> playerList = [];
/// List of players filtered based on the selected group
/// If a group is selected, this list contains all players from [playerList]
/// who are not members of the selected group. If no group is selected,
/// this list is identical to [playerList].
List<Player> filteredPlayerList = [];
/// The currently selected group /// The currently selected group
Group? selectedGroup; Group? selectedGroup;
@@ -57,6 +63,8 @@ class _CreateGameViewState extends State<CreateGameView> {
/// the [ChooseRulesetView] /// the [ChooseRulesetView]
int selectedRulesetIndex = -1; int selectedRulesetIndex = -1;
/// The index of the currently selected game in [games] to mark it in
/// the [ChooseGameView]
int selectedGameIndex = -1; int selectedGameIndex = -1;
/// The currently selected players /// The currently selected players
@@ -105,6 +113,7 @@ class _CreateGameViewState extends State<CreateGameView> {
Future.wait([_allGroupsFuture, _allPlayersFuture]).then((result) async { Future.wait([_allGroupsFuture, _allPlayersFuture]).then((result) async {
groupsList = result[0] as List<Group>; groupsList = result[0] as List<Group>;
playerList = result[1] as List<Player>; playerList = result[1] as List<Player>;
filteredPlayerList = List.from(playerList);
}); });
} }
@@ -194,6 +203,15 @@ class _CreateGameViewState extends State<CreateGameView> {
), ),
); );
selectedGroupId = selectedGroup?.id ?? ''; selectedGroupId = selectedGroup?.id ?? '';
if (selectedGroup != null) {
filteredPlayerList = playerList
.where(
(p) => !selectedGroup!.members.any((m) => m.id == p.id),
)
.toList();
} else {
filteredPlayerList = List.from(playerList);
}
setState(() {}); setState(() {});
}, },
), ),
@@ -201,15 +219,7 @@ class _CreateGameViewState extends State<CreateGameView> {
child: PlayerSelection( child: PlayerSelection(
key: ValueKey(selectedGroup?.id ?? 'no_group'), key: ValueKey(selectedGroup?.id ?? 'no_group'),
initialSelectedPlayers: selectedPlayers ?? [], initialSelectedPlayers: selectedPlayers ?? [],
availablePlayers: selectedGroup == null availablePlayers: filteredPlayerList,
? playerList
: playerList
.where(
(p) => !selectedGroup!.members.any(
(m) => m.id == p.id,
),
)
.toList(),
onChanged: (value) { onChanged: (value) {
setState(() { setState(() {
selectedPlayers = value; selectedPlayers = value;
@@ -226,7 +236,7 @@ class _CreateGameViewState extends State<CreateGameView> {
Game game = Game( Game game = Game(
name: _gameNameController.text.trim(), name: _gameNameController.text.trim(),
createdAt: DateTime.now(), createdAt: DateTime.now(),
group: selectedGroup!, group: selectedGroup,
players: selectedPlayers, players: selectedPlayers,
); );
await db.gameDao.addGame(game: game); await db.gameDao.addGame(game: game);