TF-831: implement Add a new recipient in forwarding
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_bindings.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/add_recipients_in_forwarding_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/delete_recipient_in_forwarding_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_forward_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/forward/forward_controller.dart';
|
||||
@@ -12,6 +13,7 @@ class ForwardBindings extends BaseBindings {
|
||||
Get.lazyPut(() => ForwardController(
|
||||
Get.find<GetForwardInteractor>(),
|
||||
Get.find<DeleteRecipientInForwardingInteractor>(),
|
||||
Get.find<AddRecipientsInForwardingInteractor>(),
|
||||
));
|
||||
}
|
||||
|
||||
@@ -25,6 +27,7 @@ class ForwardBindings extends BaseBindings {
|
||||
void bindingsInteractor() {
|
||||
Get.lazyPut(() => GetForwardInteractor(Get.find<ManageAccountRepository>()));
|
||||
Get.lazyPut(() => DeleteRecipientInForwardingInteractor(Get.find<ManageAccountRepository>()));
|
||||
Get.lazyPut(() => AddRecipientsInForwardingInteractor(Get.find<ManageAccountRepository>()));
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
@@ -4,19 +4,24 @@ import 'package:core/presentation/utils/app_toast.dart';
|
||||
import 'package:core/presentation/utils/responsive_utils.dart';
|
||||
import 'package:core/presentation/views/bottom_popup/confirmation_dialog_action_sheet_builder.dart';
|
||||
import 'package:core/presentation/views/dialog/confirmation_dialog_builder.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:forward/forward/tmail_forward.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:model/extensions/email_address_extension.dart';
|
||||
import 'package:model/mailbox/select_mode.dart';
|
||||
import 'package:pointer_interceptor/pointer_interceptor.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
import 'package:tmail_ui_user/features/emails_forward_creator/presentation/emails_forward_creator_binding.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/add_recipients_in_forwarding_request.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/model/delete_recipient_in_forwarding_request.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/add_recipient_in_forwarding_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/delete_recipient_in_forwarding_state.dart';
|
||||
import 'package:jmap_dart_client/jmap/mail/email/email_address.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
import 'package:tmail_ui_user/features/mails_forward_creator/presentation/model/mails_forward_creator_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/emails_forward_creator/presentation/model/mails_forward_creator_arguments.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/state/get_forward_state.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/add_recipients_in_forwarding_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/delete_recipient_in_forwarding_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_forward_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/tmail_forward_extension.dart';
|
||||
@@ -30,8 +35,9 @@ class ForwardController extends BaseController {
|
||||
|
||||
final GetForwardInteractor _getForwardInteractor;
|
||||
final DeleteRecipientInForwardingInteractor _deleteRecipientInForwardingInteractor;
|
||||
final AddRecipientsInForwardingInteractor _addRecipientsInForwardingInteractor;
|
||||
|
||||
final _accountDashBoardController = Get.find<ManageAccountDashBoardController>();
|
||||
final accountDashBoardController = Get.find<ManageAccountDashBoardController>();
|
||||
final _responsiveUtils = Get.find<ResponsiveUtils>();
|
||||
final _imagePaths = Get.find<ImagePaths>();
|
||||
final _appToast = Get.find<AppToast>();
|
||||
@@ -41,9 +47,12 @@ class ForwardController extends BaseController {
|
||||
|
||||
TMailForward? currentForward;
|
||||
|
||||
final listForwards = <String>[].obs;
|
||||
|
||||
ForwardController(
|
||||
this._getForwardInteractor,
|
||||
this._deleteRecipientInForwardingInteractor,
|
||||
this._addRecipientsInForwardingInteractor,
|
||||
);
|
||||
|
||||
@override
|
||||
@@ -60,6 +69,8 @@ class ForwardController extends BaseController {
|
||||
listRecipientForward.value = currentForward!.listRecipientForward;
|
||||
} else if (success is DeleteRecipientInForwardingSuccess) {
|
||||
_handleDeleteRecipientSuccess(success);
|
||||
} else if (success is AddRecipientsInForwardingSuccess) {
|
||||
_handleAddRecipientsSuccess(success);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -74,7 +85,7 @@ class ForwardController extends BaseController {
|
||||
}
|
||||
|
||||
void _getForward() {
|
||||
consumeState(_getForwardInteractor.execute(_accountDashBoardController.accountId.value!));
|
||||
consumeState(_getForwardInteractor.execute(accountDashBoardController.accountId.value!));
|
||||
}
|
||||
|
||||
void deleteRecipients(BuildContext context, String emailAddress) {
|
||||
@@ -116,7 +127,7 @@ class ForwardController extends BaseController {
|
||||
void _handleDeleteRecipientAction(Set<String> listRecipients) {
|
||||
popBack();
|
||||
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
final accountId = accountDashBoardController.accountId.value;
|
||||
if (accountId != null && currentForward != null) {
|
||||
consumeState(_deleteRecipientInForwardingInteractor.execute(
|
||||
accountId,
|
||||
@@ -217,19 +228,48 @@ class ForwardController extends BaseController {
|
||||
}
|
||||
|
||||
void goToAddEmailsForward() async {
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
final accountId = accountDashBoardController.accountId.value;
|
||||
if (accountId != null) {
|
||||
final listEmail = await push(
|
||||
AppRoutes.EMAILS_FORWARD_CREATOR,
|
||||
arguments: MailsForwardCreatorArguments(accountId, _accountDashBoardController.sessionCurrent.value));
|
||||
if(kIsWeb) {
|
||||
_openMailsForwardCreatorOverlay();
|
||||
} else {
|
||||
final listEmail = await push(
|
||||
AppRoutes.EMAILS_FORWARD_CREATOR,
|
||||
arguments: MailsForwardCreatorArguments(accountId, accountDashBoardController.sessionCurrent.value));
|
||||
|
||||
if (listEmail is List<EmailAddress>) {
|
||||
_addEmailsForward(listEmail);
|
||||
if (listEmail is List<EmailAddress>) {
|
||||
handleAddRecipients(listEmail);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void _addEmailsForward(List<EmailAddress> listEmailAddress) {
|
||||
void _openMailsForwardCreatorOverlay() {
|
||||
EmailsForwardCreatorBindings().dependencies();
|
||||
accountDashBoardController.emailsForwardCreatorIsActive.toggle();
|
||||
}
|
||||
|
||||
void handleAddRecipients(List<EmailAddress> listEmailAddress) {
|
||||
final accountId = accountDashBoardController.accountId.value;
|
||||
final listRecipients = listEmailAddress.map((e) => e.emailAddress).toSet();
|
||||
if (accountId != null && currentForward != null) {
|
||||
consumeState(_addRecipientsInForwardingInteractor.execute(
|
||||
accountId,
|
||||
AddRecipientInForwardingRequest(
|
||||
currentForward: currentForward!,
|
||||
listRecipientAdded: listRecipients)));
|
||||
}
|
||||
}
|
||||
|
||||
void _handleAddRecipientsSuccess(AddRecipientsInForwardingSuccess success) {
|
||||
if (currentOverlayContext != null && currentContext != null) {
|
||||
_appToast.showToastWithIcon(
|
||||
currentOverlayContext!,
|
||||
message: AppLocalizations.of(currentContext!).toastMessageAddRecipientsSuccessfully,
|
||||
icon: _imagePaths.icSelected);
|
||||
}
|
||||
|
||||
currentForward = success.forward;
|
||||
listRecipientForward.value = currentForward!.listRecipientForward;
|
||||
}
|
||||
}
|
||||
+41
-41
@@ -42,49 +42,49 @@ class ForwardHeaderWidget extends StatelessWidget {
|
||||
Widget _buildButtonAddNewEmailsForward(BuildContext context) {
|
||||
if (!responsiveUtils.isMobile(context)) {
|
||||
return (ButtonBuilder(imagePaths.icAddEmailForward)
|
||||
..key(const Key('button_add_emails_forward'))
|
||||
..decoration(BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
color: AppColor.colorTextButton))
|
||||
..paddingIcon(const EdgeInsets.only(right: 8))
|
||||
..iconColor(Colors.white)
|
||||
..maxWidth(130)
|
||||
..size(20)
|
||||
..radiusSplash(10)
|
||||
..padding(const EdgeInsets.symmetric(vertical: 12))
|
||||
..textStyle(const TextStyle(
|
||||
fontSize: 17,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500,
|
||||
))
|
||||
..onPressActionClick(() => addEmailForward.call())
|
||||
..text(
|
||||
AppLocalizations.of(context).addEmailForward,
|
||||
isVertical: false,
|
||||
))
|
||||
.build();
|
||||
..key(const Key('button_add_emails_forward'))
|
||||
..decoration(BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
color: AppColor.colorTextButton))
|
||||
..paddingIcon(const EdgeInsets.only(right: 8))
|
||||
..iconColor(Colors.white)
|
||||
..maxWidth(170)
|
||||
..size(20)
|
||||
..radiusSplash(10)
|
||||
..padding(const EdgeInsets.symmetric(vertical: 12))
|
||||
..textStyle(const TextStyle(
|
||||
fontSize: 17,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500,
|
||||
))
|
||||
..onPressActionClick(() => addEmailForward.call())
|
||||
..text(
|
||||
AppLocalizations.of(context).addRecipients,
|
||||
isVertical: false,
|
||||
))
|
||||
.build();
|
||||
} else {
|
||||
return (ButtonBuilder(imagePaths.icAddEmailForward)
|
||||
..key(const Key('button_add_emails_forward'))
|
||||
..decoration(BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
color: AppColor.colorTextButton))
|
||||
..paddingIcon(const EdgeInsets.only(right: 8))
|
||||
..iconColor(Colors.white)
|
||||
..size(20)
|
||||
..radiusSplash(10)
|
||||
..padding(const EdgeInsets.symmetric(vertical: 12))
|
||||
..textStyle(const TextStyle(
|
||||
fontSize: 17,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500,
|
||||
))
|
||||
..onPressActionClick(() => addEmailForward.call())
|
||||
..text(
|
||||
AppLocalizations.of(context).addEmailForward,
|
||||
isVertical: false,
|
||||
))
|
||||
.build();
|
||||
..key(const Key('button_add_emails_forward'))
|
||||
..decoration(BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
color: AppColor.colorTextButton))
|
||||
..paddingIcon(const EdgeInsets.only(right: 8))
|
||||
..iconColor(Colors.white)
|
||||
..size(20)
|
||||
..radiusSplash(10)
|
||||
..padding(const EdgeInsets.symmetric(vertical: 12))
|
||||
..textStyle(const TextStyle(
|
||||
fontSize: 17,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w500,
|
||||
))
|
||||
..onPressActionClick(() => addEmailForward.call())
|
||||
..text(
|
||||
AppLocalizations.of(context).addRecipients,
|
||||
isVertical: false,
|
||||
))
|
||||
.build();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -44,7 +44,7 @@ class ListEmailForwardsWidget extends GetWidget<ForwardController> {
|
||||
: const EdgeInsets.symmetric(vertical: 13, horizontal: 24),
|
||||
child: Row(children: [
|
||||
Expanded(child: Text(
|
||||
AppLocalizations.of(context).headerEmailsForward,
|
||||
AppLocalizations.of(context).headerRecipients,
|
||||
overflow: CommonTextStyle.defaultTextOverFlow,
|
||||
softWrap: CommonTextStyle.defaultSoftWrap,
|
||||
style: const TextStyle(
|
||||
|
||||
@@ -45,6 +45,8 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
final sessionCurrent = Rxn<Session>();
|
||||
final vacationResponse = Rxn<VacationResponse>();
|
||||
|
||||
final emailsForwardCreatorIsActive = false.obs;
|
||||
|
||||
ManageAccountDashBoardController(
|
||||
LogoutOidcInteractor logoutOidcInteractor,
|
||||
DeleteAuthorityOidcInteractor deleteAuthorityOidcInteractor,
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:core/core.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:tmail_ui_user/features/emails_forward_creator/presentation/emails_forward_creator_view.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/user_setting_popup_menu_mixin.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/extensions/vacation_response_extension.dart';
|
||||
import 'package:tmail_ui_user/features/manage_account/presentation/vacation/widgets/vacation_notification_message_widget.dart';
|
||||
@@ -33,136 +34,144 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
|
||||
});
|
||||
}
|
||||
|
||||
return Scaffold(
|
||||
key: controller.menuDrawerKey,
|
||||
backgroundColor: Colors.white,
|
||||
drawer: ResponsiveWidget(
|
||||
responsiveUtils: _responsiveUtils,
|
||||
mobile: SizedBox(child: ManageAccountMenuView(), width: ResponsiveUtils.defaultSizeDrawer),
|
||||
desktop: const SizedBox.shrink()
|
||||
),
|
||||
drawerEnableOpenDragGesture: !_responsiveUtils.isDesktop(context),
|
||||
body: GestureDetector(
|
||||
onTap: () => FocusScope.of(context).unfocus(),
|
||||
child: ResponsiveWidget(
|
||||
responsiveUtils: _responsiveUtils,
|
||||
desktop: Column(children: [
|
||||
Row(children: [
|
||||
Container(width: 256, color: Colors.white,
|
||||
padding: const EdgeInsets.only(top: 25, bottom: 25, left: 32),
|
||||
child: Row(children: [
|
||||
(SloganBuilder(arrangedByHorizontal: true)
|
||||
..setSloganText(AppLocalizations.of(context).app_name)
|
||||
..setSloganTextAlign(TextAlign.center)
|
||||
..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold))
|
||||
..setSizeLogo(24)
|
||||
..addOnTapCallback(() => controller.backToMailboxDashBoard(context))
|
||||
..setLogo(_imagePaths.icLogoTMail))
|
||||
.build(),
|
||||
Obx(() {
|
||||
if (controller.appInformation.value != null) {
|
||||
return Padding(padding: const EdgeInsets.only(top: 6),
|
||||
child: Text(
|
||||
'v.${controller.appInformation.value!.version}',
|
||||
textAlign: TextAlign.center,
|
||||
style: const TextStyle(fontSize: 13, color: AppColor.colorContentEmail, fontWeight: FontWeight.w500),
|
||||
));
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}),
|
||||
])
|
||||
),
|
||||
Expanded(child: Padding(
|
||||
padding: const EdgeInsets.only(right: 10, top: 16, bottom: 10, left: 48),
|
||||
child: _buildRightHeader(context)))
|
||||
]),
|
||||
Expanded(child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(child: ManageAccountMenuView(), width: _responsiveUtils.defaultSizeMenu),
|
||||
Expanded(child: Container(
|
||||
color: AppColor.colorBgDesktop,
|
||||
child: Column(children: [
|
||||
Obx(() {
|
||||
if (controller.vacationResponse.value?.vacationResponderIsValid == true) {
|
||||
return VacationNotificationMessageWidget(
|
||||
margin: const EdgeInsets.only(
|
||||
top: 16,
|
||||
left: BuildUtils.isWeb ? 24 : 16,
|
||||
right: BuildUtils.isWeb ? 24 : 16),
|
||||
vacationResponse: controller.vacationResponse.value!,
|
||||
action: () => controller.disableVacationResponder());
|
||||
} else if ((controller.vacationResponse.value?.vacationResponderIsWaiting == true
|
||||
|| controller.vacationResponse.value?.vacationResponderIsStopped == true)
|
||||
&& controller.accountMenuItemSelected.value == AccountMenuItem.vacation) {
|
||||
return VacationNotificationMessageWidget(
|
||||
margin: const EdgeInsets.only(
|
||||
top: 16,
|
||||
left: BuildUtils.isWeb ? 24 : 16,
|
||||
right: BuildUtils.isWeb ? 24 : 16),
|
||||
vacationResponse: controller.vacationResponse.value!,
|
||||
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16),
|
||||
backgroundColor: Colors.yellow,
|
||||
fontWeight: FontWeight.normal,
|
||||
leadingIcon: const Padding(
|
||||
padding: EdgeInsets.only(right: 16),
|
||||
child: Icon(Icons.timer, size: 20),
|
||||
));
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}),
|
||||
Expanded(child: _viewDisplayedOfAccountMenuItem())
|
||||
return Obx(
|
||||
() => Stack(
|
||||
children: [
|
||||
Scaffold(
|
||||
key: controller.menuDrawerKey,
|
||||
backgroundColor: Colors.white,
|
||||
drawer: ResponsiveWidget(
|
||||
responsiveUtils: _responsiveUtils,
|
||||
mobile: SizedBox(child: ManageAccountMenuView(), width: ResponsiveUtils.defaultSizeDrawer),
|
||||
desktop: const SizedBox.shrink()
|
||||
),
|
||||
drawerEnableOpenDragGesture: !_responsiveUtils.isDesktop(context),
|
||||
body: GestureDetector(
|
||||
onTap: () => FocusScope.of(context).unfocus(),
|
||||
child: ResponsiveWidget(
|
||||
responsiveUtils: _responsiveUtils,
|
||||
desktop: Column(children: [
|
||||
Row(children: [
|
||||
Container(width: 256, color: Colors.white,
|
||||
padding: const EdgeInsets.only(top: 25, bottom: 25, left: 32),
|
||||
child: Row(children: [
|
||||
(SloganBuilder(arrangedByHorizontal: true)
|
||||
..setSloganText(AppLocalizations.of(context).app_name)
|
||||
..setSloganTextAlign(TextAlign.center)
|
||||
..setSloganTextStyle(const TextStyle(color: Colors.black, fontSize: 20, fontWeight: FontWeight.bold))
|
||||
..setSizeLogo(24)
|
||||
..addOnTapCallback(() => controller.backToMailboxDashBoard(context))
|
||||
..setLogo(_imagePaths.icLogoTMail))
|
||||
.build(),
|
||||
Obx(() {
|
||||
if (controller.appInformation.value != null) {
|
||||
return Padding(padding: const EdgeInsets.only(top: 6),
|
||||
child: Text(
|
||||
'v.${controller.appInformation.value!.version}',
|
||||
textAlign: TextAlign.center,
|
||||
style: const TextStyle(fontSize: 13, color: AppColor.colorContentEmail, fontWeight: FontWeight.w500),
|
||||
));
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}),
|
||||
])
|
||||
),
|
||||
Expanded(child: Padding(
|
||||
padding: const EdgeInsets.only(right: 10, top: 16, bottom: 10, left: 48),
|
||||
child: _buildRightHeader(context)))
|
||||
]),
|
||||
))
|
||||
],
|
||||
))
|
||||
]),
|
||||
mobile: SafeArea(
|
||||
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
Padding(
|
||||
padding: !BuildUtils.isWeb && _responsiveUtils.isPortraitMobile(context)
|
||||
? const EdgeInsets.only(left: 4, right: 8)
|
||||
: const EdgeInsets.only(top: 16, left: 24, right: 32),
|
||||
child: _buildAppbar(context)),
|
||||
Obx(() {
|
||||
if (controller.vacationResponse.value?.vacationResponderIsValid == true) {
|
||||
return VacationNotificationMessageWidget(
|
||||
margin: const EdgeInsets.only(
|
||||
left: BuildUtils.isWeb ? 24 : 16,
|
||||
right: BuildUtils.isWeb ? 24 : 16,
|
||||
top: BuildUtils.isWeb ? 16 : 0),
|
||||
vacationResponse: controller.vacationResponse.value!,
|
||||
action: () => controller.disableVacationResponder());
|
||||
} else if ((controller.vacationResponse.value?.vacationResponderIsWaiting == true
|
||||
|| controller.vacationResponse.value?.vacationResponderIsStopped == true)
|
||||
&& controller.accountMenuItemSelected.value == AccountMenuItem.vacation) {
|
||||
return VacationNotificationMessageWidget(
|
||||
margin: const EdgeInsets.only(
|
||||
left: BuildUtils.isWeb ? 24 : 16,
|
||||
right: BuildUtils.isWeb ? 24 : 16,
|
||||
top: BuildUtils.isWeb ? 16 : 0),
|
||||
vacationResponse: controller.vacationResponse.value!,
|
||||
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16),
|
||||
fontWeight: FontWeight.normal,
|
||||
backgroundColor: Colors.yellow,
|
||||
leadingIcon: const Padding(
|
||||
padding: EdgeInsets.only(right: 16),
|
||||
child: Icon(Icons.timer, size: 20),
|
||||
));
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}),
|
||||
Expanded(child: Padding(
|
||||
padding: !BuildUtils.isWeb && _responsiveUtils.isPortraitMobile(context)
|
||||
? const EdgeInsets.only(left: 8)
|
||||
: const EdgeInsets.only(left: 24),
|
||||
child: _viewDisplayedOfAccountMenuItem()))
|
||||
])
|
||||
)
|
||||
),
|
||||
Expanded(child: Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
SizedBox(child: ManageAccountMenuView(), width: _responsiveUtils.defaultSizeMenu),
|
||||
Expanded(child: Container(
|
||||
color: AppColor.colorBgDesktop,
|
||||
child: Column(children: [
|
||||
Obx(() {
|
||||
if (controller.vacationResponse.value?.vacationResponderIsValid == true) {
|
||||
return VacationNotificationMessageWidget(
|
||||
margin: const EdgeInsets.only(
|
||||
top: 16,
|
||||
left: BuildUtils.isWeb ? 24 : 16,
|
||||
right: BuildUtils.isWeb ? 24 : 16),
|
||||
vacationResponse: controller.vacationResponse.value!,
|
||||
action: () => controller.disableVacationResponder());
|
||||
} else if ((controller.vacationResponse.value?.vacationResponderIsWaiting == true
|
||||
|| controller.vacationResponse.value?.vacationResponderIsStopped == true)
|
||||
&& controller.accountMenuItemSelected.value == AccountMenuItem.vacation) {
|
||||
return VacationNotificationMessageWidget(
|
||||
margin: const EdgeInsets.only(
|
||||
top: 16,
|
||||
left: BuildUtils.isWeb ? 24 : 16,
|
||||
right: BuildUtils.isWeb ? 24 : 16),
|
||||
vacationResponse: controller.vacationResponse.value!,
|
||||
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16),
|
||||
backgroundColor: Colors.yellow,
|
||||
fontWeight: FontWeight.normal,
|
||||
leadingIcon: const Padding(
|
||||
padding: EdgeInsets.only(right: 16),
|
||||
child: Icon(Icons.timer, size: 20),
|
||||
));
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}),
|
||||
Expanded(child: _viewDisplayedOfAccountMenuItem())
|
||||
]),
|
||||
))
|
||||
],
|
||||
))
|
||||
]),
|
||||
mobile: SafeArea(
|
||||
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
|
||||
Padding(
|
||||
padding: !BuildUtils.isWeb && _responsiveUtils.isPortraitMobile(context)
|
||||
? const EdgeInsets.only(left: 4, right: 8)
|
||||
: const EdgeInsets.only(top: 16, left: 24, right: 32),
|
||||
child: _buildAppbar(context)),
|
||||
Obx(() {
|
||||
if (controller.vacationResponse.value?.vacationResponderIsValid == true) {
|
||||
return VacationNotificationMessageWidget(
|
||||
margin: const EdgeInsets.only(
|
||||
left: BuildUtils.isWeb ? 24 : 16,
|
||||
right: BuildUtils.isWeb ? 24 : 16,
|
||||
top: BuildUtils.isWeb ? 16 : 0),
|
||||
vacationResponse: controller.vacationResponse.value!,
|
||||
action: () => controller.disableVacationResponder());
|
||||
} else if ((controller.vacationResponse.value?.vacationResponderIsWaiting == true
|
||||
|| controller.vacationResponse.value?.vacationResponderIsStopped == true)
|
||||
&& controller.accountMenuItemSelected.value == AccountMenuItem.vacation) {
|
||||
return VacationNotificationMessageWidget(
|
||||
margin: const EdgeInsets.only(
|
||||
left: BuildUtils.isWeb ? 24 : 16,
|
||||
right: BuildUtils.isWeb ? 24 : 16,
|
||||
top: BuildUtils.isWeb ? 16 : 0),
|
||||
vacationResponse: controller.vacationResponse.value!,
|
||||
padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 16),
|
||||
fontWeight: FontWeight.normal,
|
||||
backgroundColor: Colors.yellow,
|
||||
leadingIcon: const Padding(
|
||||
padding: EdgeInsets.only(right: 16),
|
||||
child: Icon(Icons.timer, size: 20),
|
||||
));
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
}),
|
||||
Expanded(child: Padding(
|
||||
padding: !BuildUtils.isWeb && _responsiveUtils.isPortraitMobile(context)
|
||||
? const EdgeInsets.only(left: 8)
|
||||
: const EdgeInsets.only(left: 24),
|
||||
child: _viewDisplayedOfAccountMenuItem()))
|
||||
])
|
||||
)
|
||||
),
|
||||
),
|
||||
),
|
||||
if(controller.emailsForwardCreatorIsActive.isTrue)
|
||||
EmailsForwardCreatorView(),
|
||||
] ,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user