Fehlende Methoden für Games Datenbank inplementieren #76
@@ -7,7 +7,7 @@ import 'package:game_tracker/data/dto/group.dart';
|
|||||||
import 'package:game_tracker/presentation/views/main_menu/create_game/choose_group_view.dart';
|
import 'package:game_tracker/presentation/views/main_menu/create_game/choose_group_view.dart';
|
||||||
import 'package:game_tracker/presentation/views/main_menu/create_game/choose_ruleset_view.dart';
|
import 'package:game_tracker/presentation/views/main_menu/create_game/choose_ruleset_view.dart';
|
||||||
import 'package:game_tracker/presentation/widgets/buttons/custom_width_button.dart';
|
import 'package:game_tracker/presentation/widgets/buttons/custom_width_button.dart';
|
||||||
import 'package:game_tracker/presentation/widgets/text_input_field.dart';
|
import 'package:game_tracker/presentation/widgets/text_input/custom_text_input_field.dart';
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:skeletonizer/skeletonizer.dart';
|
import 'package:skeletonizer/skeletonizer.dart';
|
||||||
|
|
||||||
@@ -19,19 +19,31 @@ class CreateGameView extends StatefulWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class _CreateGameViewState extends State<CreateGameView> {
|
class _CreateGameViewState extends State<CreateGameView> {
|
||||||
final TextEditingController _gameNameController = TextEditingController();
|
|
||||||
late final AppDatabase db;
|
late final AppDatabase db;
|
||||||
late Future<List<Group>> _allGroupsFuture;
|
late Future<List<Group>> _allGroupsFuture;
|
||||||
|
final TextEditingController _gameNameController = TextEditingController();
|
||||||
|
sneeex marked this conversation as resolved
|
|||||||
|
|
||||||
|
/// List of all groups from the database
|
||||||
late final List<Group> groupsList;
|
late final List<Group> groupsList;
|
||||||
|
|
||||||
|
/// The currently selected group
|
||||||
Group? selectedGroup;
|
Group? selectedGroup;
|
||||||
|
|
||||||
|
/// The index of the currently selected group in [groupsList] to mark it in
|
||||||
|
/// the [ChooseGroupView]
|
||||||
int selectedGroupIndex = -1;
|
int selectedGroupIndex = -1;
|
||||||
|
|
||||||
|
/// The currently selected ruleset
|
||||||
Ruleset? selectedRuleset;
|
Ruleset? selectedRuleset;
|
||||||
|
|
||||||
|
/// The index of the currently selected ruleset in [rulesets] to mark it in
|
||||||
|
/// the [ChooseRulesetView]
|
||||||
int selectedRulesetIndex = -1;
|
int selectedRulesetIndex = -1;
|
||||||
|
|
||||||
bool isLoading = true;
|
bool isLoading = true;
|
||||||
|
|
||||||
|
/// List of available rulesets with their display names and descriptions
|
||||||
|
/// as tuples of (Ruleset, String, String)
|
||||||
List<(Ruleset, String, String)> rulesets = [
|
List<(Ruleset, String, String)> rulesets = [
|
||||||
(
|
(
|
||||||
Ruleset.singleWinner,
|
Ruleset.singleWinner,
|
||||||
@@ -106,19 +118,13 @@ class _CreateGameViewState extends State<CreateGameView> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Container(
|
CustomTextInputField(
|
||||||
margin: const EdgeInsets.symmetric(
|
|
||||||
horizontal: 12,
|
|
||||||
vertical: 10,
|
|
||||||
),
|
|
||||||
child: TextInputField(
|
|
||||||
controller: _gameNameController,
|
controller: _gameNameController,
|
||||||
hintText: 'Game name',
|
hintText: 'Game name',
|
||||||
onChanged: (value) {
|
onChanged: (value) {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
),
|
|
||||||
GestureDetector(
|
GestureDetector(
|
||||||
onTap: () async {
|
onTap: () async {
|
||||||
selectedRuleset = await Navigator.of(context).push(
|
selectedRuleset = await Navigator.of(context).push(
|
||||||
|
|||||||
@@ -0,0 +1,32 @@
|
|||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:game_tracker/presentation/widgets/text_input_field.dart';
|
||||||
|
|
||||||
|
class CustomTextInputField extends StatefulWidget {
|
||||||
|
final TextEditingController controller;
|
||||||
|
final String hintText;
|
||||||
|
final void Function(String)? onChanged;
|
||||||
|
|
||||||
|
const CustomTextInputField({
|
||||||
|
super.key,
|
||||||
|
required this.controller,
|
||||||
|
required this.hintText,
|
||||||
|
this.onChanged,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<CustomTextInputField> createState() => _CustomTextInputFieldState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _CustomTextInputFieldState extends State<CustomTextInputField> {
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Container(
|
||||||
|
margin: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
|
||||||
|
child: TextInputField(
|
||||||
|
controller: widget.controller,
|
||||||
|
hintText: widget.hintText,
|
||||||
|
onChanged: widget.onChanged,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user
Warum so viele useless Kommentare? ChatGPT?
Ja war wo anders auch so, finde das auch zu viel, er meinte beim anderen mal aber zum verständnis und so
also ich check das ja an sich, wenn das denn nur halt überall so wäre
finde es gibt auf jeden fall parts in dem code die schwerer zu verstehen sind als das und garkeine kommentare haben
Finde das irgendwie geiler wenn jede variable da oben ne beschreibung hat, wenn man über sie hovert auch (mit den
///), also finde das sinnvollerWarum dann aber nicht überall? oder kommt das im refactor?
Ja würde ich gerne machen, auch als vorlage für alle kommenden Variablen, Methoden & Klassen