Skip to content

Added FocusNode support in AdvancedTextFieldController#44

Open
aydinguven-leancode wants to merge 1 commit into
refactor/cubit-to-notifier-migrationfrom
feature/LMG-400-focusnode-support
Open

Added FocusNode support in AdvancedTextFieldController#44
aydinguven-leancode wants to merge 1 commit into
refactor/cubit-to-notifier-migrationfrom
feature/LMG-400-focusnode-support

Conversation

@aydinguven-leancode

Copy link
Copy Markdown

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds first-class focus management to the text field controller so consumers can bind a FocusNode directly and request focus without maintaining a custom subclass (as previously done in the example app).

Changes:

  • Added an owned FocusNode and focus() helper to AdvancedTextFieldController, and dispose the node with the controller lifecycle.
  • Added unit/widget tests covering focusNode creation, focus requests, and disposal behavior.
  • Simplified the example app by removing the dedicated FocusableTextFieldController and wiring widgets to field.focusNode.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
test/src/field/field_controller_test.dart Adds coverage for AdvancedTextFieldController focus node behavior.
lib/src/field/advanced_text_field_controller.dart Introduces owned FocusNode, focus(), and disposal integration.
example/lib/widgets/form_text_field.dart Binds AppTextField to field.focusNode and removes focusable wrapper usage.
example/lib/screens/scroll_form.dart Switches example fields to AdvancedTextFieldController and uses focus() for navigation.
example/lib/controllers/focusable_text_field_controller.dart Removes now-redundant controller subclass.
CHANGELOG.md Documents the newly supported focus-management API.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

/// [textController] and [focusNode]; programmatic changes via [setValue] /
/// [reset] / [clearErrors] propagate to the text controller, and user input on
/// the text controller propagates back to the field state.
class AdvancedTextFieldController<E extends Object> extends AdvancedFieldController< String, E> {
Comment on lines +28 to +29
/// The [FocusNode] bound to this field. Lifecycle owned by this class
/// don;t dispose externally.
@aydinguven-leancode aydinguven-leancode self-assigned this Jun 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants