From 41feda26b80196c0d3e505893e1e88faaec34cc0 Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Sun, 15 Dec 2019 19:22:42 +0200 Subject: [PATCH] Refactor --- lib/ui/app/view_scaffold.dart | 7 +- .../edit/company_gateway_edit_vm.dart | 1 - lib/ui/expense/view/expense_view_vm.dart | 2 - lib/ui/group/edit/group_edit.dart | 2 - lib/ui/group/edit/group_edit_vm.dart | 1 - lib/ui/invoice/view/invoice_view.dart | 134 +++-------- lib/ui/invoice/view/invoice_view_vm.dart | 2 - lib/ui/product/view/product_view.dart | 93 +++----- lib/ui/product/view/product_view_vm.dart | 2 - lib/ui/project/view/project_view.dart | 208 ++++++++---------- lib/ui/project/view/project_view_vm.dart | 2 - lib/ui/quote/view/quote_view_vm.dart | 2 - lib/ui/task/view/task_view_vm.dart | 2 - lib/ui/tax_rate/edit/tax_rate_edit_vm.dart | 1 - lib/ui/user/edit/user_edit.dart | 2 - lib/ui/user/edit/user_edit_vm.dart | 1 - lib/ui/vendor/view/vendor_view_vm.dart | 2 - 17 files changed, 146 insertions(+), 318 deletions(-) diff --git a/lib/ui/app/view_scaffold.dart b/lib/ui/app/view_scaffold.dart index 0e4e34311..f86b64cf2 100644 --- a/lib/ui/app/view_scaffold.dart +++ b/lib/ui/app/view_scaffold.dart @@ -12,11 +12,13 @@ class ViewScaffold extends StatelessWidget { const ViewScaffold({ @required this.body, @required this.entity, + this.title, this.floatingActionButton, this.appBarBottom, }); final BaseEntity entity; + final String title; final Widget body; final Widget floatingActionButton; final Widget appBarBottom; @@ -34,7 +36,10 @@ class ViewScaffold extends StatelessWidget { child: Scaffold( appBar: AppBar( automaticallyImplyLeading: isMobile(context), - title: EntityStateTitle(entity: entity), + title: EntityStateTitle( + entity: entity, + title: title, + ), bottom: appBarBottom, actions: entity.isNew ? [] diff --git a/lib/ui/company_gateway/edit/company_gateway_edit_vm.dart b/lib/ui/company_gateway/edit/company_gateway_edit_vm.dart index 8e1770dbb..6f03f50b0 100644 --- a/lib/ui/company_gateway/edit/company_gateway_edit_vm.dart +++ b/lib/ui/company_gateway/edit/company_gateway_edit_vm.dart @@ -5,7 +5,6 @@ import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; -import 'package:invoiceninja_flutter/ui/company_gateway/company_gateway_screen.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; diff --git a/lib/ui/expense/view/expense_view_vm.dart b/lib/ui/expense/view/expense_view_vm.dart index baf29a035..c4c82da8a 100644 --- a/lib/ui/expense/view/expense_view_vm.dart +++ b/lib/ui/expense/view/expense_view_vm.dart @@ -9,11 +9,9 @@ import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/document/document_actions.dart'; import 'package:invoiceninja_flutter/redux/expense/expense_actions.dart'; -import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/snackbar_row.dart'; -import 'package:invoiceninja_flutter/ui/expense/expense_screen.dart'; import 'package:invoiceninja_flutter/ui/expense/view/expense_view.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; diff --git a/lib/ui/group/edit/group_edit.dart b/lib/ui/group/edit/group_edit.dart index 3544b31c0..447473b94 100644 --- a/lib/ui/group/edit/group_edit.dart +++ b/lib/ui/group/edit/group_edit.dart @@ -4,10 +4,8 @@ import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart'; import 'package:invoiceninja_flutter/ui/app/form_card.dart'; import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart'; import 'package:invoiceninja_flutter/ui/group/edit/group_edit_vm.dart'; -import 'package:invoiceninja_flutter/ui/app/buttons/action_flat_button.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; -import 'package:invoiceninja_flutter/utils/platforms.dart'; class GroupEdit extends StatefulWidget { const GroupEdit({ diff --git a/lib/ui/group/edit/group_edit_vm.dart b/lib/ui/group/edit/group_edit_vm.dart index 1fa98419e..68913256f 100644 --- a/lib/ui/group/edit/group_edit_vm.dart +++ b/lib/ui/group/edit/group_edit_vm.dart @@ -5,7 +5,6 @@ import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; -import 'package:invoiceninja_flutter/ui/group/group_screen.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; diff --git a/lib/ui/invoice/view/invoice_view.dart b/lib/ui/invoice/view/invoice_view.dart index c4dfe0c04..20c19375c 100644 --- a/lib/ui/invoice/view/invoice_view.dart +++ b/lib/ui/invoice/view/invoice_view.dart @@ -3,6 +3,7 @@ import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart'; +import 'package:invoiceninja_flutter/ui/app/view_scaffold.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_documents.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_overview.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart'; @@ -41,99 +42,18 @@ class _InvoiceViewState extends State @override Widget build(BuildContext context) { final viewModel = widget.viewModel; - - return WillPopScope( - onWillPop: () async { - viewModel.onBackPressed(); - return true; - }, - child: Scaffold( - appBar: _CustomAppBar( - viewModel: viewModel, - controller: _controller, - ), - body: Builder( - builder: (BuildContext context) { - return RefreshIndicator( - onRefresh: () => viewModel.onRefreshed(context), - child: CustomTabBarView( - viewModel: viewModel, - controller: _controller, - ), - ); - }, - ), - ), - ); - } -} - -class CustomTabBarView extends StatefulWidget { - const CustomTabBarView({ - @required this.viewModel, - @required this.controller, - }); - - final EntityViewVM viewModel; - final TabController controller; - - @override - _CustomTabBarViewState createState() => _CustomTabBarViewState(); -} - -class _CustomTabBarViewState extends State { - @override - Widget build(BuildContext context) { - final viewModel = widget.viewModel; - - return TabBarView( - controller: widget.controller, - children: [ - RefreshIndicator( - onRefresh: () => viewModel.onRefreshed(context), - child: InvoiceOverview(viewModel: viewModel), - ), - RefreshIndicator( - onRefresh: () => viewModel.onRefreshed(context), - child: InvoiceViewDocuments( - viewModel: viewModel, invoice: viewModel.invoice), - ), - ], - ); - } -} - -class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget { - const _CustomAppBar({ - @required this.viewModel, - @required this.controller, - }); - - final EntityViewVM viewModel; - final TabController controller; - - @override - final Size preferredSize = const Size(double.infinity, kToolbarHeight * 2); - - @override - Widget build(BuildContext context) { - final localization = AppLocalization.of(context); final invoice = viewModel.invoice; - final userCompany = viewModel.state.userCompany; - final client = viewModel.client; + final localization = AppLocalization.of(context); final documentState = viewModel.state.documentState; final documents = memoizedInvoiceDocumentsSelector( documentState.map, viewModel.state.expenseState.map, invoice); - return AppBar( - automaticallyImplyLeading: isMobile(context), - title: EntityStateTitle( - entity: invoice, - title: - '${localization.invoice} ${invoice.number ?? '• ${localization.pending}'}', - ), - bottom: TabBar( - controller: controller, + return ViewScaffold( + entity: invoice, + title: + '${localization.invoice} ${invoice.number ?? '• ${localization.pending}'}', + appBarBottom: TabBar( + controller: _controller, tabs: [ Tab( text: localization.overview, @@ -145,23 +65,27 @@ class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget { ), ], ), - actions: invoice.isNew - ? [] - : [ - userCompany.canEditEntity(invoice) - ? EditIconButton( - isVisible: !invoice.isDeleted, - onPressed: () => viewModel.onEditPressed(context), - ) - : Container(), - ActionMenuButton( - entityActions: invoice.getActions( - client: client, userCompany: userCompany), - isSaving: viewModel.isSaving, - entity: invoice, - onSelected: viewModel.onActionSelected, - ) - ], + body: Builder( + builder: (BuildContext context) { + return RefreshIndicator( + onRefresh: () => viewModel.onRefreshed(context), + child: TabBarView( + controller: _controller, + children: [ + RefreshIndicator( + onRefresh: () => viewModel.onRefreshed(context), + child: InvoiceOverview(viewModel: viewModel), + ), + RefreshIndicator( + onRefresh: () => viewModel.onRefreshed(context), + child: InvoiceViewDocuments( + viewModel: viewModel, invoice: viewModel.invoice), + ), + ], + ), + ); + }, + ), ); } } diff --git a/lib/ui/invoice/view/invoice_view_vm.dart b/lib/ui/invoice/view/invoice_view_vm.dart index 8a8ae866e..14a9e13a1 100644 --- a/lib/ui/invoice/view/invoice_view_vm.dart +++ b/lib/ui/invoice/view/invoice_view_vm.dart @@ -8,11 +8,9 @@ import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/document/document_actions.dart'; import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart'; -import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/snackbar_row.dart'; -import 'package:invoiceninja_flutter/ui/invoice/invoice_screen.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; diff --git a/lib/ui/product/view/product_view.dart b/lib/ui/product/view/product_view.dart index 76e477dc0..331dcf59a 100644 --- a/lib/ui/product/view/product_view.dart +++ b/lib/ui/product/view/product_view.dart @@ -6,6 +6,7 @@ import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart'; import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_state_title.dart'; import 'package:invoiceninja_flutter/ui/app/entity_header.dart'; +import 'package:invoiceninja_flutter/ui/app/view_scaffold.dart'; import 'package:invoiceninja_flutter/ui/product/view/product_view_vm.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; @@ -81,75 +82,31 @@ class _ProductViewState extends State value: product.customValue2); } - return WillPopScope( - onWillPop: () async { - viewModel.onBackPressed(); - return true; - }, - child: Scaffold( - appBar: _CustomAppBar( - viewModel: viewModel, - ), - body: ListView( - children: [ - EntityHeader( - label: localization.price, - value: formatNumber(product.price, context), - secondLabel: localization.cost, - secondValue: company.enableProductCost - ? formatNumber(product.cost, context) - : null, + return ViewScaffold( + entity: product, + body: ListView( + children: [ + EntityHeader( + label: localization.price, + value: formatNumber(product.price, context), + secondLabel: localization.cost, + secondValue: company.enableProductCost + ? formatNumber(product.cost, context) + : null, + ), + FieldGrid(fields), + Divider( + height: 1.0, + ), + Padding( + padding: EdgeInsets.all(16), + child: Text( + product.notes, + style: TextStyle(fontSize: 16), ), - FieldGrid(fields), - Divider( - height: 1.0, - ), - Padding( - padding: EdgeInsets.all(16), - child: Text( - product.notes, - style: TextStyle(fontSize: 16), - ), - ), - ], - ), + ), + ], ), ); } -} - -class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget { - const _CustomAppBar({ - @required this.viewModel, - }); - - final ProductViewVM viewModel; - - @override - final Size preferredSize = const Size(double.infinity, kToolbarHeight); - - @override - Widget build(BuildContext context) { - final userCompany = viewModel.state.userCompany; - final product = viewModel.product; - - return AppBar( - automaticallyImplyLeading: isMobile(context), - title: EntityStateTitle(entity: product), - actions: [ - userCompany.canEditEntity(product) - ? EditIconButton( - isVisible: !product.isDeleted, - onPressed: () => viewModel.onEditPressed(context), - ) - : Container(), - ActionMenuButton( - entityActions: product.getActions(userCompany: userCompany), - isSaving: viewModel.isSaving, - entity: product, - onSelected: viewModel.onEntityAction, - ) - ], - ); - } -} +} \ No newline at end of file diff --git a/lib/ui/product/view/product_view_vm.dart b/lib/ui/product/view/product_view_vm.dart index 073a2de44..66cbeab11 100644 --- a/lib/ui/product/view/product_view_vm.dart +++ b/lib/ui/product/view/product_view_vm.dart @@ -5,8 +5,6 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/product/product_actions.dart'; -import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; -import 'package:invoiceninja_flutter/ui/product/product_screen.dart'; import 'package:invoiceninja_flutter/ui/product/view/product_view.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; diff --git a/lib/ui/project/view/project_view.dart b/lib/ui/project/view/project_view.dart index 6c22e8929..effaa9316 100644 --- a/lib/ui/project/view/project_view.dart +++ b/lib/ui/project/view/project_view.dart @@ -13,6 +13,7 @@ import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_state_title.dart'; import 'package:invoiceninja_flutter/ui/app/icon_message.dart'; import 'package:invoiceninja_flutter/ui/app/entity_header.dart'; +import 'package:invoiceninja_flutter/ui/app/view_scaffold.dart'; import 'package:invoiceninja_flutter/ui/client/view/client_view_overview.dart'; import 'package:invoiceninja_flutter/ui/project/view/project_view_vm.dart'; import 'package:invoiceninja_flutter/utils/formatting.dart'; @@ -39,7 +40,7 @@ class _ProjectViewState extends State { void initState() { super.initState(); _timer = Timer.periodic(Duration(seconds: 1), - (Timer timer) => mounted ? setState(() => false) : false); + (Timer timer) => mounted ? setState(() => false) : false); } @override @@ -78,134 +79,97 @@ class _ProjectViewState extends State { value: project.customValue2); } - return WillPopScope( - onWillPop: () async { - viewModel.onBackPressed(); - return true; - }, - child: Scaffold( - appBar: _CustomAppBar( - viewModel: viewModel, - ), - body: Builder( - builder: (BuildContext context) { - List _buildView() { - final widgets = [ - EntityHeader( - label: localization.total, - value: formatDuration(taskDurationForProject( - project, viewModel.state.taskState.map)), - secondLabel: localization.budgeted, - secondValue: formatDuration( - Duration(hours: project.budgetedHours.toInt()), - showSeconds: false), + return ViewScaffold( + entity: project, + body: Builder( + builder: (BuildContext context) { + List _buildView() { + final widgets = [ + EntityHeader( + label: localization.total, + value: formatDuration(taskDurationForProject( + project, viewModel.state.taskState.map)), + secondLabel: localization.budgeted, + secondValue: formatDuration( + Duration(hours: project.budgetedHours.toInt()), + showSeconds: false), + ), + Material( + color: Theme + .of(context) + .canvasColor, + child: ListTile( + title: EntityStateTitle(entity: client), + leading: Icon(FontAwesomeIcons.users, size: 18.0), + trailing: Icon(Icons.navigate_next), + onTap: () => viewModel.onClientPressed(context), + onLongPress: () => viewModel.onClientPressed(context, true), ), - Material( - color: Theme.of(context).canvasColor, - child: ListTile( - title: EntityStateTitle(entity: client), - leading: Icon(FontAwesomeIcons.users, size: 18.0), - trailing: Icon(Icons.navigate_next), - onTap: () => viewModel.onClientPressed(context), - onLongPress: () => viewModel.onClientPressed(context, true), - ), - ), - Container( - color: Theme.of(context).backgroundColor, - height: 12.0, - ), - EntityListTile( - icon: getEntityIcon(EntityType.task), - title: localization.tasks, - onTap: () => viewModel.onTasksPressed(context), - onLongPress: () => - viewModel.onTasksPressed(context, longPress: true), - subtitle: memoizedTaskStatsForProject( - project.id, viewModel.state.taskState.map) - .present(localization.active, localization.archived), - ), - Container( - color: Theme.of(context).backgroundColor, - height: 12.0, - ), - ]; - - if (project.privateNotes != null && - project.privateNotes.isNotEmpty) { - widgets.addAll([ - IconMessage(project.privateNotes), - Container( - color: Theme.of(context).backgroundColor, - height: 12.0, - ), - ]); - } + ), + Container( + color: Theme + .of(context) + .backgroundColor, + height: 12.0, + ), + EntityListTile( + icon: getEntityIcon(EntityType.task), + title: localization.tasks, + onTap: () => viewModel.onTasksPressed(context), + onLongPress: () => + viewModel.onTasksPressed(context, longPress: true), + subtitle: memoizedTaskStatsForProject( + project.id, viewModel.state.taskState.map) + .present(localization.active, localization.archived), + ), + Container( + color: Theme + .of(context) + .backgroundColor, + height: 12.0, + ), + ]; + if (project.privateNotes != null && + project.privateNotes.isNotEmpty) { widgets.addAll([ - FieldGrid(fields), + IconMessage(project.privateNotes), + Container( + color: Theme + .of(context) + .backgroundColor, + height: 12.0, + ), ]); - - return widgets; } - return RefreshIndicator( - onRefresh: () => viewModel.onRefreshed(context), - child: ListView( - children: _buildView(), - ), - ); - }, - ), - floatingActionButton: FloatingActionButton( - heroTag: 'project_view_fab', - backgroundColor: Theme.of(context).primaryColorDark, - onPressed: () => viewModel.onAddTaskPressed(context), - child: Icon( - Icons.add, - color: Colors.white, - ), - tooltip: localization.newTask, + widgets.addAll([ + FieldGrid(fields), + ]); + + return widgets; + } + + return RefreshIndicator( + onRefresh: () => viewModel.onRefreshed(context), + child: ListView( + children: _buildView(), + ), + ); + }, + ), + floatingActionButton: FloatingActionButton( + heroTag: 'project_view_fab', + backgroundColor: Theme + .of(context) + .primaryColorDark, + onPressed: () => viewModel.onAddTaskPressed(context), + child: Icon( + Icons.add, + color: Colors.white, ), + tooltip: localization.newTask, ), ); } -} - -class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget { - const _CustomAppBar({ - @required this.viewModel, - }); - - final ProjectViewVM viewModel; - - @override - final Size preferredSize = const Size(double.infinity, kToolbarHeight); - - @override - Widget build(BuildContext context) { - final project = viewModel.project; - final userCompany = viewModel.state.userCompany; - - return AppBar( - automaticallyImplyLeading: isMobile(context), - title: EntityStateTitle(entity: project), - actions: project.isNew - ? [] - : [ - userCompany.canEditEntity(project) - ? EditIconButton( - isVisible: !project.isDeleted, - onPressed: () => viewModel.onEditPressed(context), - ) - : Container(), - ActionMenuButton( - entityActions: project.getActions( - client: viewModel.client, userCompany: userCompany), - isSaving: viewModel.isSaving, - entity: project, - onSelected: viewModel.onEntityAction, - ) - ], - ); - } -} +} \ No newline at end of file diff --git a/lib/ui/project/view/project_view_vm.dart b/lib/ui/project/view/project_view_vm.dart index 6cc17f099..e173749cd 100644 --- a/lib/ui/project/view/project_view_vm.dart +++ b/lib/ui/project/view/project_view_vm.dart @@ -6,9 +6,7 @@ import 'package:invoiceninja_flutter/data/models/project_model.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/project/project_actions.dart'; -import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'; -import 'package:invoiceninja_flutter/ui/project/project_screen.dart'; import 'package:invoiceninja_flutter/ui/project/view/project_view.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; diff --git a/lib/ui/quote/view/quote_view_vm.dart b/lib/ui/quote/view/quote_view_vm.dart index 98fdb2fa3..2286b6c9c 100644 --- a/lib/ui/quote/view/quote_view_vm.dart +++ b/lib/ui/quote/view/quote_view_vm.dart @@ -8,13 +8,11 @@ import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/document/document_actions.dart'; import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart'; -import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/snackbar_row.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view.dart'; import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart'; -import 'package:invoiceninja_flutter/ui/quote/quote_screen.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; import 'package:redux/redux.dart'; diff --git a/lib/ui/task/view/task_view_vm.dart b/lib/ui/task/view/task_view_vm.dart index 779f1e320..cf651875c 100644 --- a/lib/ui/task/view/task_view_vm.dart +++ b/lib/ui/task/view/task_view_vm.dart @@ -8,11 +8,9 @@ import 'package:invoiceninja_flutter/data/models/task_model.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/task/task_actions.dart'; -import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/entities/entity_actions_dialog.dart'; import 'package:invoiceninja_flutter/ui/app/snackbar_row.dart'; -import 'package:invoiceninja_flutter/ui/task/task_screen.dart'; import 'package:invoiceninja_flutter/ui/task/view/task_view.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; diff --git a/lib/ui/tax_rate/edit/tax_rate_edit_vm.dart b/lib/ui/tax_rate/edit/tax_rate_edit_vm.dart index 6bfd8eea2..f121ca2c3 100644 --- a/lib/ui/tax_rate/edit/tax_rate_edit_vm.dart +++ b/lib/ui/tax_rate/edit/tax_rate_edit_vm.dart @@ -5,7 +5,6 @@ import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; -import 'package:invoiceninja_flutter/ui/tax_rate/tax_rate_screen.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; diff --git a/lib/ui/user/edit/user_edit.dart b/lib/ui/user/edit/user_edit.dart index b4bc5f8bc..60db15cd1 100644 --- a/lib/ui/user/edit/user_edit.dart +++ b/lib/ui/user/edit/user_edit.dart @@ -8,10 +8,8 @@ import 'package:invoiceninja_flutter/ui/app/form_card.dart'; import 'package:invoiceninja_flutter/ui/app/forms/app_form.dart'; import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart'; import 'package:invoiceninja_flutter/ui/user/edit/user_edit_vm.dart'; -import 'package:invoiceninja_flutter/ui/app/buttons/action_flat_button.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart'; -import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:invoiceninja_flutter/utils/strings.dart'; class UserEdit extends StatefulWidget { diff --git a/lib/ui/user/edit/user_edit_vm.dart b/lib/ui/user/edit/user_edit_vm.dart index b8758c90b..861efcfe7 100644 --- a/lib/ui/user/edit/user_edit_vm.dart +++ b/lib/ui/user/edit/user_edit_vm.dart @@ -5,7 +5,6 @@ import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/constants.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; -import 'package:invoiceninja_flutter/ui/user/user_screen.dart'; import 'package:invoiceninja_flutter/utils/platforms.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; diff --git a/lib/ui/vendor/view/vendor_view_vm.dart b/lib/ui/vendor/view/vendor_view_vm.dart index 0d4eb80c4..f4c7e5c28 100644 --- a/lib/ui/vendor/view/vendor_view_vm.dart +++ b/lib/ui/vendor/view/vendor_view_vm.dart @@ -7,9 +7,7 @@ import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/data/models/vendor_model.dart'; import 'package:invoiceninja_flutter/redux/app/app_actions.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; -import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/redux/vendor/vendor_actions.dart'; -import 'package:invoiceninja_flutter/ui/vendor/vendor_screen.dart'; import 'package:invoiceninja_flutter/ui/vendor/view/vendor_view.dart'; import 'package:invoiceninja_flutter/utils/completers.dart'; import 'package:invoiceninja_flutter/utils/localization.dart';