TF-1884 Support RTL mode for TextField

(cherry picked from commit 3f8445141bea9dbf276a6a336114e4e2b549936f)
This commit is contained in:
dab246
2023-06-14 11:47:13 +07:00
committed by Dat H. Pham
parent 0cc2a2f0cc
commit df19b979a2
28 changed files with 500 additions and 485 deletions
@@ -13,6 +13,7 @@ import 'package:core/presentation/views/list/sliver_grid_delegate_fixed_height.d
import 'package:core/presentation/views/responsive/responsive_widget.dart';
import 'package:core/presentation/views/text/text_field_builder.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:file_picker/file_picker.dart';
import 'package:filesize/filesize.dart';
@@ -490,16 +491,17 @@ class ComposerView extends GetWidget<ComposerController>
)
)
),
Expanded(child: (TextFieldBuilder()
..key(const Key('subject_email_input'))
..cursorColor(AppColor.colorTextButton)
..maxLines(responsiveUtils.isMobile(context) ? null : 1)
..addFocusNode(controller.subjectEmailInputFocusNode)
..onChange((value) => controller.setSubjectEmail(value))
..textStyle(const TextStyle(color: Colors.black, fontSize: 15, fontWeight: FontWeight.normal))
..textDecoration(const InputDecoration(contentPadding: EdgeInsets.zero, border: InputBorder.none))
..addController(controller.subjectEmailInputController))
.build())
Expanded(child: TextFieldBuilder(
key: const Key('subject_email_input'),
cursorColor: AppColor.colorTextButton,
maxLines: responsiveUtils.isMobile(context) ? null : 1,
focusNode: controller.subjectEmailInputFocusNode,
textDirection: DirectionUtils.getDirectionByLanguage(context),
onTextChange: controller.setSubjectEmail,
textStyle: const TextStyle(color: Colors.black, fontSize: 15, fontWeight: FontWeight.normal),
decoration: const InputDecoration(contentPadding: EdgeInsets.zero, border: InputBorder.none),
controller: controller.subjectEmailInputController,
))
]
);
}
@@ -11,6 +11,7 @@ import 'package:core/presentation/views/image/avatar_builder.dart';
import 'package:core/presentation/views/responsive/responsive_widget.dart';
import 'package:core/presentation/views/text/text_field_builder.dart';
import 'package:core/utils/app_logger.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:dropdown_button2/dropdown_button2.dart';
import 'package:file_picker/file_picker.dart';
import 'package:filesize/filesize.dart';
@@ -690,16 +691,16 @@ class ComposerView extends GetWidget<ComposerController>
)
)
),
Expanded(child: (TextFieldBuilder()
..key(const Key('subject_email_input'))
..cursorColor(AppColor.colorTextButton)
..addFocusNode(controller.subjectEmailInputFocusNode)
..onChange((value) => controller.setSubjectEmail(value))
..textStyle(const TextStyle(color: Colors.black, fontSize: 15, fontWeight: FontWeight.normal))
..textDecoration(const InputDecoration(contentPadding: EdgeInsets.zero, border: InputBorder.none))
..addController(controller.subjectEmailInputController))
.build()
)
Expanded(child: TextFieldBuilder(
key: const Key('subject_email_input'),
cursorColor: AppColor.colorTextButton,
focusNode: controller.subjectEmailInputFocusNode,
onTextChange: controller.setSubjectEmail,
textDirection: DirectionUtils.getDirectionByLanguage(context),
textStyle: const TextStyle(color: Colors.black, fontSize: 15, fontWeight: FontWeight.normal),
decoration: const InputDecoration(contentPadding: EdgeInsets.zero, border: InputBorder.none),
controller: controller.subjectEmailInputController,
))
]
);
}
@@ -1,6 +1,7 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:core/presentation/views/button/icon_button_web.dart';
import 'package:core/presentation/views/text/text_field_builder.dart';
import 'package:core/utils/build_utils.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
@@ -101,7 +102,7 @@ class InsertImageDialogBuilder {
color: Colors.black,
fontWeight: FontWeight.w500)),
const SizedBox(height: 10),
TextField(
TextFieldBuilder(
controller: _inputUrlController,
textInputAction: TextInputAction.done,
decoration: InputDecoration(
@@ -110,7 +111,7 @@ class InsertImageDialogBuilder {
errorText: validateFailed,
errorMaxLines: 2,
),
),
)
]),
),
actionsPadding: const EdgeInsets.symmetric(vertical: 8, horizontal: 8),