diff --git a/lib/features/composer/presentation/composer_view.dart b/lib/features/composer/presentation/composer_view.dart index 4521ce0f4..f5afe1811 100644 --- a/lib/features/composer/presentation/composer_view.dart +++ b/lib/features/composer/presentation/composer_view.dart @@ -300,71 +300,73 @@ class ComposerView extends GetWidget color: AppColor.colorHintEmailAddressInput ) ), - const SizedBox(width: 12), if (controller.listIdentities.isNotEmpty) - DropdownButtonHideUnderline(child: DropdownButton2( - isExpanded: true, - customButton: SvgPicture.asset(imagePaths.icEditIdentity), - items: controller.listIdentities.map((item) => DropdownMenuItem( - value: item, - child: Container( - alignment: Alignment.centerLeft, - padding: const EdgeInsets.symmetric(horizontal: 8), + Padding( + padding: const EdgeInsets.only(left: 12), + child: DropdownButtonHideUnderline(child: DropdownButton2( + isExpanded: true, + customButton: SvgPicture.asset(imagePaths.icEditIdentity), + items: controller.listIdentities.map((item) => DropdownMenuItem( + value: item, + child: Container( + alignment: Alignment.centerLeft, + padding: const EdgeInsets.symmetric(horizontal: 8), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: item == controller.identitySelected.value + ? AppColor.colorBgMenuItemDropDownSelected + : Colors.transparent + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + item.name ?? '', + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.normal, + color: Colors.black + ), + maxLines: 1, + overflow: CommonTextStyle.defaultTextOverFlow, + softWrap: CommonTextStyle.defaultSoftWrap, + ), + Text( + item.email ?? '', + style: const TextStyle( + fontSize: 13, + fontWeight: FontWeight.normal, + color: AppColor.colorHintSearchBar + ), + maxLines: 1, + overflow: CommonTextStyle.defaultTextOverFlow, + softWrap: CommonTextStyle.defaultSoftWrap, + ) + ] + ), + ), + )).toList(), + onChanged: (newIdentity) => controller.selectIdentity(newIdentity), + dropdownStyleData: DropdownStyleData( + maxHeight: 240, + width: 300, decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: item == controller.identitySelected.value - ? AppColor.colorBgMenuItemDropDownSelected - : Colors.transparent - ), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text( - item.name ?? '', - style: const TextStyle( - fontSize: 16, - fontWeight: FontWeight.normal, - color: Colors.black - ), - maxLines: 1, - overflow: CommonTextStyle.defaultTextOverFlow, - softWrap: CommonTextStyle.defaultSoftWrap, - ), - Text( - item.email ?? '', - style: const TextStyle( - fontSize: 13, - fontWeight: FontWeight.normal, - color: AppColor.colorHintSearchBar - ), - maxLines: 1, - overflow: CommonTextStyle.defaultTextOverFlow, - softWrap: CommonTextStyle.defaultSoftWrap, - ) - ] + borderRadius: BorderRadius.circular(20), + color: Colors.white), + elevation: 4, + scrollbarTheme: ScrollbarThemeData( + radius: const Radius.circular(40), + thickness: MaterialStateProperty.all(6), + thumbVisibility: MaterialStateProperty.all(true), ), ), - )).toList(), - onChanged: (newIdentity) => controller.selectIdentity(newIdentity), - dropdownStyleData: DropdownStyleData( - maxHeight: 240, - width: 300, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: Colors.white), - elevation: 4, - scrollbarTheme: ScrollbarThemeData( - radius: const Radius.circular(40), - thickness: MaterialStateProperty.all(6), - thumbVisibility: MaterialStateProperty.all(true), - ), - ), - menuItemStyleData: const MenuItemStyleData( - height: 55, - padding: EdgeInsets.symmetric(horizontal: 8), - ) - )), + menuItemStyleData: const MenuItemStyleData( + height: 55, + padding: EdgeInsets.symmetric(horizontal: 8), + ) + )), + ), Expanded(child: Padding( padding: EdgeInsets.only( right: AppUtils.isDirectionRTL(context) ? 12 : 8, diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index 44559884e..bd2cada39 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -1,6 +1,7 @@ import 'package:core/presentation/extensions/capitalize_extension.dart'; import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/extensions/html_extension.dart'; +import 'package:core/presentation/extensions/string_extension.dart'; import 'package:core/presentation/resources/image_paths.dart'; import 'package:core/presentation/utils/app_toast.dart'; import 'package:core/presentation/utils/html_transformer/html_template.dart'; @@ -60,9 +61,7 @@ class ComposerView extends GetWidget children: [ Obx(() => _buildAppBarForMobile(context, controller.isEnableEmailSendButton.value)), const Divider(color: AppColor.colorDividerComposer, height: 1), - Obx(() => controller.identitySelected.value != null - ? _buildFromEmailAddress(context) - : const SizedBox.shrink()), + _buildFromEmailAddress(context), Obx(() => controller.identitySelected.value != null ? const Divider(color: AppColor.colorDividerComposer, height: 1) : const SizedBox.shrink()), @@ -414,9 +413,7 @@ class ComposerView extends GetWidget right: AppUtils.isDirectionRTL(context) ? 12 : 0, ), child: Column(children: [ - Obx(() => controller.identitySelected.value != null - ? _buildFromEmailAddress(context) - : const SizedBox.shrink()), + _buildFromEmailAddress(context), Obx(() => controller.identitySelected.value != null ? const Divider(color: AppColor.colorDividerComposer, height: 1) : const SizedBox.shrink()), @@ -465,96 +462,112 @@ class ComposerView extends GetWidget } Widget _buildFromEmailAddress(BuildContext context) { - return Padding( - padding: EdgeInsets.only( + return Obx(() { + return Padding( + padding: EdgeInsets.only( left: AppUtils.isDirectionRTL(context) ? 0 : responsiveUtils.isMobile(context) ? 16 : 0, right: AppUtils.isDirectionRTL(context) ? responsiveUtils.isMobile(context) ? 16 : 0 : 0, top: 12, bottom: 12), - child: Row(children: [ - Text('${AppLocalizations.of(context).from_email_address_prefix}:', - style: const TextStyle(fontSize: 15, color: AppColor.colorHintEmailAddressInput)), - const SizedBox(width: 12), - DropdownButtonHideUnderline( - child: DropdownButton2( - isExpanded: true, - customButton: SvgPicture.asset(imagePaths.icEditIdentity), - items: controller.listIdentities.map((item) => DropdownMenuItem( - value: item, - child: PointerInterceptor( - child: Container( - alignment: Alignment.centerLeft, - padding: const EdgeInsets.symmetric(horizontal: 8), - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(12), - color: item == controller.identitySelected.value ? AppColor.colorBgMenuItemDropDownSelected : Colors.transparent), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - Text( - item.name ?? '', - style: const TextStyle( - fontSize: 16, - fontWeight: FontWeight.normal, - color: Colors.black), - maxLines: 1, - overflow: CommonTextStyle.defaultTextOverFlow, - softWrap: CommonTextStyle.defaultSoftWrap - ), - Text( - item.email ?? '', - style: const TextStyle( - fontSize: 13, - fontWeight: FontWeight.normal, - color: AppColor.colorHintSearchBar), - maxLines: 1, - overflow: CommonTextStyle.defaultTextOverFlow, - softWrap: CommonTextStyle.defaultSoftWrap - ) - ] - ), - ), - ), - )).toList(), - onChanged: (newIdentity) => controller.selectIdentity(newIdentity), - dropdownStyleData: DropdownStyleData( - maxHeight: 240, - width: 370, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(20), - color: Colors.white), - elevation: 4, - scrollbarTheme: ScrollbarThemeData( - radius: const Radius.circular(40), - thickness: MaterialStateProperty.all(6), - thumbVisibility: MaterialStateProperty.all(true), - ), - ), - menuItemStyleData: const MenuItemStyleData( - height: 55, - padding: EdgeInsets.symmetric(horizontal: 8), + child: Row(children: [ + Text( + '${AppLocalizations.of(context).from_email_address_prefix}:', + style: const TextStyle( + fontSize: 15, + color: AppColor.colorHintEmailAddressInput ) ), - ), - Expanded(child: Padding( - padding: EdgeInsets.only( - right: AppUtils.isDirectionRTL(context) ? 12 : 8, - left: AppUtils.isDirectionRTL(context) ? 8 : 12, - ), - child: Text( - controller.identitySelected.value?.email ?? '', - maxLines: 1, - overflow: CommonTextStyle.defaultTextOverFlow, - softWrap: CommonTextStyle.defaultSoftWrap, - style: const TextStyle( - fontSize: 17, - fontWeight: FontWeight.normal, - color: AppColor.colorEmailAddressPrefix), - ) - )), - ]), - ); + if (controller.listIdentities.isNotEmpty) + Padding( + padding: const EdgeInsets.only(left: 12), + child: DropdownButtonHideUnderline( + child: DropdownButton2( + isExpanded: true, + customButton: SvgPicture.asset(imagePaths.icEditIdentity), + items: controller.listIdentities.map((item) => DropdownMenuItem( + value: item, + child: PointerInterceptor( + child: Container( + alignment: Alignment.centerLeft, + padding: const EdgeInsets.symmetric(horizontal: 8), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: item == controller.identitySelected.value + ? AppColor.colorBgMenuItemDropDownSelected + : Colors.transparent + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + item.name ?? '', + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.normal, + color: Colors.black), + maxLines: 1, + overflow: CommonTextStyle.defaultTextOverFlow, + softWrap: CommonTextStyle.defaultSoftWrap + ), + Text( + item.email ?? '', + style: const TextStyle( + fontSize: 13, + fontWeight: FontWeight.normal, + color: AppColor.colorHintSearchBar), + maxLines: 1, + overflow: CommonTextStyle.defaultTextOverFlow, + softWrap: CommonTextStyle.defaultSoftWrap + ) + ] + ), + ), + ), + )).toList(), + onChanged: (newIdentity) => controller.selectIdentity(newIdentity), + dropdownStyleData: DropdownStyleData( + maxHeight: 240, + width: 370, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(20), + color: Colors.white), + elevation: 4, + scrollbarTheme: ScrollbarThemeData( + radius: const Radius.circular(40), + thickness: MaterialStateProperty.all(6), + thumbVisibility: MaterialStateProperty.all(true), + ), + ), + menuItemStyleData: const MenuItemStyleData( + height: 55, + padding: EdgeInsets.symmetric(horizontal: 8), + ) + ), + ), + ), + Expanded(child: Padding( + padding: EdgeInsets.only( + right: AppUtils.isDirectionRTL(context) ? 12 : 8, + left: AppUtils.isDirectionRTL(context) ? 8 : 12, + ), + child: Text( + controller.identitySelected.value != null + ? (controller.identitySelected.value?.email ?? '').withUnicodeCharacter + : (controller.userProfile?.email ?? '').withUnicodeCharacter, + maxLines: 1, + overflow: CommonTextStyle.defaultTextOverFlow, + softWrap: CommonTextStyle.defaultSoftWrap, + style: const TextStyle( + fontSize: 17, + fontWeight: FontWeight.normal, + color: AppColor.colorEmailAddressPrefix + ), + ) + )), + ]), + ); + }); } Widget _buildEmailAddress(BuildContext context, BoxConstraints constraints) {