78 lines
2.7 KiB
Dart
78 lines
2.7 KiB
Dart
|
|
import 'package:equatable/equatable.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:jmap_dart_client/jmap/core/patch_object.dart';
|
|
import 'package:model/extensions/keyword_identifier_extension.dart';
|
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
|
|
|
enum EventActionType {
|
|
yes,
|
|
maybe,
|
|
no,
|
|
mailToAttendees;
|
|
|
|
String getLabelButton(BuildContext context) {
|
|
switch(this) {
|
|
case EventActionType.yes:
|
|
return AppLocalizations.of(context).yes;
|
|
case EventActionType.maybe:
|
|
return AppLocalizations.of(context).maybe;
|
|
case EventActionType.no:
|
|
return AppLocalizations.of(context).no;
|
|
case EventActionType.mailToAttendees:
|
|
return AppLocalizations.of(context).mailToAttendees;
|
|
}
|
|
}
|
|
|
|
PatchObject generateEventAttendanceStatusActionPath() {
|
|
switch(this) {
|
|
case EventActionType.yes:
|
|
return PatchObject({
|
|
KeyWordIdentifierExtension.acceptedEventAttendance.generatePath(): true,
|
|
KeyWordIdentifierExtension.tentativelyAcceptedEventAttendance.generatePath(): null,
|
|
KeyWordIdentifierExtension.rejectedEventAttendance.generatePath(): null,
|
|
});
|
|
case EventActionType.maybe:
|
|
return PatchObject({
|
|
KeyWordIdentifierExtension.acceptedEventAttendance.generatePath(): null,
|
|
KeyWordIdentifierExtension.tentativelyAcceptedEventAttendance.generatePath(): true,
|
|
KeyWordIdentifierExtension.rejectedEventAttendance.generatePath(): null,
|
|
});
|
|
case EventActionType.no:
|
|
return PatchObject({
|
|
KeyWordIdentifierExtension.acceptedEventAttendance.generatePath(): null,
|
|
KeyWordIdentifierExtension.tentativelyAcceptedEventAttendance.generatePath(): null,
|
|
KeyWordIdentifierExtension.rejectedEventAttendance.generatePath(): true,
|
|
});
|
|
case EventActionType.mailToAttendees:
|
|
return PatchObject({});
|
|
}
|
|
}
|
|
|
|
String getToastMessageSuccess(BuildContext context) {
|
|
switch(this) {
|
|
case EventActionType.yes:
|
|
return AppLocalizations.of(context).youWillAttendThisMeeting;
|
|
case EventActionType.maybe:
|
|
return AppLocalizations.of(context).youMayAttendThisMeeting;
|
|
case EventActionType.no:
|
|
return AppLocalizations.of(context).youWillNotAttendThisMeeting;
|
|
case EventActionType.mailToAttendees:
|
|
return '';
|
|
}
|
|
}
|
|
}
|
|
|
|
class EventAction with EquatableMixin {
|
|
final EventActionType actionType;
|
|
final String link;
|
|
|
|
EventAction(this.actionType, this.link);
|
|
|
|
factory EventAction.mailToAttendees() {
|
|
return EventAction(EventActionType.mailToAttendees, '');
|
|
}
|
|
|
|
@override
|
|
List<Object?> get props => [actionType, link];
|
|
} |