diff --git a/lib/features/base/mixin/view_as_dialog_action_mixin.dart b/lib/features/base/mixin/view_as_dialog_action_mixin.dart index b7e87d79e..413852b7a 100644 --- a/lib/features/base/mixin/view_as_dialog_action_mixin.dart +++ b/lib/features/base/mixin/view_as_dialog_action_mixin.dart @@ -1,5 +1,4 @@ -import 'package:core/utils/app_logger.dart'; import 'package:flutter/material.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:model/mailbox/presentation_mailbox.dart'; @@ -16,6 +15,9 @@ import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_crea import 'package:tmail_ui_user/features/mailbox_creator/presentation/mailbox_creator_view.dart'; import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/mailbox_creator_arguments.dart'; import 'package:tmail_ui_user/features/mailbox_creator/presentation/model/new_mailbox_arguments.dart'; +import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/rules_filter_creator_arguments.dart'; +import 'package:tmail_ui_user/features/rules_filter_creator/presentation/rules_filter_creator_bindings.dart'; +import 'package:tmail_ui_user/features/rules_filter_creator/presentation/rules_filter_creator_view.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; mixin ViewAsDialogActionMixin { @@ -113,7 +115,6 @@ mixin ViewAsDialogActionMixin { required IdentityCreatorArguments arguments, required Function(dynamic) onCreatedIdentity }) { - log('ViewAsDialogActionMixin::showDialogIdentityCreator(): '); IdentityCreatorBindings().dependencies(); showGeneralDialog( @@ -136,4 +137,32 @@ mixin ViewAsDialogActionMixin { }); }); } + + void showDialogRuleFilterCreator({ + required BuildContext context, + required RulesFilterCreatorArguments arguments, + required Function(dynamic) onCreatedRuleFilter + }) { + RulesFilterCreatorBindings().dependencies(); + + showGeneralDialog( + context: context, + barrierDismissible: true, + barrierLabel: '', + barrierColor: Colors.black.withAlpha(24), + pageBuilder: (context, animation, secondaryAnimation) { + return RuleFilterCreatorView.fromArguments( + arguments, + onDismissCallback: () { + RulesFilterCreatorBindings().dispose(); + popBack(); + }, + onCreatedRuleFilterCallback: (args) { + RulesFilterCreatorBindings().dispose(); + popBack(); + + onCreatedRuleFilter.call(args); + }); + }); + } } \ No newline at end of file diff --git a/lib/features/manage_account/presentation/email_rules/email_rules_controller.dart b/lib/features/manage_account/presentation/email_rules/email_rules_controller.dart index 2664cf6aa..6692205a4 100644 --- a/lib/features/manage_account/presentation/email_rules/email_rules_controller.dart +++ b/lib/features/manage_account/presentation/email_rules/email_rules_controller.dart @@ -4,8 +4,7 @@ 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:core/utils/app_logger.dart'; -import 'package:flutter/foundation.dart'; +import 'package:core/utils/build_utils.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; @@ -28,7 +27,6 @@ import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/w import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/creator_action_type.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/rules_filter_creator_arguments.dart'; -import 'package:tmail_ui_user/features/rules_filter_creator/presentation/rules_filter_creator_bindings.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; import 'package:tmail_ui_user/main/routes/app_routes.dart'; @@ -47,8 +45,6 @@ class EmailRulesController extends BaseController { final listEmailRule = [].obs; - final rulesFilterCreatorArguments = Rxn(); - EmailRulesController( this._getAllRulesInteractor, this._deleteEmailRuleInteractor, @@ -82,21 +78,35 @@ class EmailRulesController extends BaseController { super.onInit(); } - void goToCreateNewRule() async { + void goToCreateNewRule(BuildContext context) async { final accountId = _accountDashBoardController.accountId.value; if (accountId != null) { - rulesFilterCreatorArguments.value = RulesFilterCreatorArguments(accountId); - if(kIsWeb) { - _openRulesFilterCreatorOverlay(); + final arguments = RulesFilterCreatorArguments( + accountId, + listEmailRule: listEmailRule); + + if (BuildUtils.isWeb) { + showDialogRuleFilterCreator( + context: context, + arguments: arguments, + onCreatedRuleFilter: (arguments) { + if (arguments is CreateNewEmailRuleFilterRequest) { + _createNewRuleFilterAction(accountId, arguments); + } + }); } else { - push( - AppRoutes.rulesFilterCreator, - ); + final newRuleFilterRequest = await push( + AppRoutes.rulesFilterCreator, + arguments: arguments); + + if (newRuleFilterRequest is CreateNewEmailRuleFilterRequest) { + _createNewRuleFilterAction(accountId, newRuleFilterRequest); + } } } } - void createNewRuleFilterAction( + void _createNewRuleFilterAction( AccountId accountId, CreateNewEmailRuleFilterRequest ruleFilterRequest ) async { @@ -113,31 +123,42 @@ class EmailRulesController extends BaseController { message: AppLocalizations.of(currentContext!).newFilterWasCreated, icon: _imagePaths.icSelected); } - log('EmailRulesController::_createNewRuleFilterSuccess(): ${success.newListRules}'); listEmailRule.value = success.newListRules; listEmailRule.refresh(); } } - void editEmailRule(TMailRule rule) async { + void editEmailRule(BuildContext context, TMailRule rule) async { final accountId = _accountDashBoardController.accountId.value; if (accountId != null) { - rulesFilterCreatorArguments.value = RulesFilterCreatorArguments( + final arguments = RulesFilterCreatorArguments( accountId, actionType: CreatorActionType.edit, tMailRule: rule, - ); - if(kIsWeb) { - _openRulesFilterCreatorOverlay(); + listEmailRule: listEmailRule); + + if (BuildUtils.isWeb) { + showDialogRuleFilterCreator( + context: context, + arguments: arguments, + onCreatedRuleFilter: (arguments) { + if (arguments is EditEmailRuleFilterRequest) { + _editEmailRuleFilterAction(accountId, arguments); + } + }); } else { - push( - AppRoutes.rulesFilterCreator, - ); + final newRuleFilterRequest = await push( + AppRoutes.rulesFilterCreator, + arguments: arguments); + + if (newRuleFilterRequest is EditEmailRuleFilterRequest) { + _editEmailRuleFilterAction(accountId, newRuleFilterRequest); + } } } } - void editEmailRuleFilterAction( + void _editEmailRuleFilterAction( AccountId accountId, EditEmailRuleFilterRequest ruleFilterRequest ) { @@ -152,7 +173,6 @@ class EmailRulesController extends BaseController { message: AppLocalizations.of(currentContext!).yourFilterHasBeenUpdated, icon: _imagePaths.icSelected); } - log('EmailRulesController::_editEmailRuleFilterSuccess(): ${success.listRulesUpdated}'); listEmailRule.value = success.listRulesUpdated; listEmailRule.refresh(); } @@ -225,11 +245,6 @@ class EmailRulesController extends BaseController { consumeState(_getAllRulesInteractor.execute(_accountDashBoardController.accountId.value!)); } - void _openRulesFilterCreatorOverlay() { - RulesFilterCreatorBindings().dependencies(); - _accountDashBoardController.rulesFilterCreatorIsActive.toggle(); - } - void openEditRuleMenuAction(BuildContext context, TMailRule rule) { openContextMenuAction( context, @@ -267,7 +282,7 @@ class EmailRulesController extends BaseController { iconRightPadding: const EdgeInsets.only(right: 12)) ..onActionClick((rule) { popBack(); - editEmailRule(rule); + editEmailRule(context, rule); })) .build(); } diff --git a/lib/features/manage_account/presentation/email_rules/email_rules_view.dart b/lib/features/manage_account/presentation/email_rules/email_rules_view.dart index c4142f084..39f074bd2 100644 --- a/lib/features/manage_account/presentation/email_rules/email_rules_view.dart +++ b/lib/features/manage_account/presentation/email_rules/email_rules_view.dart @@ -30,7 +30,7 @@ class EmailRulesView extends GetWidget with AppLoaderMixin EmailRulesHeaderWidget( imagePaths: _imagePaths, responsiveUtils: _responsiveUtils, - createRule: () => controller.goToCreateNewRule(), + createRule: () => controller.goToCreateNewRule(context), ), SizedBox(height: _responsiveUtils.isWebDesktop(context) ? 24 : 16), _buildLoadingView(), diff --git a/lib/features/manage_account/presentation/email_rules/widgets/email_rule_item_widget.dart b/lib/features/manage_account/presentation/email_rules/widgets/email_rule_item_widget.dart index 6a5e2a7c5..ae2ab5658 100644 --- a/lib/features/manage_account/presentation/email_rules/widgets/email_rule_item_widget.dart +++ b/lib/features/manage_account/presentation/email_rules/widgets/email_rule_item_widget.dart @@ -41,7 +41,7 @@ class EmailRulesItemWidget extends StatelessWidget { fit: BoxFit.fill, ), onTap: () { - _emailRuleController.editEmailRule(rule); + _emailRuleController.editEmailRule(context, rule); }), if (!_responsiveUtils.isMobile(context)) buildIconWeb( diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart index d7d86127a..bacdd254c 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_controller.dart @@ -53,7 +53,6 @@ class ManageAccountDashBoardController extends ReloadableController { final vacationResponse = Rxn(); final emailsForwardCreatorIsActive = false.obs; - final rulesFilterCreatorIsActive = false.obs; ManageAccountDashBoardController( LogoutOidcInteractor logoutOidcInteractor, diff --git a/lib/features/manage_account/presentation/manage_account_dashboard_view.dart b/lib/features/manage_account/presentation/manage_account_dashboard_view.dart index 543bb91a8..a0429f761 100644 --- a/lib/features/manage_account/presentation/manage_account_dashboard_view.dart +++ b/lib/features/manage_account/presentation/manage_account_dashboard_view.dart @@ -15,7 +15,6 @@ import 'package:tmail_ui_user/features/manage_account/presentation/menu/settings import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/profiles/profiles_view.dart'; import 'package:tmail_ui_user/features/manage_account/presentation/vacation/vacation_view.dart'; -import 'package:tmail_ui_user/features/rules_filter_creator/presentation/rules_filter_creator_view.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; @@ -128,8 +127,6 @@ class ManageAccountDashBoardView extends GetWidget? listEmailRule; RulesFilterCreatorArguments(this.accountId, { this.actionType = CreatorActionType.create, - this.tMailRule + this.tMailRule, + this.listEmailRule }); @override diff --git a/lib/features/rules_filter_creator/presentation/rules_filter_creator_bindings.dart b/lib/features/rules_filter_creator/presentation/rules_filter_creator_bindings.dart index 36215d189..8f1e4e707 100644 --- a/lib/features/rules_filter_creator/presentation/rules_filter_creator_bindings.dart +++ b/lib/features/rules_filter_creator/presentation/rules_filter_creator_bindings.dart @@ -72,4 +72,8 @@ class RulesFilterCreatorBindings extends BaseBindings { Get.find(), )); } + + void dispose() { + Get.delete(); + } } \ No newline at end of file diff --git a/lib/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart b/lib/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart index 4ebc3af5e..24702cc0e 100644 --- a/lib/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart +++ b/lib/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart @@ -1,10 +1,14 @@ -import 'package:core/core.dart'; +import 'package:core/presentation/extensions/color_extension.dart'; +import 'package:core/presentation/state/failure.dart'; +import 'package:core/presentation/state/success.dart'; +import 'package:core/presentation/utils/app_toast.dart'; +import 'package:core/utils/build_utils.dart'; import 'package:dartz/dartz.dart'; import 'package:flutter/cupertino.dart'; -import 'package:flutter/foundation.dart'; import 'package:get/get.dart'; -import 'package:model/model.dart'; +import 'package:jmap_dart_client/jmap/account_id.dart'; +import 'package:model/mailbox/presentation_mailbox.dart'; import 'package:rule_filter/rule_filter/rule_action.dart'; import 'package:rule_filter/rule_filter/rule_append_in.dart'; import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition; @@ -21,14 +25,15 @@ import 'package:tmail_ui_user/features/mailbox_creator/presentation/extensions/v import 'package:tmail_ui_user/features/manage_account/data/extensions/list_tmail_rule_extensions.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/create_new_email_rule_filter_request.dart'; import 'package:tmail_ui_user/features/manage_account/domain/model/edit_email_rule_filter_request.dart'; -import 'package:tmail_ui_user/features/manage_account/presentation/email_rules/email_rules_controller.dart'; -import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/creator_action_type.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/email_rule_filter_action.dart'; +import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/rules_filter_creator_arguments.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; import 'package:tmail_ui_user/main/routes/app_routes.dart'; import 'package:tmail_ui_user/main/routes/route_navigation.dart'; +typedef OnCreatedRuleFilterCallback = Function(dynamic arguments); + class RulesFilterCreatorController extends BaseMailboxController { final _appToast = Get.find(); @@ -43,54 +48,53 @@ class RulesFilterCreatorController extends BaseMailboxController { final ruleConditionComparatorSelected = Rxn(); final emailRuleFilterActionSelected = Rxn(); final mailboxSelected = Rxn(); + final actionType = CreatorActionType.create.obs; - final inputRuleNameController = TextEditingController(); - final inputConditionValueController = TextEditingController(); - final inputRuleNameFocusNode = FocusNode(); - final inputRuleConditionFocusNode = FocusNode(); - - final _accountDashBoardController = Get.find(); - final _emailRulesController = Get.find(); - - late Worker rulesFilterCreatorIsActiveWorker; - - get actionType => _emailRulesController.rulesFilterCreatorArguments.value!.actionType; - - get _accountId => _emailRulesController.rulesFilterCreatorArguments.value!.accountId; - - get _currentTMailRule => _emailRulesController.rulesFilterCreatorArguments.value!.tMailRule; + TextEditingController? inputRuleNameController; + TextEditingController? inputConditionValueController; + FocusNode? inputRuleNameFocusNode; + FocusNode? inputRuleConditionFocusNode; String? _newRuleName; String? _newRuleConditionValue; + RulesFilterCreatorArguments? arguments; + OnCreatedRuleFilterCallback? onCreatedRuleFilterCallback; + VoidCallback? onDismissRuleFilterCreator; + AccountId? _accountId; + TMailRule? _currentTMailRule; + List? _listEmailRule; + RulesFilterCreatorController( this._verifyNameInteractor, this._getAllMailboxInteractor, treeBuilder ) : super(treeBuilder); - void _initWorker() { - rulesFilterCreatorIsActiveWorker = ever(_accountDashBoardController.rulesFilterCreatorIsActive, (rulesFilterCreatorIsActive) { - if (rulesFilterCreatorIsActive == true) { - _setUpDefaultValueRuleFilter(); - } - }); + @override + void onInit() { + super.onInit(); + inputRuleNameController = TextEditingController(); + inputConditionValueController = TextEditingController(); + inputRuleNameFocusNode = FocusNode(); + inputRuleConditionFocusNode = FocusNode(); } @override void onReady() { - _initWorker(); - _setUpDefaultValueRuleFilter(); super.onReady(); + if (arguments != null) { + _accountId = arguments!.accountId; + _currentTMailRule = arguments!.tMailRule; + _listEmailRule = arguments!.listEmailRule; + actionType.value = arguments!.actionType; + _setUpDefaultValueRuleFilter(); + } } @override void onClose() { - inputRuleNameFocusNode.dispose(); - inputRuleConditionFocusNode.dispose(); - inputRuleNameController.dispose(); - inputConditionValueController.dispose(); - rulesFilterCreatorIsActiveWorker.dispose(); + _disposeWidget(); super.onClose(); } @@ -114,7 +118,7 @@ class RulesFilterCreatorController extends BaseMailboxController { void onError(error) {} void _setUpDefaultValueRuleFilter() { - switch(actionType) { + switch(actionType.value) { case CreatorActionType.create: ruleConditionFieldSelected.value = rule_condition.Field.from; ruleConditionComparatorSelected.value = rule_condition.Comparator.contains; @@ -133,11 +137,11 @@ class RulesFilterCreatorController extends BaseMailboxController { } break; } - inputRuleNameFocusNode.requestFocus(); + inputRuleNameFocusNode?.requestFocus(); } - void _setValueInputField(TextEditingController controller, String value) { - controller.value = controller.value.copyWith( + void _setValueInputField(TextEditingController? controller, String value) { + controller?.value = controller.value.copyWith( text: value, selection: TextSelection.collapsed(offset: value.length)); } @@ -227,23 +231,20 @@ class RulesFilterCreatorController extends BaseMailboxController { final errorName = _getErrorStringByInputValue(context, _newRuleName); if (errorName?.isNotEmpty == true) { - log('RulesFilterCreatorController::createNewRuleFilter(): errorName: $errorName'); errorRuleName.value = errorName; - inputRuleNameFocusNode.requestFocus(); + inputRuleNameFocusNode?.requestFocus(); return; } final errorCondition = _getErrorStringByInputValue(context, _newRuleConditionValue); if (errorCondition?.isNotEmpty == true) { - log('RulesFilterCreatorController::createNewRuleFilter(): errorCondition: $errorCondition'); errorRuleConditionValue.value = errorCondition; - inputRuleConditionFocusNode.requestFocus(); + inputRuleConditionFocusNode?.requestFocus(); return; } final errorAction = _getErrorStringByInputValue(context, mailboxSelected.value?.name?.name); if (errorAction?.isNotEmpty == true) { - log('RulesFilterCreatorController::createNewRuleFilter(): errorAction: $errorAction'); errorRuleActionValue.value = errorAction; _appToast.showToastWithIcon( currentOverlayContext!, @@ -276,44 +277,54 @@ class RulesFilterCreatorController extends BaseMailboxController { value: _newRuleConditionValue! )); - log('RulesFilterCreatorController::newTMailRule(): $newTMailRule'); + if (actionType.value == CreatorActionType.create) { + final ruleFilterRequest = CreateNewEmailRuleFilterRequest( + _listEmailRule ?? [], + newTMailRule); - if(actionType == CreatorActionType.create) { - _emailRulesController.createNewRuleFilterAction( - _accountId, - CreateNewEmailRuleFilterRequest( - _emailRulesController.listEmailRule, - newTMailRule, - ), - ); + if (BuildUtils.isWeb) { + _disposeWidget(); + onCreatedRuleFilterCallback?.call(ruleFilterRequest); + } else { + popBack(result: ruleFilterRequest); + } } else { - _emailRulesController.editEmailRuleFilterAction( - _accountId, - EditEmailRuleFilterRequest( - _emailRulesController.listEmailRule.withIds, - newTMailRule, - ), - ); - } + final ruleFilterRequest = EditEmailRuleFilterRequest( + _listEmailRule?.withIds ?? [], + newTMailRule); - _clearAll(); - if(kIsWeb) { - _accountDashBoardController.rulesFilterCreatorIsActive.toggle(); - } else { - popBack(); + if (BuildUtils.isWeb) { + _disposeWidget(); + onCreatedRuleFilterCallback?.call(ruleFilterRequest); + } else { + popBack(result: ruleFilterRequest); + } } } void _clearAll() { - inputRuleNameController.clear(); - inputConditionValueController.clear(); + inputRuleNameController?.clear(); + inputConditionValueController?.clear(); + } + + void _disposeWidget() { + inputRuleNameFocusNode?.dispose(); + inputRuleNameFocusNode = null; + inputRuleConditionFocusNode?.dispose(); + inputRuleConditionFocusNode = null; + inputRuleNameController?.dispose(); + inputRuleNameController = null; + inputConditionValueController?.dispose(); + inputConditionValueController = null; } void closeView(BuildContext context) { + _clearAll(); FocusScope.of(context).unfocus(); - if(kIsWeb) { - _clearAll(); - _accountDashBoardController.rulesFilterCreatorIsActive.toggle(); + + if (BuildUtils.isWeb) { + _disposeWidget(); + onDismissRuleFilterCreator?.call(); } else { popBack(); } diff --git a/lib/features/rules_filter_creator/presentation/rules_filter_creator_view.dart b/lib/features/rules_filter_creator/presentation/rules_filter_creator_view.dart index 9bb526241..f008714d4 100644 --- a/lib/features/rules_filter_creator/presentation/rules_filter_creator_view.dart +++ b/lib/features/rules_filter_creator/presentation/rules_filter_creator_view.dart @@ -7,6 +7,7 @@ import 'package:rule_filter/rule_filter/rule_condition.dart' as rule_condition; import 'package:tmail_ui_user/features/base/widget/drop_down_button_widget.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/extensions/rule_condition_extensions.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/email_rule_filter_action.dart'; +import 'package:tmail_ui_user/features/rules_filter_creator/presentation/model/rules_filter_creator_arguments.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/rules_filter_creator_controller.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_action_bottom_sheet_action_tile_builder.dart'; import 'package:tmail_ui_user/features/rules_filter_creator/presentation/widgets/rule_condition_comparator_bottom_sheet_action_tile_builder.dart'; @@ -21,14 +22,32 @@ class RuleFilterCreatorView extends GetWidget { final _imagePaths = Get.find(); final _responsiveUtils = Get.find(); - RuleFilterCreatorView({Key? key}) : super(key: key); + @override + final controller = Get.find(); + + RuleFilterCreatorView({Key? key}) : super(key: key) { + controller.arguments = Get.arguments; + } + + RuleFilterCreatorView.fromArguments( + RulesFilterCreatorArguments arguments, { + Key? key, + OnCreatedRuleFilterCallback? onCreatedRuleFilterCallback, + VoidCallback? onDismissCallback + }) : super(key: key) { + controller.arguments = arguments; + controller.onCreatedRuleFilterCallback = onCreatedRuleFilterCallback; + controller.onDismissRuleFilterCreator = onDismissCallback; + } @override Widget build(BuildContext context) { return ResponsiveWidget( responsiveUtils: _responsiveUtils, mobile: Scaffold( - backgroundColor: Colors.black38, + backgroundColor: BuildUtils.isWeb + ? Colors.black.withAlpha(24) + : Colors.black38, body: GestureDetector( onTap: () => FocusScope.of(context).unfocus(), child: SafeArea( @@ -53,7 +72,7 @@ class RuleFilterCreatorView extends GetWidget { ) ), tablet: Scaffold( - backgroundColor: Colors.black38, + backgroundColor: Colors.black.withAlpha(24), body: GestureDetector( onTap: () => FocusScope.of(context).unfocus(), child: Align(alignment: Alignment.bottomCenter, child: Container( @@ -75,7 +94,7 @@ class RuleFilterCreatorView extends GetWidget { ) ), desktop: Scaffold( - backgroundColor: Colors.black38, + backgroundColor: Colors.black.withAlpha(24), body: GestureDetector( onTap: () => FocusScope.of(context).unfocus(), child: Align(alignment: Alignment.center, child: Card( @@ -107,7 +126,7 @@ class RuleFilterCreatorView extends GetWidget { padding: const EdgeInsets.only(top: 16), alignment: Alignment.center, child: Obx(() => Text( - controller.actionType.getTitle(context), + controller.actionType.value.getTitle(context), style: const TextStyle( fontWeight: FontWeight.bold, fontSize: 20, @@ -237,7 +256,7 @@ class RuleFilterCreatorView extends GetWidget { onTap: () => controller.closeView(context)), const SizedBox(width: 12), Obx(() => buildTextButton( - controller.actionType.getActionName(context), + controller.actionType.value.getActionName(context), width: 128, height: 44, backgroundColor: AppColor.colorTextButton, @@ -266,7 +285,7 @@ class RuleFilterCreatorView extends GetWidget { padding: const EdgeInsets.only(top: 16), alignment: Alignment.center, child: Obx(() => Text( - controller.actionType.getTitle(context), + controller.actionType.value.getTitle(context), style: const TextStyle( fontWeight: FontWeight.bold, fontSize: 20, @@ -396,7 +415,7 @@ class RuleFilterCreatorView extends GetWidget { onTap: () => controller.closeView(context))), const SizedBox(width: 12), Expanded(child: Obx(() => buildTextButton( - controller.actionType.getActionName(context), + controller.actionType.value.getActionName(context), width: 128, height: 44, backgroundColor: AppColor.colorTextButton, @@ -425,7 +444,7 @@ class RuleFilterCreatorView extends GetWidget { padding: const EdgeInsets.only(top: 16), alignment: Alignment.center, child: Obx(() => Text( - controller.actionType.getTitle(context), + controller.actionType.value.getTitle(context), style: const TextStyle( fontWeight: FontWeight.bold, fontSize: 20, @@ -585,7 +604,7 @@ class RuleFilterCreatorView extends GetWidget { onTap: () => controller.closeView(context))), const SizedBox(width: 12), Expanded(child: Obx(() => buildTextButton( - controller.actionType.getActionName(context), + controller.actionType.value.getActionName(context), width: 128, height: 44, backgroundColor: AppColor.colorTextButton, diff --git a/lib/main/pages/app_pages.dart b/lib/main/pages/app_pages.dart index 829cb273b..0641d24bd 100644 --- a/lib/main/pages/app_pages.dart +++ b/lib/main/pages/app_pages.dart @@ -57,6 +57,11 @@ class AppPages { opaque: false, page: () => DeferredWidget(identity_creator.loadLibrary, () => identity_creator.IdentityCreatorView()), binding: IdentityCreatorBindings()), + GetPage( + name: AppRoutes.rulesFilterCreator, + opaque: false, + page: () => DeferredWidget(rules_filter_creator.loadLibrary, () => rules_filter_creator.RuleFilterCreatorView()), + binding: RulesFilterCreatorBindings()), ]; static final pages = [ @@ -81,12 +86,6 @@ class AppPages { page: () => DeferredWidget(manage_account_dashboard.loadLibrary, () => manage_account_dashboard.ManageAccountDashBoardView()), binding: ManageAccountDashBoardBindings()), - GetPage( - name: AppRoutes.rulesFilterCreator, - opaque: false, - page: () => DeferredWidget(rules_filter_creator.loadLibrary, - () => rules_filter_creator.RuleFilterCreatorView()), - binding: RulesFilterCreatorBindings()), GetPage( name: AppRoutes.emailsForwardCreator, opaque: false, diff --git a/lib/main/routes/app_routes.dart b/lib/main/routes/app_routes.dart index 09600929e..7693e9383 100644 --- a/lib/main/routes/app_routes.dart +++ b/lib/main/routes/app_routes.dart @@ -10,6 +10,6 @@ abstract class AppRoutes { static const mailboxCreator = '/mailbox_creator'; static const contact = '/contact'; static const identityCreator = '/identity_creator'; - static const rulesFilterCreator = '$settings/rules_filter_creator'; + static const rulesFilterCreator = '/rules_filter_creator'; static const emailsForwardCreator = '$settings/emails_forward_creator'; } \ No newline at end of file