TF-1033: Auto scroll composer to follow user typing
This commit is contained in:
@@ -116,6 +116,8 @@ class ComposerController extends BaseController {
|
|||||||
|
|
||||||
final RichTextController keyboardRichTextController = RichTextController();
|
final RichTextController keyboardRichTextController = RichTextController();
|
||||||
|
|
||||||
|
final ScrollController scrollController = ScrollController();
|
||||||
|
|
||||||
List<Attachment> initialAttachments = <Attachment>[];
|
List<Attachment> initialAttachments = <Attachment>[];
|
||||||
String? _textEditorWeb;
|
String? _textEditorWeb;
|
||||||
List<EmailContent>? _emailContents;
|
List<EmailContent>? _emailContents;
|
||||||
@@ -219,6 +221,7 @@ class ComposerController extends BaseController {
|
|||||||
bccEmailAddressController.dispose();
|
bccEmailAddressController.dispose();
|
||||||
uploadInlineImageWorker.dispose();
|
uploadInlineImageWorker.dispose();
|
||||||
keyboardRichTextController.dispose();
|
keyboardRichTextController.dispose();
|
||||||
|
scrollController.dispose();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -399,6 +399,7 @@ class ComposerView extends GetWidget<ComposerController>
|
|||||||
Widget _buildBodyMobile(BuildContext context, double maxWidth) {
|
Widget _buildBodyMobile(BuildContext context, double maxWidth) {
|
||||||
return rich_text_composer.KeyboardRichText(
|
return rich_text_composer.KeyboardRichText(
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
|
controller: controller.scrollController,
|
||||||
physics: const ClampingScrollPhysics(),
|
physics: const ClampingScrollPhysics(),
|
||||||
child: Column(children: [
|
child: Column(children: [
|
||||||
Obx(() => controller.identitySelected.value != null
|
Obx(() => controller.identitySelected.value != null
|
||||||
@@ -629,7 +630,7 @@ class ComposerView extends GetWidget<ComposerController>
|
|||||||
switch(argsComposer.emailActionType) {
|
switch(argsComposer.emailActionType) {
|
||||||
case EmailActionType.compose:
|
case EmailActionType.compose:
|
||||||
case EmailActionType.composeFromEmailAddress:
|
case EmailActionType.composeFromEmailAddress:
|
||||||
return _buildHtmlEditor('', context);
|
return _buildHtmlEditor(HtmlExtension.editorStartTags, context);
|
||||||
case EmailActionType.edit:
|
case EmailActionType.edit:
|
||||||
return controller.emailContentsViewState.value.fold(
|
return controller.emailContentsViewState.value.fold(
|
||||||
(failure) => _buildHtmlEditor(HtmlExtension.editorStartTags, context),
|
(failure) => _buildHtmlEditor(HtmlExtension.editorStartTags, context),
|
||||||
@@ -677,7 +678,10 @@ class ComposerView extends GetWidget<ComposerController>
|
|||||||
onCreated: (editorApi) {
|
onCreated: (editorApi) {
|
||||||
richTextMobileTabletController.htmlEditorApi = editorApi;
|
richTextMobileTabletController.htmlEditorApi = editorApi;
|
||||||
if(responsiveUtils.isMobile(context)){
|
if(responsiveUtils.isMobile(context)){
|
||||||
controller.keyboardRichTextController.onCreateHTMLEditor(editorApi);
|
controller.keyboardRichTextController.onCreateHTMLEditor(
|
||||||
|
editorApi,
|
||||||
|
scrollController: controller.scrollController,
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
richTextMobileTabletController.listenHtmlEditorApi();
|
richTextMobileTabletController.listenHtmlEditorApi();
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -45,7 +45,7 @@ dependencies:
|
|||||||
rich_text_composer:
|
rich_text_composer:
|
||||||
git:
|
git:
|
||||||
url: https://github.com/linagora/rich-text-composer.git
|
url: https://github.com/linagora/rich-text-composer.git
|
||||||
ref: master
|
ref: apply_rich_text_bottom_sheet
|
||||||
# The following adds the Cupertino Icons font to your application.
|
# The following adds the Cupertino Icons font to your application.
|
||||||
# Use with the CupertinoIcons class for iOS style icons.
|
# Use with the CupertinoIcons class for iOS style icons.
|
||||||
cupertino_icons: ^1.0.2
|
cupertino_icons: ^1.0.2
|
||||||
|
|||||||
Reference in New Issue
Block a user