From 019176d5a22419f221057bf55e19df8b33df1061 Mon Sep 17 00:00:00 2001 From: hieubt Date: Thu, 21 Dec 2023 00:16:39 +0700 Subject: [PATCH] TF-2101 Add input field focus manager (cherry picked from commit c2e5d7cd96d619d0dbb2453b4bf70c286d5cd3e3) --- .../controller/input_field_focus_manager.dart | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/features/email_recovery/presentation/controller/input_field_focus_manager.dart diff --git a/lib/features/email_recovery/presentation/controller/input_field_focus_manager.dart b/lib/features/email_recovery/presentation/controller/input_field_focus_manager.dart new file mode 100644 index 000000000..70cb056bb --- /dev/null +++ b/lib/features/email_recovery/presentation/controller/input_field_focus_manager.dart @@ -0,0 +1,35 @@ +import 'package:flutter/material.dart'; + +class InputFieldFocusManager { + late FocusNode deletionDateFieldFocusNode; + late FocusNode receptionDateFieldFocusNode; + late FocusNode subjectFieldFocusNode; + late FocusNode recipientsFieldFocusNode; + late FocusNode senderFieldFocusNode; + late FocusNode attachmentCheckboxFocusNode; + late FocusNode createButtonFocusNode; + + InputFieldFocusManager() { + deletionDateFieldFocusNode = FocusNode(); + receptionDateFieldFocusNode = FocusNode(); + subjectFieldFocusNode = FocusNode(); + recipientsFieldFocusNode = FocusNode(); + senderFieldFocusNode = FocusNode(); + attachmentCheckboxFocusNode = FocusNode(skipTraversal: true); + createButtonFocusNode = FocusNode(); + } + + factory InputFieldFocusManager.initial() { + return InputFieldFocusManager(); + } + + void dispose() { + deletionDateFieldFocusNode.dispose(); + receptionDateFieldFocusNode.dispose(); + subjectFieldFocusNode.dispose(); + recipientsFieldFocusNode.dispose(); + senderFieldFocusNode.dispose(); + attachmentCheckboxFocusNode.dispose(); + createButtonFocusNode.dispose(); + } +} \ No newline at end of file