TF-894 Auto focus input name when open dialog

This commit is contained in:
dab246
2022-09-08 13:41:50 +07:00
committed by Dat H. Pham
parent aab8967c27
commit 474235de4f
3 changed files with 9 additions and 1 deletions
@@ -42,6 +42,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
final inputRuleNameController = TextEditingController();
final inputConditionValueController = TextEditingController();
final inputRuleNameFocusNode = FocusNode();
AccountId? _accountId;
String? _newRuleName;
@@ -63,6 +64,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
@override
void onClose() {
inputRuleNameFocusNode.dispose();
inputRuleNameController.dispose();
inputConditionValueController.dispose();
super.onClose();
@@ -121,7 +123,7 @@ class RulesFilterCreatorController extends BaseMailboxController {
}
break;
}
inputRuleNameFocusNode.requestFocus();
_updateStateCreatorButton();
}
@@ -123,6 +123,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
hintText: AppLocalizations.of(context).rulesNameHintTextInput,
errorText: controller.errorRuleName.value,
editingController: controller.inputRuleNameController,
focusNode: controller.inputRuleNameFocusNode,
onChangeAction: (value) => controller.updateRuleName(context, value),)),
const SizedBox(height: 24),
Text(AppLocalizations.of(context).conditionTitleRulesFilter,
@@ -283,6 +284,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
hintText: AppLocalizations.of(context).rulesNameHintTextInput,
errorText: controller.errorRuleName.value,
editingController: controller.inputRuleNameController,
focusNode: controller.inputRuleNameFocusNode,
onChangeAction: (value) => controller.updateRuleName(context, value),)),
const SizedBox(height: 24),
Text(AppLocalizations.of(context).conditionTitleRulesFilter,
@@ -443,6 +445,7 @@ class RuleFilterCreatorView extends GetWidget<RulesFilterCreatorController> {
hintText: AppLocalizations.of(context).rulesNameHintTextInput,
errorText: controller.errorRuleName.value,
editingController: controller.inputRuleNameController,
focusNode: controller.inputRuleNameFocusNode,
onChangeAction: (value) => controller.updateRuleName(context, value),)),
const Padding(
padding: EdgeInsets.symmetric(vertical: 12),
@@ -11,6 +11,7 @@ class RulesFilterInputField extends StatelessWidget {
final String? errorText;
final String? hintText;
final TextEditingController? editingController;
final FocusNode? focusNode;
final OnChangeFilterInputAction? onChangeAction;
const RulesFilterInputField({
@@ -18,6 +19,7 @@ class RulesFilterInputField extends StatelessWidget {
this.hintText,
this.errorText,
this.editingController,
this.focusNode,
this.onChangeAction
}) : super(key: key);
@@ -29,6 +31,7 @@ class RulesFilterInputField extends StatelessWidget {
..addController(editingController ?? TextEditingController())
..textStyle(const TextStyle(color: Colors.black, fontSize: 16))
..keyboardType(TextInputType.text)
..addFocusNode(focusNode)
..textDecoration((RulesFilterInputDecorationBuilder()
..setContentPadding(const EdgeInsets.symmetric(
vertical: BuildUtils.isWeb ? 16 : 12,