diff --git a/core/lib/utils/direction_utils.dart b/core/lib/utils/direction_utils.dart index 56d11ff80..058ea8c57 100644 --- a/core/lib/utils/direction_utils.dart +++ b/core/lib/utils/direction_utils.dart @@ -8,6 +8,8 @@ abstract class DirectionUtils { static bool isDirectionRTLByEndsText(String text) => intl.Bidi.endsWithRtl(text); + static bool isDirectionRTLByHasAnyRtl(String text) => intl.Bidi.hasAnyRtl(text); + static TextDirection getDirectionByLanguage(BuildContext context) => isDirectionRTLByLanguage(context) ? TextDirection.rtl : TextDirection.ltr; static TextDirection getDirectionByEndsText(String text) => isDirectionRTLByEndsText(text) ? TextDirection.rtl : TextDirection.ltr; diff --git a/lib/features/composer/presentation/widgets/email_address_input_builder.dart b/lib/features/composer/presentation/widgets/email_address_input_builder.dart index 98d0d571a..0ee384d1f 100644 --- a/lib/features/composer/presentation/widgets/email_address_input_builder.dart +++ b/lib/features/composer/presentation/widgets/email_address_input_builder.dart @@ -3,7 +3,7 @@ import 'dart:async'; import 'package:collection/collection.dart'; import 'package:core/core.dart'; -import 'package:flutter/foundation.dart'; +import 'package:core/utils/direction_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_svg/flutter_svg.dart'; @@ -211,19 +211,30 @@ class EmailAddressInputBuilder { tagBuilder: (context, index) { final isLastEmail = index == listEmailAddress.length - 1; return Stack( - alignment: Alignment.centerRight, + alignment: AlignmentDirectional.centerEnd, children: [ Padding( - padding: EdgeInsets.only( - top: kIsWeb ? 8 : 0, - right: _isCollapse ? 50 : 0), + padding: EdgeInsetsDirectional.only( + top: PlatformInfo.isWeb ? 8 : 0, + end: _isCollapse ? 50 : 0), child: InkWell( onTap: () => _isCollapse ? _onShowFullListEmailAddressAction?.call(_prefixEmailAddress) : null, child: Chip( - labelPadding: const EdgeInsets.only(left: 12, right: 12, bottom: 2), - label: Text(newListEmailAddress[index].asString(), maxLines: 1, overflow: kIsWeb ? null : TextOverflow.ellipsis), + padding: DirectionUtils.isDirectionRTLByLanguage(context) + ? EdgeInsets.zero + : null, + labelPadding: EdgeInsetsDirectional.symmetric( + horizontal: 12, + vertical: DirectionUtils.isDirectionRTLByHasAnyRtl(newListEmailAddress[index].asString()) ? 0 : 2 + ), + label: Text( + newListEmailAddress[index].asString(), + maxLines: 1, + overflow: CommonTextStyle.defaultTextOverFlow, + softWrap: CommonTextStyle.defaultSoftWrap, + ), deleteIcon: SvgPicture.asset(_imagePaths.icClose, fit: BoxFit.fill), labelStyle: const TextStyle(color: Colors.black, fontSize: 17, fontWeight: FontWeight.normal), backgroundColor: _getTagBackgroundColor(listEmailAddress[index], isLastEmail), @@ -309,12 +320,16 @@ class EmailAddressInputBuilder { Widget _buildCounter(BuildContext context, int count) { return Padding( - padding: const EdgeInsets.only(left: 8, top: kIsWeb ? 8 : 0), + padding: const EdgeInsetsDirectional.only(start: 8, top: PlatformInfo.isWeb ? 8 : 0), child: InkWell( onTap: () => _onShowFullListEmailAddressAction?.call(_prefixEmailAddress), child: Chip( labelPadding: const EdgeInsets.symmetric(horizontal: 8), - label: Text('+$count', maxLines: 1, overflow: kIsWeb ? null : TextOverflow.ellipsis), + label: Text( + '+$count', + maxLines: 1, + overflow: CommonTextStyle.defaultTextOverFlow, + softWrap: CommonTextStyle.defaultSoftWrap), labelStyle: const TextStyle(color: Colors.black, fontSize: 17, fontWeight: FontWeight.normal), backgroundColor: AppColor.colorEmailAddressTag, shape: RoundedRectangleBorder( diff --git a/lib/features/mailbox/presentation/mailbox_view.dart b/lib/features/mailbox/presentation/mailbox_view.dart index 3bf532c8e..0c9b81c6c 100644 --- a/lib/features/mailbox/presentation/mailbox_view.dart +++ b/lib/features/mailbox/presentation/mailbox_view.dart @@ -195,13 +195,17 @@ class MailboxView extends BaseMailboxView { end: 16), padding: const EdgeInsetsDirectional.only(start: 8), child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(AppLocalizations.of(context).mailBoxes, - style: const TextStyle( - fontSize: 20, - color: Colors.black, - fontWeight: FontWeight.bold)), + Expanded( + child: Text( + AppLocalizations.of(context).mailBoxes, + style: const TextStyle( + fontSize: 20, + color: Colors.black, + fontWeight: FontWeight.bold + ) + ), + ), Row(children: [ buildIconWeb( minSize: 40, diff --git a/lib/features/mailbox/presentation/mailbox_view_web.dart b/lib/features/mailbox/presentation/mailbox_view_web.dart index fa02739d1..0541f7396 100644 --- a/lib/features/mailbox/presentation/mailbox_view_web.dart +++ b/lib/features/mailbox/presentation/mailbox_view_web.dart @@ -115,11 +115,14 @@ class MailboxView extends BaseMailboxView { child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - Text(AppLocalizations.of(context).mailBoxes, - style: const TextStyle( - fontSize: 17, - color: Colors.black, - fontWeight: FontWeight.bold)), + Expanded(child: Text( + AppLocalizations.of(context).mailBoxes, + style: const TextStyle( + fontSize: 17, + color: Colors.black, + fontWeight: FontWeight.bold + ) + )), Padding( padding: EdgeInsetsDirectional.only(end: responsiveUtils.isDesktop(context) ? 0 : 12), child: Row(