TF-3589 Calendar event attendance status

This commit is contained in:
DatDang
2025-04-03 13:38:51 +07:00
committed by Dat H. Pham
parent 5c163e9676
commit ad05c68453
26 changed files with 208 additions and 471 deletions
@@ -0,0 +1,21 @@
import 'package:core/presentation/state/success.dart';
import 'package:jmap_dart_client/jmap/mail/calendar/attendance/calendar_event_attendance.dart';
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_accept_state.dart';
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_maybe_state.dart';
import 'package:tmail_ui_user/features/email/domain/state/calendar_event_reject_state.dart';
import 'package:tmail_ui_user/features/email/domain/state/parse_calendar_event_state.dart';
import 'package:tmail_ui_user/features/email/presentation/controller/single_email_controller.dart';
extension UpdateAttendanceStatusExtension on SingleEmailController {
void updateAttendanceStatus(UIState viewState) {
attendanceStatus.value = switch (viewState) {
ParseCalendarEventSuccess(
blobCalendarEventList: final blobCalendarEventList,
) => blobCalendarEventList.firstOrNull?.attendanceStatus,
CalendarEventAccepted() => AttendanceStatus.accepted,
CalendarEventMaybeSuccess() => AttendanceStatus.tentativelyAccepted,
CalendarEventRejected() => AttendanceStatus.rejected,
_ => attendanceStatus.value,
};
}
}