TF-3591 Implement CalendarEventCounter/accept method
This commit is contained in:
+10
@@ -3,6 +3,8 @@ import 'package:core/presentation/views/button/tmail_button_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/attendance/calendar_event_attendance.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/calendar/properties/event_method.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/extensions/list_event_actions_extension.dart';
|
||||
import 'package:tmail_ui_user/features/email/domain/model/event_action.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/styles/calendar_event_action_button_widget_styles.dart';
|
||||
|
||||
@@ -13,6 +15,7 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
|
||||
final EdgeInsetsGeometry? margin;
|
||||
final OnCalendarEventReplyActionClick onCalendarEventReplyActionClick;
|
||||
final bool calendarEventReplying;
|
||||
final EventMethod? eventMethod;
|
||||
final AttendanceStatus? attendanceStatus;
|
||||
final VoidCallback? onMailToAttendeesAction;
|
||||
|
||||
@@ -22,6 +25,7 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
|
||||
super.key,
|
||||
required this.onCalendarEventReplyActionClick,
|
||||
required this.calendarEventReplying,
|
||||
required this.eventMethod,
|
||||
this.margin,
|
||||
this.attendanceStatus,
|
||||
this.onMailToAttendeesAction,
|
||||
@@ -39,6 +43,7 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
|
||||
spacing: CalendarEventActionButtonWidgetStyles.space,
|
||||
runSpacing: CalendarEventActionButtonWidgetStyles.space,
|
||||
children: EventActionType.values
|
||||
.validActionsOfEventMethod(eventMethod)
|
||||
.map((action) => AbsorbPointer(
|
||||
absorbing: _getCallbackFunction(action) == null,
|
||||
child: TMailButtonWidget(
|
||||
@@ -99,6 +104,7 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
|
||||
|
||||
return CalendarEventActionButtonWidgetStyles.backgroundColor;
|
||||
case EventActionType.mailToAttendees:
|
||||
case EventActionType.acceptCounter:
|
||||
return CalendarEventActionButtonWidgetStyles.backgroundColor;
|
||||
}
|
||||
}
|
||||
@@ -124,6 +130,7 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
|
||||
|
||||
return CalendarEventActionButtonWidgetStyles.textColor;
|
||||
case EventActionType.mailToAttendees:
|
||||
case EventActionType.acceptCounter:
|
||||
return CalendarEventActionButtonWidgetStyles.textColor;
|
||||
}
|
||||
}
|
||||
@@ -149,6 +156,7 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
|
||||
|
||||
return CalendarEventActionButtonWidgetStyles.textColor;
|
||||
case EventActionType.mailToAttendees:
|
||||
case EventActionType.acceptCounter:
|
||||
return CalendarEventActionButtonWidgetStyles.textColor;
|
||||
}
|
||||
}
|
||||
@@ -160,6 +168,8 @@ class CalendarEventActionButtonWidget extends StatelessWidget {
|
||||
return null;
|
||||
}
|
||||
return () => onCalendarEventReplyActionClick(eventActionType);
|
||||
case EventActionType.acceptCounter:
|
||||
return () => onCalendarEventReplyActionClick(eventActionType);
|
||||
case EventActionType.maybe:
|
||||
if (attendanceStatus == AttendanceStatus.tentativelyAccepted || calendarEventReplying) {
|
||||
return null;
|
||||
|
||||
+6
-3
@@ -16,7 +16,6 @@ import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_time_information_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/calendar_event/event_title_widget.dart';
|
||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_sender_builder.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
import 'package:tmail_ui_user/main/utils/app_utils.dart';
|
||||
|
||||
typedef OnOpenNewTabAction = void Function(String link);
|
||||
@@ -33,6 +32,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
final OnMailtoAttendeesAction? onMailtoAttendeesAction;
|
||||
final OnOpenEmailAddressDetailAction? openEmailAddressDetailAction;
|
||||
final bool isFree;
|
||||
final List<String> listEmailAddressSender;
|
||||
|
||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||
|
||||
@@ -47,6 +47,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
this.attendanceStatus,
|
||||
this.onMailtoAttendeesAction,
|
||||
this.openEmailAddressDetailAction,
|
||||
this.listEmailAddressSender = const [],
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -107,7 +108,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
fontWeight: FontWeight.w700
|
||||
),
|
||||
),
|
||||
TextSpan(text: AppLocalizations.of(context).invitationMessageCalendarInformation)
|
||||
TextSpan(text: calendarEvent.getTitleEventAction(context, listEmailAddressSender))
|
||||
]
|
||||
)
|
||||
),
|
||||
@@ -142,6 +143,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
CalendarEventActionButtonWidget(
|
||||
margin: EdgeInsetsDirectional.zero,
|
||||
onCalendarEventReplyActionClick: onCalendarEventReplyActionClick,
|
||||
eventMethod: calendarEvent.method,
|
||||
calendarEventReplying: calendarEventReplying,
|
||||
attendanceStatus: attendanceStatus,
|
||||
onMailToAttendeesAction: () => onMailtoAttendeesAction?.call(
|
||||
@@ -193,7 +195,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
fontWeight: FontWeight.w700
|
||||
),
|
||||
),
|
||||
TextSpan(text: AppLocalizations.of(context).invitationMessageCalendarInformation)
|
||||
TextSpan(text: calendarEvent.getTitleEventAction(context, listEmailAddressSender))
|
||||
]
|
||||
)
|
||||
),
|
||||
@@ -228,6 +230,7 @@ class CalendarEventInformationWidget extends StatelessWidget {
|
||||
CalendarEventActionButtonWidget(
|
||||
margin: EdgeInsetsDirectional.zero,
|
||||
onCalendarEventReplyActionClick: onCalendarEventReplyActionClick,
|
||||
eventMethod: calendarEvent.method,
|
||||
calendarEventReplying: calendarEventReplying,
|
||||
attendanceStatus: attendanceStatus,
|
||||
onMailToAttendeesAction: () => onMailtoAttendeesAction?.call(
|
||||
|
||||
Reference in New Issue
Block a user