check for game object on match create
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:game_tracker/core/adaptive_page_route.dart';
|
|||||||
import 'package:game_tracker/core/custom_theme.dart';
|
import 'package:game_tracker/core/custom_theme.dart';
|
||||||
import 'package:game_tracker/core/enums.dart';
|
import 'package:game_tracker/core/enums.dart';
|
||||||
import 'package:game_tracker/data/db/database.dart';
|
import 'package:game_tracker/data/db/database.dart';
|
||||||
|
import 'package:game_tracker/data/dto/game.dart';
|
||||||
import 'package:game_tracker/data/dto/group.dart';
|
import 'package:game_tracker/data/dto/group.dart';
|
||||||
import 'package:game_tracker/data/dto/match.dart';
|
import 'package:game_tracker/data/dto/match.dart';
|
||||||
import 'package:game_tracker/data/dto/player.dart';
|
import 'package:game_tracker/data/dto/player.dart';
|
||||||
@@ -229,11 +230,20 @@ class _CreateMatchViewState extends State<CreateMatchView> {
|
|||||||
buttonType: ButtonType.primary,
|
buttonType: ButtonType.primary,
|
||||||
onPressed: _enableCreateGameButton()
|
onPressed: _enableCreateGameButton()
|
||||||
? () async {
|
? () async {
|
||||||
|
final selectedGame = games[selectedGameIndex];
|
||||||
|
final game = Game(
|
||||||
|
name: selectedGame.$1,
|
||||||
|
description: selectedGame.$2.isEmpty ? null : selectedGame.$2,
|
||||||
|
ruleset: selectedGame.$3.name,
|
||||||
|
);
|
||||||
|
// Ensure the game exists in the database before creating the match
|
||||||
|
await db.gameDao.addGame(game: game);
|
||||||
Match match = Match(
|
Match match = Match(
|
||||||
name: _matchNameController.text.isEmpty
|
name: _matchNameController.text.isEmpty
|
||||||
? (hintText ?? '')
|
? (hintText ?? '')
|
||||||
: _matchNameController.text.trim(),
|
: _matchNameController.text.trim(),
|
||||||
createdAt: DateTime.now(),
|
createdAt: DateTime.now(),
|
||||||
|
game: game,
|
||||||
group: selectedGroup,
|
group: selectedGroup,
|
||||||
players: selectedPlayers,
|
players: selectedPlayers,
|
||||||
);
|
);
|
||||||
@@ -263,10 +273,12 @@ class _CreateMatchViewState extends State<CreateMatchView> {
|
|||||||
/// Determines whether the "Create Match" button should be enabled.
|
/// Determines whether the "Create Match" button should be enabled.
|
||||||
///
|
///
|
||||||
/// Returns `true` if:
|
/// Returns `true` if:
|
||||||
|
/// - A game is selected AND
|
||||||
/// - A ruleset is selected AND
|
/// - A ruleset is selected AND
|
||||||
/// - Either a group is selected OR at least 2 players are selected
|
/// - Either a group is selected OR at least 2 players are selected
|
||||||
bool _enableCreateGameButton() {
|
bool _enableCreateGameButton() {
|
||||||
return (selectedGroup != null ||
|
return selectedGameIndex != -1 &&
|
||||||
|
(selectedGroup != null ||
|
||||||
(selectedPlayers != null && selectedPlayers!.length > 1)) &&
|
(selectedPlayers != null && selectedPlayers!.length > 1)) &&
|
||||||
selectedRuleset != null;
|
selectedRuleset != null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user