Skip to content

Commit 9a3af90

Browse files
committed
fix initState of composer
1 parent 9a89178 commit 9a3af90

1 file changed

Lines changed: 10 additions & 8 deletions

File tree

packages/stream_chat_flutter/lib/src/components/message_composer/stream_message_composer.dart

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,9 @@ class _DefaultStreamMessageComposerState extends State<DefaultStreamMessageCompo
492492
assert(_restorableController != null, '');
493493
registerForRestoration(_restorableController!, 'messageComposerController');
494494
_initController();
495+
// Add the focus listener here since _effectiveController.value is only
496+
// accessible after the restorable has been registered.
497+
_effectiveFocusNode.addListener(_focusNodeListener);
495498
}
496499

497500
String? _prevQuotedMessageId;
@@ -559,15 +562,14 @@ class _DefaultStreamMessageComposerState extends State<DefaultStreamMessageCompo
559562

560563
if (widget.props.controller == null) {
561564
_createLocalController();
565+
// Focus listener and controller init happen later in _registerController,
566+
// which is called from restoreState — after the restorable is registered.
567+
} else {
568+
_effectiveFocusNode.addListener(_focusNodeListener);
569+
WidgetsBinding.instance.endOfFrame.then((_) {
570+
if (mounted) _initController();
571+
});
562572
}
563-
564-
_effectiveFocusNode.addListener(_focusNodeListener);
565-
566-
WidgetsBinding.instance.endOfFrame.then((_) {
567-
if (mounted && widget.props.controller != null) {
568-
_initController();
569-
}
570-
});
571573
}
572574

573575
@override

0 commit comments

Comments
 (0)