diff --git a/lib/constants.dart b/lib/constants.dart index 0b26cfda7..b3afb9d12 100644 --- a/lib/constants.dart +++ b/lib/constants.dart @@ -395,6 +395,20 @@ const String kSettingsTaskStatuses = 'task_status'; const String kSettingsTaskStatusView = 'task_status_view'; const String kSettingsTaskStatusEdit = 'task_status_edit'; +const List kAdvancedSettings = [ + kSettingsCustomDesignsEdit, + kSettingsGroupSettingsEdit, + kSettingsClientPortal, + kSettingsCustomFields, + kSettingsEmailSettings, + kSettingsGeneratedNumbers, + kSettingsInvoiceDesign, + kSettingsTemplatesAndReminders, + kSettingsWorkflowSettings, + kSettingsSubscriptionsEdit, + kSettingsUserManagementEdit, +]; + const String kReportClient = 'client'; const String kReportCredit = 'credit'; const String kReportDocument = 'document'; diff --git a/lib/ui/app/edit_scaffold.dart b/lib/ui/app/edit_scaffold.dart index 83f40bb25..21c7c9622 100644 --- a/lib/ui/app/edit_scaffold.dart +++ b/lib/ui/app/edit_scaffold.dart @@ -28,7 +28,6 @@ class EditScaffold extends StatelessWidget { this.appBarBottom, this.saveLabel, this.isFullscreen = false, - this.isAdvancedSettings = false, this.onActionPressed, this.actions, }) : super(key: key); @@ -45,7 +44,6 @@ class EditScaffold extends StatelessWidget { final Widget bottomNavigationBar; final String saveLabel; final bool isFullscreen; - final bool isAdvancedSettings; @override Widget build(BuildContext context) { @@ -65,9 +63,9 @@ class EditScaffold extends StatelessWidget { : localization.ownerUpgradeToPaidPlan; if (state.account.isTrial) { final trialStarted = convertSqlDateToDateTime(state.account.trialStarted); - final trialEnds = DateTime.now().add(Duration(days: 14)); + final trialEnds = trialStarted.add(Duration(days: 14)); final countDays = trialEnds.difference(trialStarted).inDays; - if (countDays == 1) { + if (countDays <= 1) { upgradeMessage = localization.freeTrialEndsToday; } else { upgradeMessage = localization.freeTrialEndsInDays @@ -76,7 +74,7 @@ class EditScaffold extends StatelessWidget { } if (!state.isProPlan || state.account.isTrial) { - if (isAdvancedSettings) { + if (kAdvancedSettings.contains(state.uiState.subRoute)) { showUpgradeBanner = true; if (!state.isProPlan && isEnabled) { isCancelEnabled = true; diff --git a/lib/ui/app/menu_drawer.dart b/lib/ui/app/menu_drawer.dart index 675e61d14..26b190759 100644 --- a/lib/ui/app/menu_drawer.dart +++ b/lib/ui/app/menu_drawer.dart @@ -725,7 +725,9 @@ class SidebarFooter extends StatelessWidget { ), IconButton( icon: Icon(Icons.help_outline), - onPressed: () => launch(kDocsUrl), + onPressed: () { + launch(kDocsUrl); + }, tooltip: localization.help, ), IconButton( diff --git a/lib/ui/design/edit/design_edit.dart b/lib/ui/design/edit/design_edit.dart index 013459ee1..632076e32 100644 --- a/lib/ui/design/edit/design_edit.dart +++ b/lib/ui/design/edit/design_edit.dart @@ -220,7 +220,6 @@ class _DesignEditState extends State return EditScaffold( isFullscreen: true, - isAdvancedSettings: true, title: design.isNew ? localization.newDesign : localization.editDesign, onCancelPressed: (context) => viewModel.onCancelPressed(context), appBarBottom: isMobile(context) diff --git a/lib/ui/group/edit/group_edit.dart b/lib/ui/group/edit/group_edit.dart index 4d2314b5c..2a3c6f3c0 100644 --- a/lib/ui/group/edit/group_edit.dart +++ b/lib/ui/group/edit/group_edit.dart @@ -79,7 +79,6 @@ class _GroupEditState extends State { return EditScaffold( onCancelPressed: (context) => viewModel.onCancelPressed(context), title: group.isNew ? localization.newGroup : localization.editGroup, - isAdvancedSettings: true, onSavePressed: (context) { final bool isValid = _formKey.currentState.validate(); diff --git a/lib/ui/settings/client_portal.dart b/lib/ui/settings/client_portal.dart index f0eaf76fc..820343943 100644 --- a/lib/ui/settings/client_portal.dart +++ b/lib/ui/settings/client_portal.dart @@ -234,7 +234,6 @@ class _ClientPortalState extends State return EditScaffold( title: localization.clientPortal, - isAdvancedSettings: true, onSavePressed: (context) => _onSavePressed(context), appBarBottom: TabBar( key: ValueKey(state.settingsUIState.updatedAt), diff --git a/lib/ui/settings/custom_fields.dart b/lib/ui/settings/custom_fields.dart index fc115a362..35b8f7259 100644 --- a/lib/ui/settings/custom_fields.dart +++ b/lib/ui/settings/custom_fields.dart @@ -83,7 +83,6 @@ class _CustomFieldsState extends State return EditScaffold( title: localization.customFields, - isAdvancedSettings: true, onSavePressed: viewModel.onSavePressed, appBarBottom: TabBar( key: ValueKey(state.settingsUIState.updatedAt), diff --git a/lib/ui/settings/email_settings.dart b/lib/ui/settings/email_settings.dart index 5862237fe..a9abe5d1f 100644 --- a/lib/ui/settings/email_settings.dart +++ b/lib/ui/settings/email_settings.dart @@ -134,7 +134,6 @@ class _EmailSettingsState extends State { return EditScaffold( title: localization.emailSettings, - isAdvancedSettings: true, onSavePressed: disableSave ? null : _onSavePressed, body: AppForm( formKey: _formKey, diff --git a/lib/ui/settings/generated_numbers.dart b/lib/ui/settings/generated_numbers.dart index 8669fe9fd..1103ae4e6 100644 --- a/lib/ui/settings/generated_numbers.dart +++ b/lib/ui/settings/generated_numbers.dart @@ -179,7 +179,6 @@ class _GeneratedNumbersState extends State return EditScaffold( title: localization.generatedNumbers, - isAdvancedSettings: true, onSavePressed: _onSavePressed, appBarBottom: TabBar( key: ValueKey(state.settingsUIState.updatedAt), diff --git a/lib/ui/settings/invoice_design.dart b/lib/ui/settings/invoice_design.dart index 0f26fdc5b..e0f28c7d9 100644 --- a/lib/ui/settings/invoice_design.dart +++ b/lib/ui/settings/invoice_design.dart @@ -85,7 +85,6 @@ class _InvoiceDesignState extends State return EditScaffold( title: localization.invoiceDesign, - isAdvancedSettings: true, onSavePressed: viewModel.onSavePressed, appBarBottom: TabBar( key: ValueKey(state.settingsUIState.updatedAt), diff --git a/lib/ui/settings/templates_and_reminders.dart b/lib/ui/settings/templates_and_reminders.dart index f882e9a2d..ed2caceed 100644 --- a/lib/ui/settings/templates_and_reminders.dart +++ b/lib/ui/settings/templates_and_reminders.dart @@ -229,7 +229,6 @@ class _TemplatesAndRemindersState extends State return EditScaffold( title: localization.templatesAndReminders, - isAdvancedSettings: true, onSavePressed: viewModel.onSavePressed, appBarBottom: TabBar( key: ValueKey(state.settingsUIState.updatedAt), diff --git a/lib/ui/settings/workflow_settings.dart b/lib/ui/settings/workflow_settings.dart index 39145a5e9..ab5bc34f9 100644 --- a/lib/ui/settings/workflow_settings.dart +++ b/lib/ui/settings/workflow_settings.dart @@ -68,7 +68,6 @@ class _WorkflowSettingsState extends State return EditScaffold( title: localization.workflowSettings, - isAdvancedSettings: true, onSavePressed: viewModel.onSavePressed, appBarBottom: TabBar( key: ValueKey(state.settingsUIState.updatedAt), diff --git a/lib/ui/subscription/edit/subscription_edit.dart b/lib/ui/subscription/edit/subscription_edit.dart index fd8b5a935..9bded5845 100644 --- a/lib/ui/subscription/edit/subscription_edit.dart +++ b/lib/ui/subscription/edit/subscription_edit.dart @@ -182,7 +182,6 @@ class _SubscriptionEditState extends State title: subscription.isNew ? localization.newSubscription : localization.editSubscription, - isAdvancedSettings: true, onCancelPressed: (context) => viewModel.onCancelPressed(context), onSavePressed: (context) { final bool isValid = _formKey.currentState.validate(); diff --git a/lib/ui/user/edit/user_edit.dart b/lib/ui/user/edit/user_edit.dart index 0d9b9911c..3571ecc15 100644 --- a/lib/ui/user/edit/user_edit.dart +++ b/lib/ui/user/edit/user_edit.dart @@ -147,7 +147,6 @@ class _UserEditState extends State entity: user, title: viewModel.user.isNew ? localization.newUser : localization.editUser, - isAdvancedSettings: true, appBarBottom: TabBar( controller: _controller, isScrollable: isMobile(context),