TF-1074 Handle go to path /rules_filter_creator

This commit is contained in:
dab246
2022-10-25 10:47:23 +07:00
committed by Dat H. Pham
parent 950a0363bf
commit 5925bf0077
12 changed files with 200 additions and 125 deletions
@@ -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);
});
});
}
}
@@ -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 = <TMailRule>[].obs;
final rulesFilterCreatorArguments = Rxn<RulesFilterCreatorArguments>();
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();
}
@@ -30,7 +30,7 @@ class EmailRulesView extends GetWidget<EmailRulesController> with AppLoaderMixin
EmailRulesHeaderWidget(
imagePaths: _imagePaths,
responsiveUtils: _responsiveUtils,
createRule: () => controller.goToCreateNewRule(),
createRule: () => controller.goToCreateNewRule(context),
),
SizedBox(height: _responsiveUtils.isWebDesktop(context) ? 24 : 16),
_buildLoadingView(),
@@ -41,7 +41,7 @@ class EmailRulesItemWidget extends StatelessWidget {
fit: BoxFit.fill,
),
onTap: () {
_emailRuleController.editEmailRule(rule);
_emailRuleController.editEmailRule(context, rule);
}),
if (!_responsiveUtils.isMobile(context))
buildIconWeb(
@@ -53,7 +53,6 @@ class ManageAccountDashBoardController extends ReloadableController {
final vacationResponse = Rxn<VacationResponse>();
final emailsForwardCreatorIsActive = false.obs;
final rulesFilterCreatorIsActive = false.obs;
ManageAccountDashBoardController(
LogoutOidcInteractor logoutOidcInteractor,
@@ -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<ManageAccountDashBoardControl
),
if(controller.emailsForwardCreatorIsActive.isTrue)
EmailsForwardCreatorView(),
if(controller.rulesFilterCreatorIsActive.isTrue)
RuleFilterCreatorView(),
]
));
}
@@ -8,10 +8,12 @@ class RulesFilterCreatorArguments with EquatableMixin {
final AccountId accountId;
final CreatorActionType actionType;
final TMailRule? tMailRule;
final List<TMailRule>? listEmailRule;
RulesFilterCreatorArguments(this.accountId, {
this.actionType = CreatorActionType.create,
this.tMailRule
this.tMailRule,
this.listEmailRule
});
@override
@@ -72,4 +72,8 @@ class RulesFilterCreatorBindings extends BaseBindings {
Get.find<StateDataSource>(),
));
}
void dispose() {
Get.delete<RulesFilterCreatorController>();
}
}
@@ -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<AppToast>();
@@ -43,54 +48,53 @@ class RulesFilterCreatorController extends BaseMailboxController {
final ruleConditionComparatorSelected = Rxn<rule_condition.Comparator>();
final emailRuleFilterActionSelected = Rxn<EmailRuleFilterAction>();
final mailboxSelected = Rxn<PresentationMailbox>();
final actionType = CreatorActionType.create.obs;
final inputRuleNameController = TextEditingController();
final inputConditionValueController = TextEditingController();
final inputRuleNameFocusNode = FocusNode();
final inputRuleConditionFocusNode = FocusNode();
final _accountDashBoardController = Get.find<ManageAccountDashBoardController>();
final _emailRulesController = Get.find<EmailRulesController>();
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<TMailRule>? _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();
}
@@ -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<RulesFilterCreatorController> {
final _imagePaths = Get.find<ImagePaths>();
final _responsiveUtils = Get.find<ResponsiveUtils>();
RuleFilterCreatorView({Key? key}) : super(key: key);
@override
final controller = Get.find<RulesFilterCreatorController>();
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<RulesFilterCreatorController> {
)
),
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<RulesFilterCreatorController> {
)
),
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<RulesFilterCreatorController> {
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<RulesFilterCreatorController> {
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<RulesFilterCreatorController> {
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<RulesFilterCreatorController> {
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<RulesFilterCreatorController> {
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<RulesFilterCreatorController> {
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,
+5 -6
View File
@@ -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,
+1 -1
View File
@@ -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';
}