TF-691 Support change focus input field by TAB key on web keyboard
This commit is contained in:
@@ -11,6 +11,7 @@ import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete
|
||||
import 'package:tmail_ui_user/features/composer/domain/usecases/get_autocomplete_with_device_contact_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_picker_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/input_field_focus_manager.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/mailbox_dashboard_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/controller/search_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
||||
@@ -44,6 +45,8 @@ class AdvancedFilterController extends GetxController {
|
||||
SearchEmailFilter get searchEmailFilter =>
|
||||
searchController.searchEmailFilter.value;
|
||||
|
||||
final focusManager = InputFieldFocusManager.initial();
|
||||
|
||||
@override
|
||||
void onReady() async {
|
||||
if (!BuildUtils.isWeb) {
|
||||
@@ -202,6 +205,7 @@ class AdvancedFilterController extends GetxController {
|
||||
|
||||
@override
|
||||
void onClose() {
|
||||
focusManager.dispose();
|
||||
subjectFilterInputController.dispose();
|
||||
hasKeyWordFilterInputController.dispose();
|
||||
notKeyWordFilterInputController.dispose();
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class InputFieldFocusManager {
|
||||
|
||||
late FocusNode fromFieldFocusNode;
|
||||
late FocusNode toFieldFocusNode;
|
||||
late FocusNode subjectFieldFocusNode;
|
||||
late FocusNode hasKeywordFieldFocusNode;
|
||||
late FocusNode notKeywordFieldFocusNode;
|
||||
late FocusNode mailboxFieldFocusNode;
|
||||
late FocusNode attachmentCheckboxFocusNode;
|
||||
late FocusNode searchButtonFocusNode;
|
||||
|
||||
InputFieldFocusManager() {
|
||||
fromFieldFocusNode = FocusNode();
|
||||
toFieldFocusNode = FocusNode();
|
||||
subjectFieldFocusNode = FocusNode();
|
||||
hasKeywordFieldFocusNode = FocusNode();
|
||||
notKeywordFieldFocusNode = FocusNode();
|
||||
mailboxFieldFocusNode = FocusNode();
|
||||
attachmentCheckboxFocusNode = FocusNode(skipTraversal: true);
|
||||
searchButtonFocusNode = FocusNode();
|
||||
}
|
||||
|
||||
factory InputFieldFocusManager.initial() {
|
||||
return InputFieldFocusManager();
|
||||
}
|
||||
|
||||
void dispose() {
|
||||
fromFieldFocusNode.dispose();
|
||||
toFieldFocusNode.dispose();
|
||||
subjectFieldFocusNode.dispose();
|
||||
hasKeywordFieldFocusNode.dispose();
|
||||
notKeywordFieldFocusNode.dispose();
|
||||
mailboxFieldFocusNode.dispose();
|
||||
attachmentCheckboxFocusNode.dispose();
|
||||
searchButtonFocusNode.dispose();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user