From 4b1d3923a094cdc977db2011dcbb55fbe2022d30 Mon Sep 17 00:00:00 2001 From: Felix Kirchner Date: Wed, 7 Jan 2026 14:11:14 +0100 Subject: [PATCH] Optimized ruleset touples --- .../create_match/create_match_view.dart | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/presentation/views/main_menu/match_view/create_match/create_match_view.dart b/lib/presentation/views/main_menu/match_view/create_match/create_match_view.dart index 775f29d..2bc56e6 100644 --- a/lib/presentation/views/main_menu/match_view/create_match/create_match_view.dart +++ b/lib/presentation/views/main_menu/match_view/create_match/create_match_view.dart @@ -67,6 +67,9 @@ class _CreateMatchViewState extends State { /// The currently selected players List? selectedPlayers; + /// List of available rulesets with their localized string representations + late final List<(Ruleset, String)> _rulesets; + @override void initState() { super.initState(); @@ -88,9 +91,11 @@ class _CreateMatchViewState extends State { }); } - List<(Ruleset, String)> _getRulesets(BuildContext context) { + @override + void didChangeDependencies() { + super.didChangeDependencies(); final loc = AppLocalizations.of(context); - return [ + _rulesets = [ (Ruleset.singleWinner, loc.ruleset_single_winner), (Ruleset.singleLoser, loc.ruleset_single_loser), (Ruleset.mostPoints, loc.ruleset_most_points), @@ -147,9 +152,9 @@ class _CreateMatchViewState extends State { if (selectedGameIndex != -1) { hintText = games[selectedGameIndex].$1; selectedRuleset = games[selectedGameIndex].$3; - selectedRulesetIndex = _getRulesets( - context, - ).indexWhere((r) => r.$1 == selectedRuleset); + selectedRulesetIndex = _rulesets.indexWhere( + (r) => r.$1 == selectedRuleset, + ); } else { hintText = 'Match Name'; selectedRuleset = null; @@ -163,17 +168,16 @@ class _CreateMatchViewState extends State { ? loc.none : translateRulesetToString(selectedRuleset!, context), onPressed: () async { - final rulesets = _getRulesets(context); selectedRuleset = await Navigator.of(context).push( MaterialPageRoute( builder: (context) => ChooseRulesetView( - rulesets: rulesets, + rulesets: _rulesets, initialRulesetIndex: selectedRulesetIndex, ), ), ); if (!mounted) return; - selectedRulesetIndex = rulesets.indexWhere( + selectedRulesetIndex = _rulesets.indexWhere( (r) => r.$1 == selectedRuleset, ); selectedGameIndex = -1;