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/resources/image_paths.dart';
|
||||||
import 'package:core/presentation/utils/responsive_utils.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:flutter/material.dart';
|
||||||
import 'package:model/email/presentation_email.dart';
|
import 'package:model/email/presentation_email.dart';
|
||||||
import 'package:model/extensions/presentation_email_extension.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_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/email_sender_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/received_time_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 {
|
class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
||||||
|
|
||||||
@@ -45,15 +47,35 @@ class InformationSenderAndReceiverBuilder extends StatelessWidget {
|
|||||||
children: [
|
children: [
|
||||||
if (emailSelected.from?.isNotEmpty == true)
|
if (emailSelected.from?.isNotEmpty == true)
|
||||||
Row(children: [
|
Row(children: [
|
||||||
Expanded(child: Transform(
|
Expanded(
|
||||||
transform: Matrix4.translationValues(-5.0, 0.0, 0.0),
|
child: Row(
|
||||||
child: EmailSenderBuilder(
|
children: [
|
||||||
emailAddress: emailSelected.from!.first,
|
Flexible(child: Transform(
|
||||||
openEmailAddressDetailAction: controller.openEmailAddressDialog,
|
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(
|
||||||
ReceivedTimeBuilder(emailSelected),
|
emailSelected: emailSelected,
|
||||||
|
margin: const EdgeInsetsDirectional.only(start: 16),
|
||||||
|
),
|
||||||
]),
|
]),
|
||||||
if (emailSelected.numberOfAllEmailAddress() > 0)
|
if (emailSelected.numberOfAllEmailAddress() > 0)
|
||||||
EmailReceiverWidget(
|
EmailReceiverWidget(
|
||||||
|
|||||||
@@ -9,17 +9,19 @@ import 'package:model/extensions/presentation_email_extension.dart';
|
|||||||
class ReceivedTimeBuilder extends StatelessWidget {
|
class ReceivedTimeBuilder extends StatelessWidget {
|
||||||
|
|
||||||
final PresentationEmail emailSelected;
|
final PresentationEmail emailSelected;
|
||||||
|
final EdgeInsetsGeometry? margin;
|
||||||
|
|
||||||
const ReceivedTimeBuilder(
|
const ReceivedTimeBuilder({
|
||||||
this.emailSelected, {
|
|
||||||
Key? key,
|
Key? key,
|
||||||
|
required this.emailSelected,
|
||||||
|
this.margin,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Container(
|
return Container(
|
||||||
constraints: const BoxConstraints(maxWidth: 100),
|
constraints: const BoxConstraints(maxWidth: 100),
|
||||||
color: Colors.transparent,
|
margin: margin,
|
||||||
child: Text(
|
child: Text(
|
||||||
emailSelected.getReceivedAt(
|
emailSelected.getReceivedAt(
|
||||||
Localizations.localeOf(context).toLanguageTag(),
|
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": "Initializing data...",
|
||||||
"@initializing_data": {
|
"@initializing_data": {
|
||||||
"type": "text",
|
"type": "text",
|
||||||
@@ -3493,5 +3493,11 @@
|
|||||||
"type": "text",
|
"type": "text",
|
||||||
"placeholders_order": [],
|
"placeholders_order": [],
|
||||||
"placeholders": {}
|
"placeholders": {}
|
||||||
|
},
|
||||||
|
"unsubscribe": "Unsubscribe",
|
||||||
|
"@unsubscribe": {
|
||||||
|
"type": "text",
|
||||||
|
"placeholders_order": [],
|
||||||
|
"placeholders": {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3624,4 +3624,11 @@ class AppLocalizations {
|
|||||||
name: 'enterYourPasswordToSignIn'
|
name: 'enterYourPasswordToSignIn'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String get unsubscribe {
|
||||||
|
return Intl.message(
|
||||||
|
'Unsubscribe',
|
||||||
|
name: 'unsubscribe',
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user