TF-1933 Fix text overflow with ellipsis is weird and ugly by design
(cherry picked from commit a4dd353672eca725abd66bee94347dc339b1102f)
This commit is contained in:
@@ -49,6 +49,7 @@ export 'presentation/views/text/text_field_builder.dart';
|
|||||||
export 'presentation/views/text/text_form_field_builder.dart';
|
export 'presentation/views/text/text_form_field_builder.dart';
|
||||||
export 'presentation/views/text/input_decoration_builder.dart';
|
export 'presentation/views/text/input_decoration_builder.dart';
|
||||||
export 'presentation/views/text/rich_text_builder.dart';
|
export 'presentation/views/text/rich_text_builder.dart';
|
||||||
|
export 'presentation/views/text/text_overflow_builder.dart';
|
||||||
export 'presentation/views/responsive/responsive_widget.dart';
|
export 'presentation/views/responsive/responsive_widget.dart';
|
||||||
export 'presentation/views/list/tree_view.dart';
|
export 'presentation/views/list/tree_view.dart';
|
||||||
export 'presentation/views/button/button_builder.dart';
|
export 'presentation/views/button/button_builder.dart';
|
||||||
|
|||||||
@@ -40,8 +40,9 @@ extension StringExtension on String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String get withUnicodeCharacter {
|
String get overflow {
|
||||||
return characters
|
return characters
|
||||||
|
.replaceAll(Characters(''), Characters('\u{200B}'))
|
||||||
.replaceAll(Characters('-'), Characters('\u{2011}'))
|
.replaceAll(Characters('-'), Characters('\u{2011}'))
|
||||||
.toString();
|
.toString();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
import 'package:core/presentation/extensions/string_extension.dart';
|
||||||
|
import 'package:core/presentation/utils/style_utils.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class TextOverflowBuilder extends StatelessWidget {
|
||||||
|
|
||||||
|
final String data;
|
||||||
|
final TextStyle? style;
|
||||||
|
final TextAlign? textAlign;
|
||||||
|
final bool? softWrap;
|
||||||
|
final int? maxLines;
|
||||||
|
final TextDirection? textDirection;
|
||||||
|
final TextOverflow? overflow;
|
||||||
|
|
||||||
|
const TextOverflowBuilder(this.data, {
|
||||||
|
super.key,
|
||||||
|
this.style,
|
||||||
|
this.textAlign,
|
||||||
|
this.softWrap = CommonTextStyle.defaultSoftWrap,
|
||||||
|
this.maxLines = 1,
|
||||||
|
this.textDirection,
|
||||||
|
this.overflow = CommonTextStyle.defaultTextOverFlow,
|
||||||
|
});
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Text(
|
||||||
|
data.overflow,
|
||||||
|
style: style,
|
||||||
|
textAlign: textAlign,
|
||||||
|
softWrap: softWrap,
|
||||||
|
maxLines: maxLines,
|
||||||
|
textDirection: textDirection,
|
||||||
|
overflow: overflow,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
import 'package:core/presentation/extensions/capitalize_extension.dart';
|
import 'package:core/presentation/extensions/capitalize_extension.dart';
|
||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/extensions/string_extension.dart';
|
|
||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/app_toast.dart';
|
import 'package:core/presentation/utils/app_toast.dart';
|
||||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||||
@@ -8,6 +7,7 @@ import 'package:core/presentation/utils/style_utils.dart';
|
|||||||
import 'package:core/presentation/views/button/icon_button_web.dart';
|
import 'package:core/presentation/views/button/icon_button_web.dart';
|
||||||
import 'package:core/presentation/views/list/sliver_grid_delegate_fixed_height.dart';
|
import 'package:core/presentation/views/list/sliver_grid_delegate_fixed_height.dart';
|
||||||
import 'package:core/presentation/views/text/text_field_builder.dart';
|
import 'package:core/presentation/views/text/text_field_builder.dart';
|
||||||
|
import 'package:core/presentation/views/text/text_overflow_builder.dart';
|
||||||
import 'package:core/utils/direction_utils.dart';
|
import 'package:core/utils/direction_utils.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.dart';
|
||||||
import 'package:dropdown_button2/dropdown_button2.dart';
|
import 'package:dropdown_button2/dropdown_button2.dart';
|
||||||
@@ -85,13 +85,10 @@ abstract class BaseComposerView extends GetWidget<ComposerController>
|
|||||||
)
|
)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(child: Text(
|
Expanded(child: TextOverflowBuilder(
|
||||||
controller.identitySelected.value != null
|
controller.identitySelected.value != null
|
||||||
? (controller.identitySelected.value?.email ?? '').withUnicodeCharacter
|
? (controller.identitySelected.value?.email ?? '')
|
||||||
: (controller.userProfile?.email ?? '').withUnicodeCharacter,
|
: (controller.userProfile?.email ?? ''),
|
||||||
maxLines: 1,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 17,
|
fontSize: 17,
|
||||||
fontWeight: FontWeight.normal,
|
fontWeight: FontWeight.normal,
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/extensions/string_extension.dart';
|
|
||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||||
import 'package:core/presentation/utils/style_utils.dart';
|
import 'package:core/presentation/utils/style_utils.dart';
|
||||||
import 'package:core/presentation/views/button/icon_button_web.dart';
|
import 'package:core/presentation/views/button/icon_button_web.dart';
|
||||||
|
import 'package:core/presentation/views/text/text_overflow_builder.dart';
|
||||||
import 'package:core/utils/direction_utils.dart';
|
import 'package:core/utils/direction_utils.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -293,15 +293,12 @@ class MailBoxFolderTileBuilder {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: TextOverflowBuilder(
|
||||||
(_mailboxNode.item.name?.name ?? '').withUnicodeCharacter,
|
(_mailboxNode.item.name?.name ?? ''),
|
||||||
maxLines: 1,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: _mailboxNode.item.isTeamMailboxes ? 16 : 15,
|
fontSize: _mailboxNode.item.isTeamMailboxes ? 16 : 15,
|
||||||
color: _mailboxNode.item.isTeamMailboxes ? Colors.black : AppColor.colorNameEmail,
|
color: _mailboxNode.item.isTeamMailboxes ? Colors.black : AppColor.colorNameEmail,
|
||||||
fontWeight: _mailboxNode.item.isTeamMailboxes ? FontWeight.bold : FontWeight.normal),
|
fontWeight: _mailboxNode.item.isTeamMailboxes ? FontWeight.bold : FontWeight.normal),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (showTrailingItem)
|
if (showTrailingItem)
|
||||||
@@ -309,15 +306,12 @@ class MailBoxFolderTileBuilder {
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
if(_mailboxNode.item.isTeamMailboxes)
|
if(_mailboxNode.item.isTeamMailboxes)
|
||||||
Text(
|
TextOverflowBuilder(
|
||||||
(_mailboxNode.item.emailTeamMailBoxes ?? '').withUnicodeCharacter,
|
(_mailboxNode.item.emailTeamMailBoxes ?? ''),
|
||||||
maxLines: 1,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
color: AppColor.colorEmailAddressFull,
|
color: AppColor.colorEmailAddressFull,
|
||||||
fontWeight: FontWeight.w400),
|
fontWeight: FontWeight.w400),
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||||
import 'package:core/presentation/utils/style_utils.dart';
|
import 'package:core/presentation/views/text/text_overflow_builder.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.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:tmail_ui_user/features/sending_queue/domain/model/sending_email.dart';
|
import 'package:tmail_ui_user/features/sending_queue/domain/model/sending_email.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';
|
|
||||||
|
|
||||||
class SendingQueueMailboxWidget extends StatelessWidget {
|
class SendingQueueMailboxWidget extends StatelessWidget {
|
||||||
|
|
||||||
@@ -59,11 +58,8 @@ class SendingQueueMailboxWidget extends StatelessWidget {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.end,
|
crossAxisAlignment: CrossAxisAlignment.end,
|
||||||
children: [
|
children: [
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(
|
child: TextOverflowBuilder(
|
||||||
AppLocalizations.of(context).sendingQueue,
|
AppLocalizations.of(context).sendingQueue,
|
||||||
maxLines: 1,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 15,
|
fontSize: 15,
|
||||||
color: AppColor.colorNameEmail,
|
color: AppColor.colorNameEmail,
|
||||||
@@ -71,14 +67,9 @@ class SendingQueueMailboxWidget extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(
|
padding: const EdgeInsetsDirectional.only(start: 12),
|
||||||
right: AppUtils.isDirectionRTL(context) ? 0 : 12,
|
child: TextOverflowBuilder(
|
||||||
left: AppUtils.isDirectionRTL(context) ? 12 : 0,
|
|
||||||
),
|
|
||||||
child: Text(
|
|
||||||
_getCountSendingEmails(),
|
_getCountSendingEmails(),
|
||||||
maxLines: 1,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
color: Colors.black,
|
color: Colors.black,
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
|
|
||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/extensions/string_extension.dart';
|
|
||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/style_utils.dart';
|
|
||||||
import 'package:core/presentation/views/image/avatar_builder.dart';
|
import 'package:core/presentation/views/image/avatar_builder.dart';
|
||||||
|
import 'package:core/presentation/views/text/text_overflow_builder.dart';
|
||||||
import 'package:core/utils/direction_utils.dart';
|
import 'package:core/utils/direction_utils.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@@ -52,11 +51,8 @@ class UserInformationWidgetBuilder extends StatelessWidget {
|
|||||||
Expanded(child: Column(
|
Expanded(child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
TextOverflowBuilder(
|
||||||
_userProfile != null ? '${_userProfile?.email}'.withUnicodeCharacter : '',
|
_userProfile != null ? '${_userProfile?.email}' : '',
|
||||||
maxLines: 1,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 17,
|
fontSize: 17,
|
||||||
color: AppColor.colorNameEmail,
|
color: AppColor.colorNameEmail,
|
||||||
@@ -65,12 +61,15 @@ class UserInformationWidgetBuilder extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
if (subtitle != null)
|
if (subtitle != null)
|
||||||
MaterialTextButton(
|
Transform(
|
||||||
label: AppLocalizations.of(context).manage_account,
|
transform: Matrix4.translationValues(-8.0, 0.0, 0.0),
|
||||||
onTap: onSubtitleClick,
|
child: MaterialTextButton(
|
||||||
borderRadius: 20,
|
label: AppLocalizations.of(context).manage_account,
|
||||||
padding: const EdgeInsetsDirectional.symmetric(horizontal: 8, vertical: 8),
|
onTap: onSubtitleClick,
|
||||||
customStyle: const TextStyle(fontSize: 14, color: AppColor.colorTextButton),
|
borderRadius: 20,
|
||||||
|
padding: const EdgeInsetsDirectional.symmetric(horizontal: 8, vertical: 8),
|
||||||
|
customStyle: const TextStyle(fontSize: 14, color: AppColor.colorTextButton),
|
||||||
|
),
|
||||||
)
|
)
|
||||||
])),
|
])),
|
||||||
if (PlatformInfo.isMobile)
|
if (PlatformInfo.isMobile)
|
||||||
|
|||||||
+7
-14
@@ -1,8 +1,7 @@
|
|||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/extensions/string_extension.dart';
|
|
||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/style_utils.dart';
|
|
||||||
import 'package:core/presentation/views/button/icon_button_web.dart';
|
import 'package:core/presentation/views/button/icon_button_web.dart';
|
||||||
|
import 'package:core/presentation/views/text/text_overflow_builder.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:jmap_dart_client/jmap/identities/identity.dart';
|
import 'package:jmap_dart_client/jmap/identities/identity.dart';
|
||||||
@@ -65,10 +64,8 @@ class IdentityListTileBuilder extends StatelessWidget {
|
|||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsets.only(bottom: 6),
|
padding: const EdgeInsets.only(bottom: 6),
|
||||||
child: Text(
|
child: TextOverflowBuilder(
|
||||||
(identity.name ?? '').withUnicodeCharacter,
|
(identity.name ?? ''),
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
@@ -122,15 +119,13 @@ class IdentityListTileBuilder extends StatelessWidget {
|
|||||||
alignment: Alignment.centerLeft,
|
alignment: Alignment.centerLeft,
|
||||||
child: SvgPicture.asset(imagePath, width: 15, height: 15))),
|
child: SvgPicture.asset(imagePath, width: 15, height: 15))),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Expanded(child: Text(
|
Expanded(child: TextOverflowBuilder(
|
||||||
(text ?? '').withUnicodeCharacter,
|
(text ?? ''),
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
color: AppColor.colorEmailAddressFull,
|
color: AppColor.colorEmailAddressFull,
|
||||||
fontWeight: FontWeight.normal,
|
fontWeight: FontWeight.normal,
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
),
|
),
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap
|
|
||||||
))
|
))
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
@@ -151,15 +146,13 @@ class IdentityListTileBuilder extends StatelessWidget {
|
|||||||
decoration: TextDecoration.underline,
|
decoration: TextDecoration.underline,
|
||||||
color: AppColor.colorTextButton))),
|
color: AppColor.colorTextButton))),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Expanded(child: Text(
|
Expanded(child: TextOverflowBuilder(
|
||||||
(text ?? '').withUnicodeCharacter,
|
(text ?? ''),
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
color: AppColor.colorEmailAddressFull,
|
color: AppColor.colorEmailAddressFull,
|
||||||
fontWeight: FontWeight.normal,
|
fontWeight: FontWeight.normal,
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
),
|
),
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap
|
|
||||||
))
|
))
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
|
|||||||
+7
-17
@@ -1,9 +1,8 @@
|
|||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/extensions/string_extension.dart';
|
|
||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||||
import 'package:core/presentation/utils/style_utils.dart';
|
|
||||||
import 'package:core/presentation/views/responsive/responsive_widget.dart';
|
import 'package:core/presentation/views/responsive/responsive_widget.dart';
|
||||||
|
import 'package:core/presentation/views/text/text_overflow_builder.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.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';
|
||||||
@@ -204,11 +203,8 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildTitleItem() {
|
Widget _buildTitleItem() {
|
||||||
return Text(
|
return TextOverflowBuilder(
|
||||||
(widget._presentationMailbox.name?.name ?? '').withUnicodeCharacter,
|
(widget._presentationMailbox.name?.name ?? ''),
|
||||||
maxLines: 1,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 15,
|
fontSize: 15,
|
||||||
color: Colors.black
|
color: Colors.black
|
||||||
@@ -218,11 +214,8 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
|
|||||||
|
|
||||||
Widget _buildSubtitleItem() {
|
Widget _buildSubtitleItem() {
|
||||||
if (widget._presentationMailbox.mailboxPath?.isNotEmpty == true) {
|
if (widget._presentationMailbox.mailboxPath?.isNotEmpty == true) {
|
||||||
return Text(
|
return TextOverflowBuilder(
|
||||||
(widget._presentationMailbox.mailboxPath ?? '').withUnicodeCharacter,
|
(widget._presentationMailbox.mailboxPath ?? ''),
|
||||||
maxLines: 1,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 11,
|
fontSize: 11,
|
||||||
color: AppColor.colorMailboxPath,
|
color: AppColor.colorMailboxPath,
|
||||||
@@ -230,11 +223,8 @@ class _MailboxSearchedItemBuilderState extends State<MailboxSearchedItemBuilder>
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
} else if (widget._presentationMailbox.isTeamMailboxes) {
|
} else if (widget._presentationMailbox.isTeamMailboxes) {
|
||||||
return Text(
|
return TextOverflowBuilder(
|
||||||
(widget._presentationMailbox.emailTeamMailBoxes ?? '').withUnicodeCharacter,
|
(widget._presentationMailbox.emailTeamMailBoxes ?? ''),
|
||||||
maxLines: 1,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 11,
|
fontSize: 11,
|
||||||
color: AppColor.colorEmailAddressFull,
|
color: AppColor.colorEmailAddressFull,
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ import 'package:core/presentation/extensions/color_extension.dart';
|
|||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/style_utils.dart';
|
import 'package:core/presentation/utils/style_utils.dart';
|
||||||
import 'package:core/presentation/views/button/icon_button_web.dart';
|
import 'package:core/presentation/views/button/icon_button_web.dart';
|
||||||
import 'package:core/utils/app_logger.dart';
|
|
||||||
import 'package:core/utils/direction_utils.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';
|
||||||
@@ -33,7 +32,6 @@ class AppBarSendingQueueWidget extends StatelessWidget {
|
|||||||
final imagePaths = Get.find<ImagePaths>();
|
final imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
return LayoutBuilder(builder: (context, constraints) {
|
return LayoutBuilder(builder: (context, constraints) {
|
||||||
log('AppBarSendingQueueWidget::build(): MAX_WIDTH: ${constraints.maxWidth}');
|
|
||||||
return Container(
|
return Container(
|
||||||
height: 52,
|
height: 52,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
|
|||||||
-2
@@ -1,7 +1,6 @@
|
|||||||
|
|
||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/utils/app_logger.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:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_utils.dart';
|
import 'package:tmail_ui_user/features/sending_queue/presentation/utils/sending_queue_utils.dart';
|
||||||
@@ -17,7 +16,6 @@ class BannerMessageSendingQueueWidget extends StatelessWidget {
|
|||||||
final imagePath = getBinding<ImagePaths>();
|
final imagePath = getBinding<ImagePaths>();
|
||||||
|
|
||||||
return LayoutBuilder(builder: (context, constraints) {
|
return LayoutBuilder(builder: (context, constraints) {
|
||||||
log('BannerMessageSendingQueueWidget::build(): MAX_WIDTH: ${constraints.maxWidth}');
|
|
||||||
return Container(
|
return Container(
|
||||||
margin: SendingQueueUtils.getMarginBannerMessageByResponsiveSize(constraints.maxWidth),
|
margin: SendingQueueUtils.getMarginBannerMessageByResponsiveSize(constraints.maxWidth),
|
||||||
padding: const EdgeInsets.all(16),
|
padding: const EdgeInsets.all(16),
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
import 'package:core/presentation/extensions/color_extension.dart';
|
import 'package:core/presentation/extensions/color_extension.dart';
|
||||||
import 'package:core/presentation/extensions/string_extension.dart';
|
|
||||||
import 'package:core/presentation/resources/image_paths.dart';
|
import 'package:core/presentation/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||||
import 'package:core/presentation/utils/style_utils.dart';
|
import 'package:core/presentation/utils/style_utils.dart';
|
||||||
import 'package:core/utils/app_logger.dart';
|
import 'package:core/presentation/views/text/text_overflow_builder.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';
|
||||||
@@ -41,7 +40,6 @@ class SendingEmailTileWidget extends StatelessWidget {
|
|||||||
final imagePaths = Get.find<ImagePaths>();
|
final imagePaths = Get.find<ImagePaths>();
|
||||||
|
|
||||||
return LayoutBuilder(builder: (context, constraints) {
|
return LayoutBuilder(builder: (context, constraints) {
|
||||||
log('SendingEmailTileWidget::build(): MAX_WIDTH: ${constraints.maxWidth}');
|
|
||||||
return Material(
|
return Material(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
child: InkWell(
|
child: InkWell(
|
||||||
@@ -90,11 +88,8 @@ class SendingEmailTileWidget extends StatelessWidget {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Row(children: [
|
Row(children: [
|
||||||
Expanded(child: Text(
|
Expanded(child: TextOverflowBuilder(
|
||||||
AppLocalizations.of(context).titleRecipientSendingEmail(sendingEmail.presentationEmail.recipientsName()).withUnicodeCharacter,
|
AppLocalizations.of(context).titleRecipientSendingEmail(sendingEmail.presentationEmail.recipientsName()),
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
maxLines: 1,
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 15,
|
fontSize: 15,
|
||||||
color: sendingEmail.sendingState.getTitleSendingEmailItemColor(),
|
color: sendingEmail.sendingState.getTitleSendingEmailItemColor(),
|
||||||
@@ -142,11 +137,8 @@ class SendingEmailTileWidget extends StatelessWidget {
|
|||||||
)
|
)
|
||||||
]),
|
]),
|
||||||
const SizedBox(height: 8),
|
const SizedBox(height: 8),
|
||||||
Text(
|
TextOverflowBuilder(
|
||||||
sendingEmail.presentationEmail.getEmailTitle().withUnicodeCharacter,
|
sendingEmail.presentationEmail.getEmailTitle(),
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
maxLines: 1,
|
|
||||||
style: TextStyle(
|
style: TextStyle(
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
color: sendingEmail.sendingState.getSubTitleSendingEmailItemColor(),
|
color: sendingEmail.sendingState.getSubTitleSendingEmailItemColor(),
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:core/presentation/resources/image_paths.dart';
|
|||||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||||
import 'package:core/presentation/utils/style_utils.dart';
|
import 'package:core/presentation/utils/style_utils.dart';
|
||||||
import 'package:core/presentation/views/text/rich_text_builder.dart';
|
import 'package:core/presentation/views/text/rich_text_builder.dart';
|
||||||
|
import 'package:core/presentation/views/text/text_overflow_builder.dart';
|
||||||
import 'package:core/utils/platform_info.dart';
|
import 'package:core/utils/platform_info.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';
|
||||||
@@ -39,11 +40,8 @@ mixin BaseEmailItemTile {
|
|||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(10),
|
borderRadius: BorderRadius.circular(10),
|
||||||
color: AppColor.backgroundCounterMailboxColor),
|
color: AppColor.backgroundCounterMailboxColor),
|
||||||
child: Text(
|
child: TextOverflowBuilder(
|
||||||
email.mailboxName.withUnicodeCharacter,
|
email.mailboxName,
|
||||||
maxLines: 1,
|
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
style: const TextStyle(
|
style: const TextStyle(
|
||||||
fontSize: 10,
|
fontSize: 10,
|
||||||
color: AppColor.mailboxTextColor,
|
color: AppColor.mailboxTextColor,
|
||||||
@@ -85,7 +83,7 @@ mixin BaseEmailItemTile {
|
|||||||
) {
|
) {
|
||||||
if (isSearchEnabled(isSearchEmailRunning, query)) {
|
if (isSearchEnabled(isSearchEmailRunning, query)) {
|
||||||
return RichTextBuilder(
|
return RichTextBuilder(
|
||||||
informationSender(email, mailbox).withUnicodeCharacter,
|
informationSender(email, mailbox).overflow,
|
||||||
query?.value ?? '',
|
query?.value ?? '',
|
||||||
TextStyle(
|
TextStyle(
|
||||||
fontSize: 15,
|
fontSize: 15,
|
||||||
@@ -98,16 +96,13 @@ mixin BaseEmailItemTile {
|
|||||||
fontWeight: buildFontForReadEmail(email))
|
fontWeight: buildFontForReadEmail(email))
|
||||||
).build();
|
).build();
|
||||||
} else {
|
} else {
|
||||||
return Text(
|
return TextOverflowBuilder(
|
||||||
informationSender(email, mailbox).withUnicodeCharacter,
|
informationSender(email, mailbox),
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
style: TextStyle(
|
||||||
|
fontSize: 15,
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||||
maxLines: 1,
|
color: buildTextColorForReadEmail(email),
|
||||||
style: TextStyle(
|
fontWeight: buildFontForReadEmail(email))
|
||||||
fontSize: 15,
|
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
|
||||||
color: buildTextColorForReadEmail(email),
|
|
||||||
fontWeight: buildFontForReadEmail(email))
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -119,7 +114,7 @@ mixin BaseEmailItemTile {
|
|||||||
) {
|
) {
|
||||||
if (isSearchEnabled(isSearchEmailRunning, query)) {
|
if (isSearchEnabled(isSearchEmailRunning, query)) {
|
||||||
return RichTextBuilder(
|
return RichTextBuilder(
|
||||||
email.getEmailTitle().withUnicodeCharacter,
|
email.getEmailTitle().overflow,
|
||||||
query?.value ?? '',
|
query?.value ?? '',
|
||||||
TextStyle(
|
TextStyle(
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
@@ -132,15 +127,12 @@ mixin BaseEmailItemTile {
|
|||||||
fontWeight: buildFontForReadEmail(email))
|
fontWeight: buildFontForReadEmail(email))
|
||||||
).build();
|
).build();
|
||||||
} else {
|
} else {
|
||||||
return Text(
|
return TextOverflowBuilder(
|
||||||
email.getEmailTitle().withUnicodeCharacter,
|
email.getEmailTitle(),
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
style: TextStyle(
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
fontSize: 13,
|
||||||
maxLines: 1,
|
color: buildTextColorForReadEmail(email),
|
||||||
style: TextStyle(
|
fontWeight: buildFontForReadEmail(email))
|
||||||
fontSize: 13,
|
|
||||||
color: buildTextColorForReadEmail(email),
|
|
||||||
fontWeight: buildFontForReadEmail(email))
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -152,7 +144,7 @@ mixin BaseEmailItemTile {
|
|||||||
) {
|
) {
|
||||||
if (isSearchEnabled(isSearchEmailRunning, query)) {
|
if (isSearchEnabled(isSearchEmailRunning, query)) {
|
||||||
return RichTextBuilder(
|
return RichTextBuilder(
|
||||||
email.getPartialContent().withUnicodeCharacter,
|
email.getPartialContent().overflow,
|
||||||
query?.value ?? '',
|
query?.value ?? '',
|
||||||
const TextStyle(
|
const TextStyle(
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
@@ -164,15 +156,12 @@ mixin BaseEmailItemTile {
|
|||||||
backgroundColor: AppColor.bgWordSearch)
|
backgroundColor: AppColor.bgWordSearch)
|
||||||
).build();
|
).build();
|
||||||
} else {
|
} else {
|
||||||
return Text(
|
return TextOverflowBuilder(
|
||||||
email.getPartialContent().withUnicodeCharacter,
|
email.getPartialContent(),
|
||||||
maxLines: 1,
|
style: const TextStyle(
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
fontSize: 13,
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
color: AppColor.colorContentEmail,
|
||||||
style: const TextStyle(
|
fontWeight: FontWeight.normal)
|
||||||
fontSize: 13,
|
|
||||||
color: AppColor.colorContentEmail,
|
|
||||||
fontWeight: FontWeight.normal)
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user