Updated choosing mechanism
All checks were successful
Pull Request Pipeline / test (pull_request) Successful in 2m5s
Pull Request Pipeline / lint (pull_request) Successful in 2m9s

This commit is contained in:
2025-12-06 17:13:33 +01:00
parent 75b62d0854
commit 10aad47124
3 changed files with 67 additions and 40 deletions

View File

@@ -35,13 +35,24 @@ class _ChooseGameViewState extends State<ChooseGameView> {
appBar: AppBar(
backgroundColor: CustomTheme.backgroundColor,
scrolledUnderElevation: 0,
leading: IconButton(
icon: const Icon(Icons.arrow_back_ios),
onPressed: () {
Navigator.of(
context,
).pop(selectedGameIndex == -1 ? null : selectedGameIndex);
},
),
title: const Text(
'Choose Game',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
centerTitle: true,
),
body: Column(
body: Container(
decoration: CustomTheme.standardBoxDecoration,
padding: const EdgeInsets.all(10),
child: Column(
children: [
CustomSearchBar(
controller: searchBarController,
@@ -61,10 +72,6 @@ class _ChooseGameViewState extends State<ChooseGameView> {
setState(() {
selectedGameIndex = index;
});
Future.delayed(const Duration(milliseconds: 500), () {
if (!context.mounted) return;
Navigator.of(context).pop(selectedGameIndex);
});
},
);
},
@@ -72,6 +79,7 @@ class _ChooseGameViewState extends State<ChooseGameView> {
),
],
),
),
);
}
}

View File

@@ -33,6 +33,16 @@ class _ChooseGroupViewState extends State<ChooseGroupView> {
appBar: AppBar(
backgroundColor: CustomTheme.backgroundColor,
scrolledUnderElevation: 0,
leading: IconButton(
icon: const Icon(Icons.arrow_back_ios),
onPressed: () {
Navigator.of(context).pop(
selectedGroupIndex == -1
? null
: widget.groups[selectedGroupIndex],
);
},
),
title: const Text(
'Choose Group',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
@@ -46,12 +56,11 @@ class _ChooseGroupViewState extends State<ChooseGroupView> {
return GestureDetector(
onTap: () {
setState(() {
if (selectedGroupIndex == index) {
selectedGroupIndex = -1;
} else {
selectedGroupIndex = index;
});
Future.delayed(const Duration(milliseconds: 500), () {
if (!context.mounted) return;
Navigator.of(context).pop(widget.groups[index]);
}
});
},
child: GroupTile(

View File

@@ -36,6 +36,16 @@ class _ChooseRulesetViewState extends State<ChooseRulesetView> {
appBar: AppBar(
backgroundColor: CustomTheme.backgroundColor,
scrolledUnderElevation: 0,
leading: IconButton(
icon: const Icon(Icons.arrow_back_ios),
onPressed: () {
Navigator.of(context).pop(
selectedRulesetIndex == -1
? null
: widget.rulesets[selectedRulesetIndex].$1,
);
},
),
title: const Text(
'Choose Ruleset',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
@@ -49,11 +59,11 @@ class _ChooseRulesetViewState extends State<ChooseRulesetView> {
return TitleDescriptionListTile(
onPressed: () async {
setState(() {
if (selectedRulesetIndex == index) {
selectedRulesetIndex = -1;
} else {
selectedRulesetIndex = index;
});
Future.delayed(const Duration(milliseconds: 500), () {
if (!context.mounted) return;
Navigator.of(context).pop(widget.rulesets[index].$1);
}
});
},
title: widget.rulesets[index].$2,