TF-801 Add presentation layer for get all vacation

This commit is contained in:
dab246
2022-08-17 17:37:18 +07:00
committed by Dat H. Pham
parent 8ab4e7bfc0
commit aa139eb112
33 changed files with 1240 additions and 38 deletions
@@ -8,9 +8,7 @@ enum AccountMenuItem {
languageAndRegion,
emailRules,
forward,
}
extension AccountMenuItemExtension on AccountMenuItem {
vacation;
String getIcon(ImagePaths imagePaths) {
switch(this) {
@@ -22,6 +20,8 @@ extension AccountMenuItemExtension on AccountMenuItem {
return imagePaths.icEmailRules;
case AccountMenuItem.forward:
return imagePaths.icForward;
case AccountMenuItem.configuration:
return imagePaths.icConfiguration;
}
}
@@ -35,6 +35,8 @@ extension AccountMenuItemExtension on AccountMenuItem {
return AppLocalizations.of(context).emailRules;
case AccountMenuItem.forward:
return AppLocalizations.of(context).forwarding;
case AccountMenuItem.configuration:
return AppLocalizations.of(context).configuration;
}
}
}
@@ -0,0 +1,13 @@
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
enum ConfigurationTabType {
vacation;
String getTitle(BuildContext context) {
switch(this) {
case ConfigurationTabType.vacation:
return AppLocalizations.of(context).vacation;
}
}
}
@@ -0,0 +1,17 @@
import 'package:flutter/widgets.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
enum DateType {
start,
end;
String getTitle(BuildContext context) {
switch(this) {
case DateType.start:
return AppLocalizations.of(context).startDate;
case DateType.end:
return AppLocalizations.of(context).endDate;
}
}
}
@@ -0,0 +1,47 @@
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/vacation/vacation_responder_status.dart';
class VacationPresentation {
final VacationResponderStatus status;
final DateTime? startDate;
final TimeOfDay? startTime;
final DateTime? endDate;
final TimeOfDay? endTime;
final String? messageBody;
final bool vacationStopEnabled;
VacationPresentation({
this.status = VacationResponderStatus.deactivated,
this.startDate,
this.startTime,
this.endDate,
this.endTime,
this.messageBody,
this.vacationStopEnabled = false,
});
factory VacationPresentation.initialize() {
return VacationPresentation();
}
VacationPresentation copyWidth({
VacationResponderStatus? status,
DateTime? startDate,
TimeOfDay? startTime,
DateTime? endDate,
TimeOfDay? endTime,
String? messageBody,
bool? vacationStopEnabled,
}) {
return VacationPresentation(
status: status ?? this.status,
startDate: startDate ?? this.startDate,
startTime: startTime ?? this.startTime,
endDate: endDate ?? this.endDate,
endTime: endTime ?? this.endTime,
messageBody: messageBody ?? this.messageBody,
vacationStopEnabled: vacationStopEnabled ?? this.vacationStopEnabled
);
}
}
@@ -0,0 +1,17 @@
import 'package:flutter/widgets.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
enum VacationResponderStatus {
activated,
deactivated;
String getTitle(BuildContext context) {
switch(this) {
case VacationResponderStatus.activated:
return AppLocalizations.of(context).activated;
case VacationResponderStatus.deactivated:
return AppLocalizations.of(context).deactivated;
}
}
}