Skip to content

Commit ccd6045

Browse files
committed
refactor(app_configuration): improve text controller initialization
- Refactor _initializeControllers method for better readability - Use a closure to create and configure TextEditingController - Simplify code for updating controllers in updateSavedFiltersLimits - Improve formatting in onChanged callback
1 parent 388cf2d commit ccd6045

File tree

1 file changed

+18
-16
lines changed

1 file changed

+18
-16
lines changed

lib/app_configuration/widgets/saved_headlines_filters_limit_form.dart

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,14 @@ class _SavedHeadlinesFiltersLimitFormState
5959
void _initializeControllers() {
6060
_controllers = {
6161
for (final role in AppUserRole.values)
62-
role: TextEditingController(
63-
text: _getSavedFiltersLimit(
62+
role: () {
63+
final limitText = _getSavedFiltersLimit(
6464
widget.remoteConfig.userPreferenceConfig,
6565
role,
66-
).toString(),
67-
)..selection = TextSelection.collapsed(
68-
offset: _getSavedFiltersLimit(
69-
widget.remoteConfig.userPreferenceConfig,
70-
role,
71-
).toString().length,
72-
),
66+
).toString();
67+
return TextEditingController(text: limitText)
68+
..selection = TextSelection.collapsed(offset: limitText.length);
69+
}(),
7370
};
7471
}
7572

@@ -79,11 +76,13 @@ class _SavedHeadlinesFiltersLimitFormState
7976
widget.remoteConfig.userPreferenceConfig,
8077
role,
8178
).toString();
82-
if (_controllers[role]?.text != newLimit) {
83-
_controllers[role]?.text = newLimit;
84-
_controllers[role]?.selection = TextSelection.collapsed(
85-
offset: newLimit.length,
86-
);
79+
final controller = _controllers[role];
80+
if (controller != null && controller.text != newLimit) {
81+
controller
82+
..text = newLimit
83+
..selection = TextSelection.collapsed(
84+
offset: newLimit.length,
85+
);
8786
}
8887
}
8988
}
@@ -132,8 +131,11 @@ class _SavedHeadlinesFiltersLimitFormState
132131
onChanged: (value) {
133132
widget.onConfigChanged(
134133
widget.remoteConfig.copyWith(
135-
userPreferenceConfig:
136-
_updateSavedFiltersLimit(config, value, role),
134+
userPreferenceConfig: _updateSavedFiltersLimit(
135+
config,
136+
value,
137+
role,
138+
),
137139
),
138140
);
139141
},

0 commit comments

Comments
 (0)