Optimized ruleset touples

This commit is contained in:
2026-01-07 14:11:14 +01:00
parent 0f824bb30a
commit 4b1d3923a0

View File

@@ -67,6 +67,9 @@ class _CreateMatchViewState extends State<CreateMatchView> {
/// The currently selected players /// The currently selected players
List<Player>? selectedPlayers; List<Player>? selectedPlayers;
/// List of available rulesets with their localized string representations
late final List<(Ruleset, String)> _rulesets;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@@ -88,9 +91,11 @@ class _CreateMatchViewState extends State<CreateMatchView> {
}); });
} }
List<(Ruleset, String)> _getRulesets(BuildContext context) { @override
void didChangeDependencies() {
super.didChangeDependencies();
final loc = AppLocalizations.of(context); final loc = AppLocalizations.of(context);
return [ _rulesets = [
(Ruleset.singleWinner, loc.ruleset_single_winner), (Ruleset.singleWinner, loc.ruleset_single_winner),
(Ruleset.singleLoser, loc.ruleset_single_loser), (Ruleset.singleLoser, loc.ruleset_single_loser),
(Ruleset.mostPoints, loc.ruleset_most_points), (Ruleset.mostPoints, loc.ruleset_most_points),
@@ -147,9 +152,9 @@ class _CreateMatchViewState extends State<CreateMatchView> {
if (selectedGameIndex != -1) { if (selectedGameIndex != -1) {
hintText = games[selectedGameIndex].$1; hintText = games[selectedGameIndex].$1;
selectedRuleset = games[selectedGameIndex].$3; selectedRuleset = games[selectedGameIndex].$3;
selectedRulesetIndex = _getRulesets( selectedRulesetIndex = _rulesets.indexWhere(
context, (r) => r.$1 == selectedRuleset,
).indexWhere((r) => r.$1 == selectedRuleset); );
} else { } else {
hintText = 'Match Name'; hintText = 'Match Name';
selectedRuleset = null; selectedRuleset = null;
@@ -163,17 +168,16 @@ class _CreateMatchViewState extends State<CreateMatchView> {
? loc.none ? loc.none
: translateRulesetToString(selectedRuleset!, context), : translateRulesetToString(selectedRuleset!, context),
onPressed: () async { onPressed: () async {
final rulesets = _getRulesets(context);
selectedRuleset = await Navigator.of(context).push( selectedRuleset = await Navigator.of(context).push(
MaterialPageRoute( MaterialPageRoute(
builder: (context) => ChooseRulesetView( builder: (context) => ChooseRulesetView(
rulesets: rulesets, rulesets: _rulesets,
initialRulesetIndex: selectedRulesetIndex, initialRulesetIndex: selectedRulesetIndex,
), ),
), ),
); );
if (!mounted) return; if (!mounted) return;
selectedRulesetIndex = rulesets.indexWhere( selectedRulesetIndex = _rulesets.indexWhere(
(r) => r.$1 == selectedRuleset, (r) => r.$1 == selectedRuleset,
); );
selectedGameIndex = -1; selectedGameIndex = -1;