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
@@ -642,6 +642,14 @@ class SearchEmailController extends BaseController
_deBouncerTime.value = text;
}
void onTextSearchSubmitted(BuildContext context, String text) {
final query = text.trim();
if (query.isNotEmpty) {
saveRecentSearch(RecentSearch.now(query));
submitSearchAction(context, query);
}
}
void setTextInputSearchForm(String value) {
textInputSearchController.text = value;
}
@@ -7,6 +7,7 @@ import 'package:core/presentation/views/background/background_widget_builder.dar
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:core/utils/direction_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
@@ -117,29 +118,21 @@ class SearchEmailView extends GetWidget<SearchEmailController>
tooltip: AppLocalizations.of(context).back,
onTap: () => controller.closeSearchView(context)
),
Expanded(child: (TextFieldBuilder()
..onChange(controller.onTextSearchChange)
..textInputAction(TextInputAction.search)
..addController(controller.textInputSearchController)
..addFocusNode(controller.textInputSearchFocus)
..textStyle(const TextStyle(color: Colors.black, fontSize: 16))
..keyboardType(TextInputType.text)
..onSubmitted((value) {
final query = value.trim();
if (query.isNotEmpty) {
controller.saveRecentSearch(RecentSearch.now(query));
controller.submitSearchAction(context, query);
}
})
..maxLines(1)
..textDecoration(InputDecoration(
contentPadding: const EdgeInsets.all(12),
hintText: AppLocalizations.of(context).search_emails,
hintStyle: const TextStyle(
color: AppColor.loginTextFieldHintColor,
fontSize: 16),
border: InputBorder.none)))
.build()),
Expanded(child: TextFieldBuilder(
onTextChange: controller.onTextSearchChange,
textInputAction: TextInputAction.search,
controller: controller.textInputSearchController,
focusNode: controller.textInputSearchFocus,
textDirection: DirectionUtils.getDirectionByLanguage(context),
textStyle: const TextStyle(color: Colors.black, fontSize: 16),
keyboardType: TextInputType.text,
onTextSubmitted: (text) => controller.onTextSearchSubmitted(context, text),
decoration: InputDecoration(
contentPadding: const EdgeInsets.all(12),
hintText: AppLocalizations.of(context).search_emails,
hintStyle: const TextStyle(color: AppColor.loginTextFieldHintColor, fontSize: 16),
border: InputBorder.none),
)),
Obx(() {
if (controller.currentSearchText.isNotEmpty) {
return
@@ -207,6 +207,13 @@ class SearchMailboxController extends BaseMailboxController with MailboxActionHa
_deBouncerTime.value = text;
}
void onTextSearchSubmitted(BuildContext context, String text) {
final query = text.trim();
if (query.isNotEmpty) {
submitSearchAction(context, query);
}
}
void setTextInputSearchForm(String value) {
textInputSearchController.text = value;
}
@@ -3,6 +3,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:core/utils/direction_utils.dart';
import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:focused_menu_custom/modals.dart';
@@ -138,33 +139,28 @@ class SearchMailboxView extends GetWidget<SearchMailboxController>
}
Widget _buildTextFieldSearchInput(BuildContext context) {
return (TextFieldBuilder()
..onChange(controller.onTextSearchChange)
..textInputAction(TextInputAction.search)
..autoFocus(true)
..addController(controller.textInputSearchController)
..textStyle(const TextStyle(
color: Colors.black,
return TextFieldBuilder(
onTextChange: controller.onTextSearchChange,
textInputAction: TextInputAction.search,
autoFocus: true,
controller: controller.textInputSearchController,
textDirection: DirectionUtils.getDirectionByLanguage(context),
textStyle: const TextStyle(
color: Colors.black,
fontSize: 15,
fontWeight: FontWeight.normal),
keyboardType: TextInputType.text,
onTextSubmitted: (text) => controller.onTextSearchSubmitted(context, text),
decoration: InputDecoration(
contentPadding: EdgeInsets.zero,
hintText: AppLocalizations.of(context).searchForMailboxes,
hintStyle: const TextStyle(
color: AppColor.loginTextFieldHintColor,
fontSize: 15,
fontWeight: FontWeight.normal))
..keyboardType(TextInputType.text)
..onSubmitted((value) {
final query = value.trim();
if (query.isNotEmpty) {
controller.submitSearchAction(context, query);
}
})
..maxLines(1)
..textDecoration(InputDecoration(
contentPadding: EdgeInsets.zero,
hintText: AppLocalizations.of(context).searchForMailboxes,
hintStyle: const TextStyle(
color: AppColor.loginTextFieldHintColor,
fontSize: 15,
fontWeight: FontWeight.normal),
border: InputBorder.none
)
)).build();
fontWeight: FontWeight.normal),
border: InputBorder.none
),
);
}
Widget _buildMailboxListView(BuildContext context) {