TF-3293 Fix blue bar cannot select action banner text

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-02-19 11:32:25 +07:00
committed by Dat H. Pham
parent 71903d270f
commit 0e549c830a
3 changed files with 61 additions and 47 deletions
@@ -178,9 +178,13 @@ extension AppColor on Color {
static const colorCalendarEventRead = Color(0xFF818C99);
static const colorCalendarEventUnread = Color(0xFF1C1B1F);
static const colorMaybeEventActionText = Color(0xFFFFC107);
static const colorMaybeEventActionBanner = Color(0xFFFFF5C2);
static const colorInvitedEventActionText = Color(0xFF007AFF);
static const colorInvitedEventActionBanner = Color(0xFFEBF4FF);
static const colorUpdatedEventActionText = Color(0xFF4BB34B);
static const colorUpdatedEventActionBanner = Color(0xFFECF8E5);
static const colorCanceledEventActionText = Color(0xFFFF3347);
static const colorCanceledEventActionBanner = Color(0xFFF5EBEB);
static const colorSubTitleEventActionText = Color(0xFF939393);
static const colorCalendarEventInformationBackground = Color(0x0A000000);
static const colorCalendarEventInformationStroke = Color(0x1F000000);
@@ -25,30 +25,34 @@ import 'package:tmail_ui_user/main/utils/app_utils.dart';
extension CalendarEventExtension on CalendarEvent {
Color getColorEventActionBanner(List<String> listEmailAddressSender) {
static const String acceptedParticipationStatus = 'ACCEPTED';
static const String tentativeParticipationStatus = 'TENTATIVE';
static const String declinedParticipationStatus = 'DECLINED';
Color? getColorEventActionBanner(List<String> listEmailAddressSender) {
switch(method) {
case EventMethod.request:
case EventMethod.add:
return AppColor.colorInvitedEventActionText;
return AppColor.colorInvitedEventActionBanner;
case EventMethod.refresh:
case EventMethod.counter:
return AppColor.colorUpdatedEventActionText;
return AppColor.colorUpdatedEventActionBanner;
case EventMethod.cancel:
case EventMethod.declineCounter:
return AppColor.colorCanceledEventActionText;
return AppColor.colorCanceledEventActionBanner;
case EventMethod.reply:
final matchedAttendee = findAttendeeHasUpdatedStatus(listEmailAddressSender);
if (matchedAttendee != null) {
return getAttendeeMessageTextColor(matchedAttendee.participationStatus);
return getAttendeeMessageBannerColor(matchedAttendee.participationStatus);
} else {
return Colors.transparent;
return null;
}
default:
return Colors.transparent;
return null;
}
}
Color getColorEventActionText(List<String> listEmailAddressSender) {
Color? getColorEventActionText(List<String> listEmailAddressSender) {
switch(method) {
case EventMethod.request:
case EventMethod.add:
@@ -64,10 +68,10 @@ extension CalendarEventExtension on CalendarEvent {
if (matchedAttendee != null) {
return getAttendeeMessageTextColor(matchedAttendee.participationStatus);
} else {
return Colors.transparent;
return null;
}
default:
return Colors.transparent;
return null;
}
}
@@ -155,26 +159,38 @@ extension CalendarEventExtension on CalendarEvent {
}
String getAttendeeMessageStatus(BuildContext context, CalendarAttendeeParticipationStatus? status) {
if (status == CalendarAttendeeParticipationStatus('ACCEPTED')) {
if (status == CalendarAttendeeParticipationStatus(acceptedParticipationStatus)) {
return AppLocalizations.of(context).messageEventActionBannerAttendeeAccepted;
} else if (status == CalendarAttendeeParticipationStatus('TENTATIVE')) {
} else if (status == CalendarAttendeeParticipationStatus(tentativeParticipationStatus)) {
return AppLocalizations.of(context).messageEventActionBannerAttendeeTentative;
} else if (status == CalendarAttendeeParticipationStatus('DECLINED')) {
} else if (status == CalendarAttendeeParticipationStatus(declinedParticipationStatus)) {
return AppLocalizations.of(context).messageEventActionBannerAttendeeDeclined;
} else {
return '';
}
}
Color getAttendeeMessageTextColor(CalendarAttendeeParticipationStatus? status) {
if (status == CalendarAttendeeParticipationStatus('ACCEPTED')) {
Color? getAttendeeMessageBannerColor(CalendarAttendeeParticipationStatus? status) {
if (status == CalendarAttendeeParticipationStatus(acceptedParticipationStatus)) {
return AppColor.colorUpdatedEventActionBanner;
} else if (status == CalendarAttendeeParticipationStatus(tentativeParticipationStatus)) {
return AppColor.colorMaybeEventActionBanner;
} else if (status == CalendarAttendeeParticipationStatus(declinedParticipationStatus)) {
return AppColor.colorCanceledEventActionBanner;
} else {
return null;
}
}
Color? getAttendeeMessageTextColor(CalendarAttendeeParticipationStatus? status) {
if (status == CalendarAttendeeParticipationStatus(acceptedParticipationStatus)) {
return AppColor.colorUpdatedEventActionText;
} else if (status == CalendarAttendeeParticipationStatus('TENTATIVE')) {
} else if (status == CalendarAttendeeParticipationStatus(tentativeParticipationStatus)) {
return AppColor.colorMaybeEventActionText;
} else if (status == CalendarAttendeeParticipationStatus('DECLINED')) {
} else if (status == CalendarAttendeeParticipationStatus(declinedParticipationStatus)) {
return AppColor.colorCanceledEventActionText;
} else {
return Colors.transparent;
return null;
}
}
@@ -24,7 +24,7 @@ class CalendarEventActionBannerWidget extends StatelessWidget {
return Container(
decoration: BoxDecoration(
borderRadius: const BorderRadius.all(Radius.circular(CalendarEventActionBannerStyles.borderRadius)),
color: calendarEvent.getColorEventActionBanner(listEmailAddressSender).withOpacity(0.12)
color: calendarEvent.getColorEventActionBanner(listEmailAddressSender),
),
padding: const EdgeInsets.all(CalendarEventActionBannerStyles.contentPadding),
margin: const EdgeInsets.symmetric(
@@ -44,35 +44,29 @@ class CalendarEventActionBannerWidget extends StatelessWidget {
fit: BoxFit.fill,
),
),
Expanded(child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text.rich(
TextSpan(
style: TextStyle(
fontSize: CalendarEventActionBannerStyles.titleTextSize,
fontWeight: FontWeight.w400,
color: calendarEvent.getColorEventActionText(listEmailAddressSender)
),
children: [
TextSpan(
text: calendarEvent.getUserNameEventAction(
context: context,
imagePaths: imagePaths,
listEmailAddressSender: listEmailAddressSender
),
style: TextStyle(
color: calendarEvent.getColorEventActionText(listEmailAddressSender),
fontSize: CalendarEventActionBannerStyles.titleTextSize,
fontWeight: FontWeight.w700
),
),
TextSpan(text: calendarEvent.getTitleEventAction(context, listEmailAddressSender))
]
)
Expanded(child: Text.rich(
TextSpan(
style: TextStyle(
fontSize: CalendarEventActionBannerStyles.titleTextSize,
fontWeight: FontWeight.w400,
color: calendarEvent.getColorEventActionText(listEmailAddressSender)
),
]
children: [
TextSpan(
text: calendarEvent.getUserNameEventAction(
context: context,
imagePaths: imagePaths,
listEmailAddressSender: listEmailAddressSender
),
style: TextStyle(
color: calendarEvent.getColorEventActionText(listEmailAddressSender),
fontSize: CalendarEventActionBannerStyles.titleTextSize,
fontWeight: FontWeight.w700
),
),
TextSpan(text: calendarEvent.getTitleEventAction(context, listEmailAddressSender))
]
)
))
]
),