TF-1915 Show From address when list identity is empty
(cherry picked from commit 56a97d3ae84418e070d45f9c9d6b258b0a8bf3db)
This commit is contained in:
@@ -300,71 +300,73 @@ class ComposerView extends GetWidget<ComposerController>
|
|||||||
color: AppColor.colorHintEmailAddressInput
|
color: AppColor.colorHintEmailAddressInput
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
const SizedBox(width: 12),
|
|
||||||
if (controller.listIdentities.isNotEmpty)
|
if (controller.listIdentities.isNotEmpty)
|
||||||
DropdownButtonHideUnderline(child: DropdownButton2<Identity>(
|
Padding(
|
||||||
isExpanded: true,
|
padding: const EdgeInsets.only(left: 12),
|
||||||
customButton: SvgPicture.asset(imagePaths.icEditIdentity),
|
child: DropdownButtonHideUnderline(child: DropdownButton2<Identity>(
|
||||||
items: controller.listIdentities.map((item) => DropdownMenuItem<Identity>(
|
isExpanded: true,
|
||||||
value: item,
|
customButton: SvgPicture.asset(imagePaths.icEditIdentity),
|
||||||
child: Container(
|
items: controller.listIdentities.map((item) => DropdownMenuItem<Identity>(
|
||||||
alignment: Alignment.centerLeft,
|
value: item,
|
||||||
padding: const EdgeInsets.symmetric(horizontal: 8),
|
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(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(12),
|
borderRadius: BorderRadius.circular(20),
|
||||||
color: item == controller.identitySelected.value
|
color: Colors.white),
|
||||||
? AppColor.colorBgMenuItemDropDownSelected
|
elevation: 4,
|
||||||
: Colors.transparent
|
scrollbarTheme: ScrollbarThemeData(
|
||||||
),
|
radius: const Radius.circular(40),
|
||||||
child: Column(
|
thickness: MaterialStateProperty.all<double>(6),
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
thumbVisibility: MaterialStateProperty.all<bool>(true),
|
||||||
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(),
|
menuItemStyleData: const MenuItemStyleData(
|
||||||
onChanged: (newIdentity) => controller.selectIdentity(newIdentity),
|
height: 55,
|
||||||
dropdownStyleData: DropdownStyleData(
|
padding: EdgeInsets.symmetric(horizontal: 8),
|
||||||
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<double>(6),
|
|
||||||
thumbVisibility: MaterialStateProperty.all<bool>(true),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
menuItemStyleData: const MenuItemStyleData(
|
|
||||||
height: 55,
|
|
||||||
padding: EdgeInsets.symmetric(horizontal: 8),
|
|
||||||
)
|
|
||||||
)),
|
|
||||||
Expanded(child: Padding(
|
Expanded(child: Padding(
|
||||||
padding: EdgeInsets.only(
|
padding: EdgeInsets.only(
|
||||||
right: AppUtils.isDirectionRTL(context) ? 12 : 8,
|
right: AppUtils.isDirectionRTL(context) ? 12 : 8,
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
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/html_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/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/html_transformer/html_template.dart';
|
import 'package:core/presentation/utils/html_transformer/html_template.dart';
|
||||||
@@ -60,9 +61,7 @@ class ComposerView extends GetWidget<ComposerController>
|
|||||||
children: [
|
children: [
|
||||||
Obx(() => _buildAppBarForMobile(context, controller.isEnableEmailSendButton.value)),
|
Obx(() => _buildAppBarForMobile(context, controller.isEnableEmailSendButton.value)),
|
||||||
const Divider(color: AppColor.colorDividerComposer, height: 1),
|
const Divider(color: AppColor.colorDividerComposer, height: 1),
|
||||||
Obx(() => controller.identitySelected.value != null
|
_buildFromEmailAddress(context),
|
||||||
? _buildFromEmailAddress(context)
|
|
||||||
: const SizedBox.shrink()),
|
|
||||||
Obx(() => controller.identitySelected.value != null
|
Obx(() => controller.identitySelected.value != null
|
||||||
? const Divider(color: AppColor.colorDividerComposer, height: 1)
|
? const Divider(color: AppColor.colorDividerComposer, height: 1)
|
||||||
: const SizedBox.shrink()),
|
: const SizedBox.shrink()),
|
||||||
@@ -414,9 +413,7 @@ class ComposerView extends GetWidget<ComposerController>
|
|||||||
right: AppUtils.isDirectionRTL(context) ? 12 : 0,
|
right: AppUtils.isDirectionRTL(context) ? 12 : 0,
|
||||||
),
|
),
|
||||||
child: Column(children: [
|
child: Column(children: [
|
||||||
Obx(() => controller.identitySelected.value != null
|
_buildFromEmailAddress(context),
|
||||||
? _buildFromEmailAddress(context)
|
|
||||||
: const SizedBox.shrink()),
|
|
||||||
Obx(() => controller.identitySelected.value != null
|
Obx(() => controller.identitySelected.value != null
|
||||||
? const Divider(color: AppColor.colorDividerComposer, height: 1)
|
? const Divider(color: AppColor.colorDividerComposer, height: 1)
|
||||||
: const SizedBox.shrink()),
|
: const SizedBox.shrink()),
|
||||||
@@ -465,96 +462,112 @@ class ComposerView extends GetWidget<ComposerController>
|
|||||||
}
|
}
|
||||||
|
|
||||||
Widget _buildFromEmailAddress(BuildContext context) {
|
Widget _buildFromEmailAddress(BuildContext context) {
|
||||||
return Padding(
|
return Obx(() {
|
||||||
padding: EdgeInsets.only(
|
return Padding(
|
||||||
|
padding: EdgeInsets.only(
|
||||||
left: AppUtils.isDirectionRTL(context) ? 0 : responsiveUtils.isMobile(context) ? 16 : 0,
|
left: AppUtils.isDirectionRTL(context) ? 0 : responsiveUtils.isMobile(context) ? 16 : 0,
|
||||||
right: AppUtils.isDirectionRTL(context) ? responsiveUtils.isMobile(context) ? 16 : 0 : 0,
|
right: AppUtils.isDirectionRTL(context) ? responsiveUtils.isMobile(context) ? 16 : 0 : 0,
|
||||||
top: 12,
|
top: 12,
|
||||||
bottom: 12),
|
bottom: 12),
|
||||||
child: Row(children: [
|
child: Row(children: [
|
||||||
Text('${AppLocalizations.of(context).from_email_address_prefix}:',
|
Text(
|
||||||
style: const TextStyle(fontSize: 15, color: AppColor.colorHintEmailAddressInput)),
|
'${AppLocalizations.of(context).from_email_address_prefix}:',
|
||||||
const SizedBox(width: 12),
|
style: const TextStyle(
|
||||||
DropdownButtonHideUnderline(
|
fontSize: 15,
|
||||||
child: DropdownButton2<Identity>(
|
color: AppColor.colorHintEmailAddressInput
|
||||||
isExpanded: true,
|
|
||||||
customButton: SvgPicture.asset(imagePaths.icEditIdentity),
|
|
||||||
items: controller.listIdentities.map((item) => DropdownMenuItem<Identity>(
|
|
||||||
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<double>(6),
|
|
||||||
thumbVisibility: MaterialStateProperty.all<bool>(true),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
menuItemStyleData: const MenuItemStyleData(
|
|
||||||
height: 55,
|
|
||||||
padding: EdgeInsets.symmetric(horizontal: 8),
|
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
),
|
if (controller.listIdentities.isNotEmpty)
|
||||||
Expanded(child: Padding(
|
Padding(
|
||||||
padding: EdgeInsets.only(
|
padding: const EdgeInsets.only(left: 12),
|
||||||
right: AppUtils.isDirectionRTL(context) ? 12 : 8,
|
child: DropdownButtonHideUnderline(
|
||||||
left: AppUtils.isDirectionRTL(context) ? 8 : 12,
|
child: DropdownButton2<Identity>(
|
||||||
),
|
isExpanded: true,
|
||||||
child: Text(
|
customButton: SvgPicture.asset(imagePaths.icEditIdentity),
|
||||||
controller.identitySelected.value?.email ?? '',
|
items: controller.listIdentities.map((item) => DropdownMenuItem<Identity>(
|
||||||
maxLines: 1,
|
value: item,
|
||||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
child: PointerInterceptor(
|
||||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
child: Container(
|
||||||
style: const TextStyle(
|
alignment: Alignment.centerLeft,
|
||||||
fontSize: 17,
|
padding: const EdgeInsets.symmetric(horizontal: 8),
|
||||||
fontWeight: FontWeight.normal,
|
decoration: BoxDecoration(
|
||||||
color: AppColor.colorEmailAddressPrefix),
|
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<double>(6),
|
||||||
|
thumbVisibility: MaterialStateProperty.all<bool>(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) {
|
Widget _buildEmailAddress(BuildContext context, BoxConstraints constraints) {
|
||||||
|
|||||||
Reference in New Issue
Block a user