TF-1960 Fix alignment arrow button in RTL mode

(cherry picked from commit c3101d1710874d295eac6821853bc72095022446)
This commit is contained in:
dab246
2023-07-07 13:55:32 +07:00
committed by Dat Vu
parent fb5f96f316
commit 0824e25910
4 changed files with 37 additions and 38 deletions
@@ -36,7 +36,7 @@ class ButtonBuilder {
_context = context; _context = context;
} }
void size(double size) { void size(double? size) {
_size = size; _size = size;
} }
@@ -8,6 +8,7 @@ import 'package:core/presentation/views/html_viewer/html_content_viewer_on_web_w
import 'package:core/presentation/views/html_viewer/html_content_viewer_widget.dart'; import 'package:core/presentation/views/html_viewer/html_content_viewer_widget.dart';
import 'package:core/presentation/views/html_viewer/html_viewer_controller_for_web.dart'; import 'package:core/presentation/views/html_viewer/html_viewer_controller_for_web.dart';
import 'package:core/utils/app_logger.dart'; import 'package:core/utils/app_logger.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:core/utils/platform_info.dart'; import 'package:core/utils/platform_info.dart';
import 'package:filesize/filesize.dart'; import 'package:filesize/filesize.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
@@ -195,7 +196,7 @@ class EmailView extends GetWidget<SingleEmailController> {
return [ return [
buildIconWeb( buildIconWeb(
icon: SvgPicture.asset( icon: SvgPicture.asset(
imagePaths.icNewer, DirectionUtils.isDirectionRTLByLanguage(context) ? imagePaths.icOlder : imagePaths.icNewer,
colorFilter: controller.emailSupervisorController.nextEmailActivated colorFilter: controller.emailSupervisorController.nextEmailActivated
? AppColor.primaryColor.asFilter() ? AppColor.primaryColor.asFilter()
: AppColor.colorAttachmentIcon.asFilter(), : AppColor.colorAttachmentIcon.asFilter(),
@@ -206,7 +207,7 @@ class EmailView extends GetWidget<SingleEmailController> {
onTap: controller.emailSupervisorController.moveToNextEmail), onTap: controller.emailSupervisorController.moveToNextEmail),
buildIconWeb( buildIconWeb(
icon: SvgPicture.asset( icon: SvgPicture.asset(
imagePaths.icOlder, DirectionUtils.isDirectionRTLByLanguage(context) ? imagePaths.icNewer : imagePaths.icOlder,
width: IconUtils.defaultIconSize, width: IconUtils.defaultIconSize,
height: IconUtils.defaultIconSize, height: IconUtils.defaultIconSize,
colorFilter: controller.emailSupervisorController.previousEmailActivated colorFilter: controller.emailSupervisorController.previousEmailActivated
@@ -1,12 +1,12 @@
import 'package:core/core.dart'; import 'package:core/core.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:model/model.dart'; import 'package:model/model.dart';
import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart'; import 'package:tmail_ui_user/features/mailbox/presentation/extensions/presentation_mailbox_extension.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/utils/app_utils.dart';
typedef OnBackActionClick = void Function(); typedef OnBackActionClick = void Function();
typedef OnEmailActionClick = void Function(PresentationEmail, EmailActionType); typedef OnEmailActionClick = void Function(PresentationEmail, EmailActionType);
@@ -58,20 +58,23 @@ class AppBarMailWidgetBuilder extends StatelessWidget {
child: Container( child: Container(
color: Colors.transparent, color: Colors.transparent,
height: 32, height: 32,
padding: const EdgeInsets.symmetric(horizontal: 8), padding: DirectionUtils.isDirectionRTLByLanguage(context)
? const EdgeInsetsDirectional.only(end: 10)
: const EdgeInsets.symmetric(horizontal: 8),
child: Row(mainAxisSize: MainAxisSize.min, children: [ child: Row(mainAxisSize: MainAxisSize.min, children: [
SvgPicture.asset( SvgPicture.asset(
_imagePaths.icBack, DirectionUtils.isDirectionRTLByLanguage(context)
width: 14, ? _imagePaths.icArrowRight
height: 14, : _imagePaths.icBack,
colorFilter: AppColor.colorTextButton.asFilter(), width: DirectionUtils.isDirectionRTLByLanguage(context) ? null : 16,
fit: BoxFit.fill), height: DirectionUtils.isDirectionRTLByLanguage(context) ? null : 16,
colorFilter: AppColor.colorTextButton.asFilter(),
fit: BoxFit.fill),
if (!isSearchIsRunning) if (!isSearchIsRunning)
Container( Container(
margin: EdgeInsets.only( margin: DirectionUtils.isDirectionRTLByLanguage(context)
left: AppUtils.isDirectionRTL(context) ? 0 : 8, ? null
right: AppUtils.isDirectionRTL(context) ? 8 : 0, : const EdgeInsetsDirectional.only(start: 8),
),
constraints: BoxConstraints( constraints: BoxConstraints(
maxWidth: _responsiveUtils.getSizeScreenWidth(context) - 250), maxWidth: _responsiveUtils.getSizeScreenWidth(context) - 250),
child: Text( child: Text(
@@ -1,5 +1,6 @@
import 'package:core/core.dart'; import 'package:core/core.dart';
import 'package:core/utils/direction_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart'; import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@@ -58,12 +59,8 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
color: _responsiveUtils.isWebDesktop(context) ? AppColor.colorBgDesktop : Colors.white, color: _responsiveUtils.isWebDesktop(context) ? AppColor.colorBgDesktop : Colors.white,
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
Padding( Padding(
padding: EdgeInsets.only( padding: const EdgeInsetsDirectional.only(start: 20, top: 24),
left: AppUtils.isDirectionRTL(context) ? 0 : 20, child: (ButtonBuilder(DirectionUtils.isDirectionRTLByLanguage(context) ? _imagePaths.icArrowRight : _imagePaths.icBack)
right: AppUtils.isDirectionRTL(context) ? 20 : 0,
top: 24
),
child: (ButtonBuilder(_imagePaths.icBack)
..key(const Key('button_back')) ..key(const Key('button_back'))
..decoration(BoxDecoration(borderRadius: BorderRadius.circular(10), color: AppColor.colorBgMailboxSelected)) ..decoration(BoxDecoration(borderRadius: BorderRadius.circular(10), color: AppColor.colorBgMailboxSelected))
..paddingIcon(EdgeInsets.only( ..paddingIcon(EdgeInsets.only(
@@ -72,31 +69,32 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
)) ))
..iconColor(AppColor.colorTextButton) ..iconColor(AppColor.colorTextButton)
..maxWidth(100) ..maxWidth(100)
..size(16) ..size(DirectionUtils.isDirectionRTLByLanguage(context) ? null : 16)
..radiusSplash(10) ..radiusSplash(10)
..padding(const EdgeInsets.symmetric(vertical: 10)) ..padding(DirectionUtils.isDirectionRTLByLanguage(context)
? const EdgeInsets.symmetric(vertical: 5)
: const EdgeInsets.symmetric(vertical: 10))
..textStyle(const TextStyle(fontSize: 15, color: AppColor.colorTextButton, fontWeight: FontWeight.normal)) ..textStyle(const TextStyle(fontSize: 15, color: AppColor.colorTextButton, fontWeight: FontWeight.normal))
..onPressActionClick(() => controller.backToMailboxDashBoard(context)) ..onPressActionClick(() => controller.backToMailboxDashBoard(context))
..text(AppLocalizations.of(context).back, isVertical: false)) ..text(AppLocalizations.of(context).back, isVertical: false))
.build()), .build()),
Padding( Padding(
padding: EdgeInsets.only( padding: const EdgeInsetsDirectional.only(start: 32, top: 20),
left: AppUtils.isDirectionRTL(context) ? 0 : 32, child: Text(
right: AppUtils.isDirectionRTL(context) ? 32 : 0, AppLocalizations.of(context).manage_account,
top: 20 style: const TextStyle(
), color: Colors.black,
child: Text( fontWeight: FontWeight.bold,
AppLocalizations.of(context).manage_account, fontSize: 17
style: const TextStyle(color: Colors.black, fontWeight: FontWeight.bold, fontSize: 17))), )
)
),
const SizedBox(height: 12), const SizedBox(height: 12),
Obx(() { Obx(() {
if (controller.listAccountMenuItem.isNotEmpty) { if (controller.listAccountMenuItem.isNotEmpty) {
return ListView.builder( return ListView.builder(
key: const Key('list_manage_account_menu_item'), key: const Key('list_manage_account_menu_item'),
padding: EdgeInsets.only( padding: const EdgeInsetsDirectional.only(start: 16, end: 8),
left: AppUtils.isDirectionRTL(context) ? 8 : 16,
right: AppUtils.isDirectionRTL(context) ? 16 : 8
),
shrinkWrap: true, shrinkWrap: true,
itemCount: controller.listAccountMenuItem.length, itemCount: controller.listAccountMenuItem.length,
itemBuilder: (context, index) => Obx(() { itemBuilder: (context, index) => Obx(() {
@@ -116,10 +114,7 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
padding: EdgeInsets.symmetric(vertical: 16), padding: EdgeInsets.symmetric(vertical: 16),
child: Divider(color: AppColor.lineItemListColor, height: 0.5, thickness: 0.2)), child: Divider(color: AppColor.lineItemListColor, height: 0.5, thickness: 0.2)),
Padding( Padding(
padding: EdgeInsets.only( padding: const EdgeInsetsDirectional.only(start: 32),
left: AppUtils.isDirectionRTL(context) ? 0 : 32,
right: AppUtils.isDirectionRTL(context) ? 32 : 0,
),
child: InkWell( child: InkWell(
onTap: () { onTap: () {
controller.dashBoardController.logout( controller.dashBoardController.logout(