TF-1718 Show Unsubscribe button in email view on web & tablet
(cherry picked from commit 367c4ccfea750b2ba2d68d2e620abefdee1fbdf6)
This commit is contained in:
+31
-9
@@ -1,6 +1,7 @@
|
||||
|
||||
import 'package:core/presentation/extensions/color_extension.dart';
|
||||
import 'package:core/presentation/resources/image_paths.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:model/email/presentation_email.dart';
|
||||
import 'package:model/extensions/presentation_email_extension.dart';
|
||||
@@ -9,6 +10,7 @@ import 'package:tmail_ui_user/features/email/presentation/controller/single_emai
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_receiver_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_sender_builder.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/received_time_builder.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
||||
|
||||
@@ -45,15 +47,35 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
||||
children: [
|
||||
if (emailSelected.from?.isNotEmpty == true)
|
||||
Row(children: [
|
||||
Expanded(child: Transform(
|
||||
transform: Matrix4.translationValues(-5.0, 0.0, 0.0),
|
||||
child: EmailSenderBuilder(
|
||||
emailAddress: emailSelected.from!.first,
|
||||
openEmailAddressDetailAction: controller.openEmailAddressDialog,
|
||||
Expanded(
|
||||
child: Row(
|
||||
children: [
|
||||
Flexible(child: Transform(
|
||||
transform: Matrix4.translationValues(-5.0, 0.0, 0.0),
|
||||
child: EmailSenderBuilder(
|
||||
emailAddress: emailSelected.from!.first,
|
||||
openEmailAddressDetailAction: controller.openEmailAddressDialog,
|
||||
)
|
||||
)),
|
||||
if (!responsiveUtils.isPortraitMobile(context))
|
||||
TMailButtonWidget.fromText(
|
||||
text: AppLocalizations.of(context).unsubscribe,
|
||||
textStyle: const TextStyle(
|
||||
fontWeight: FontWeight.normal,
|
||||
fontSize: 14,
|
||||
color: AppColor.colorTextBody,
|
||||
decoration: TextDecoration.underline,
|
||||
),
|
||||
padding: const EdgeInsetsDirectional.symmetric(vertical: 5, horizontal: 8),
|
||||
backgroundColor: Colors.transparent,
|
||||
),
|
||||
],
|
||||
)
|
||||
)),
|
||||
const SizedBox(width: 12),
|
||||
ReceivedTimeBuilder(emailSelected),
|
||||
),
|
||||
ReceivedTimeBuilder(
|
||||
emailSelected: emailSelected,
|
||||
margin: const EdgeInsetsDirectional.only(start: 16),
|
||||
),
|
||||
]),
|
||||
if (emailSelected.numberOfAllEmailAddress() > 0)
|
||||
EmailReceiverWidget(
|
||||
|
||||
@@ -9,17 +9,19 @@ import 'package:model/extensions/presentation_email_extension.dart';
|
||||
class ReceivedTimeBuilder extends StatelessWidget {
|
||||
|
||||
final PresentationEmail emailSelected;
|
||||
final EdgeInsetsGeometry? margin;
|
||||
|
||||
const ReceivedTimeBuilder(
|
||||
this.emailSelected, {
|
||||
const ReceivedTimeBuilder({
|
||||
Key? key,
|
||||
required this.emailSelected,
|
||||
this.margin,
|
||||
}) : super(key: key);
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
constraints: const BoxConstraints(maxWidth: 100),
|
||||
color: Colors.transparent,
|
||||
margin: margin,
|
||||
child: Text(
|
||||
emailSelected.getReceivedAt(
|
||||
Localizations.localeOf(context).toLanguageTag(),
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"@@last_modified": "2023-11-10T16:53:43.713688",
|
||||
"@@last_modified": "2023-11-15T14:44:16.030072",
|
||||
"initializing_data": "Initializing data...",
|
||||
"@initializing_data": {
|
||||
"type": "text",
|
||||
@@ -3493,5 +3493,11 @@
|
||||
"type": "text",
|
||||
"placeholders_order": [],
|
||||
"placeholders": {}
|
||||
},
|
||||
"unsubscribe": "Unsubscribe",
|
||||
"@unsubscribe": {
|
||||
"type": "text",
|
||||
"placeholders_order": [],
|
||||
"placeholders": {}
|
||||
}
|
||||
}
|
||||
@@ -3624,4 +3624,11 @@ class AppLocalizations {
|
||||
name: 'enterYourPasswordToSignIn'
|
||||
);
|
||||
}
|
||||
|
||||
String get unsubscribe {
|
||||
return Intl.message(
|
||||
'Unsubscribe',
|
||||
name: 'unsubscribe',
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user