TF-1581 Update UI to support language RTL

This commit is contained in:
dab246
2023-03-10 13:05:00 +07:00
committed by Dat Vu
parent 42bde0e415
commit 9af4924b9a
44 changed files with 821 additions and 392 deletions
@@ -426,7 +426,6 @@ class DestinationPickerController extends BaseMailboxController {
}
if (BuildUtils.isWeb) {
_disposeWidget();
onSelectedMailboxCallback?.call(mailboxDestination.value);
} else {
popBack(result: mailboxDestination.value);
@@ -475,7 +474,6 @@ class DestinationPickerController extends BaseMailboxController {
FocusScope.of(context).unfocus();
if (BuildUtils.isWeb) {
_disposeWidget();
onDismissDestinationPicker?.call();
} else {
popBack();
@@ -31,6 +31,7 @@ import 'package:tmail_ui_user/features/mailbox/presentation/widgets/mailbox_fold
import 'package:tmail_ui_user/features/mailbox_creator/presentation/widgets/create_mailbox_name_input_decoration_builder.dart';
import 'package:tmail_ui_user/features/thread/presentation/widgets/search_app_bar_widget.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
class DestinationPickerView extends GetWidget<DestinationPickerController>
with AppLoaderMixin,
@@ -368,8 +369,12 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
return TreeViewChild(
context,
key: const Key('children_tree_mailbox_child'),
isDirectionRTL: AppUtils.isDirectionRTL(context),
isExpanded: mailboxNode.expandMode == ExpandMode.EXPAND,
paddingChild: const EdgeInsets.only(left: 14),
paddingChild: EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 0 : 14,
right: AppUtils.isDirectionRTL(context) ? 14 : 0,
),
parent: (MailBoxFolderTileBuilder(
context,
_imagePaths,
@@ -481,7 +486,10 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
if (actions == MailboxActions.select && (mailboxIdSelected == null ||
mailboxIdSelected == PresentationMailbox.unifiedMailbox.id))
Padding(
padding: const EdgeInsets.only(right: 30.0),
padding: EdgeInsets.only(
right: AppUtils.isDirectionRTL(context) ? 0 : 30.0,
left: AppUtils.isDirectionRTL(context) ? 30 : 0.0,
),
child: SvgPicture.asset(
_imagePaths.icFilterSelected,
width: 20,
@@ -535,7 +543,12 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
padding: const EdgeInsets.symmetric(vertical: 16),
child: Row(
children: [
Padding(padding: const EdgeInsets.only(left: 5), child: buildIconWeb(
Padding(
padding: EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 0 : 5,
right: AppUtils.isDirectionRTL(context) ? 5 : 0,
),
child: buildIconWeb(
icon: SvgPicture.asset(
_imagePaths.icBack,
colorFilter: AppColor.colorTextButton.asFilter(),
@@ -549,7 +562,10 @@ class DestinationPickerView extends GetWidget<DestinationPickerController>
hasBackButton: false,
hasSearchButton: true)
..addPadding(EdgeInsets.zero)
..setMargin(const EdgeInsets.only(right: 16))
..setMargin(EdgeInsets.only(
right: AppUtils.isDirectionRTL(context) ? 0 : 16,
left: AppUtils.isDirectionRTL(context) ? 16 : 0,
))
..addDecoration(BoxDecoration(borderRadius: BorderRadius.circular(12), color: AppColor.colorBgSearchBar))
..addIconClearText(SvgPicture.asset(_imagePaths.icClearTextSearch, width: 18, height: 18, fit: BoxFit.fill))
..setHintText(AppLocalizations.of(context).hint_search_mailboxes)
@@ -11,6 +11,7 @@ import 'package:tmail_ui_user/features/mailbox/domain/extensions/presentation_ma
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/utils/mailbox_method_action_define.dart';
import 'package:tmail_ui_user/features/search/mailbox/presentation/utils/search_mailbox_utils.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
class DestinationPickerSearchMailboxItemBuilder extends StatelessWidget {
@@ -64,7 +65,7 @@ class DestinationPickerSearchMailboxItemBuilder extends StatelessWidget {
]
)
)),
_buildSelectedIcon()
_buildSelectedIcon(context)
]
),
)
@@ -132,12 +133,15 @@ class DestinationPickerSearchMailboxItemBuilder extends StatelessWidget {
}
}
Widget _buildSelectedIcon() {
Widget _buildSelectedIcon(BuildContext context) {
if (_presentationMailbox.id == mailboxIdAlreadySelected &&
(mailboxActions == MailboxActions.select ||
mailboxActions == MailboxActions.create)) {
return Padding(
padding: const EdgeInsets.only(right: 8),
padding: EdgeInsets.only(
right: AppUtils.isDirectionRTL(context) ? 0 : 8,
left: AppUtils.isDirectionRTL(context) ? 8 : 0,
),
child: SvgPicture.asset(
_imagePaths.icFilterSelected,
width: 20,
@@ -7,6 +7,7 @@ import 'package:jmap_dart_client/jmap/mail/mailbox/mailbox.dart';
import 'package:tmail_ui_user/features/destination_picker/presentation/model/destination_screen_type.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/model/mailbox_actions.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
typedef OnCreateNewMailboxAction = Function();
typedef OnOpenCreateNewMailboxScreenAction = Function();
@@ -61,7 +62,10 @@ class TopBarDestinationPickerBuilder extends StatelessWidget {
fontWeight: FontWeight.w700))),
if (_destinationScreenType == DestinationScreenType.destinationPicker)
Padding(
padding: const EdgeInsets.only(left: 8.0),
padding: EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 0 : 8,
right: AppUtils.isDirectionRTL(context) ? 8 : 0,
),
child: Align(
alignment: Alignment.centerLeft,
child: buildIconWeb(
@@ -76,7 +80,10 @@ class TopBarDestinationPickerBuilder extends StatelessWidget {
)
else
Padding(
padding: const EdgeInsets.only(left: 8.0),
padding: EdgeInsets.only(
left: AppUtils.isDirectionRTL(context) ? 0 : 8,
right: AppUtils.isDirectionRTL(context) ? 8 : 0,
),
child: Align(
alignment: Alignment.centerLeft,
child: Material(