diff --git a/lib/ui/client/view/client_view.dart b/lib/ui/client/view/client_view.dart index 26e02a7ad..cbdb7442f 100644 --- a/lib/ui/client/view/client_view.dart +++ b/lib/ui/client/view/client_view.dart @@ -21,10 +21,12 @@ class ClientView extends StatefulWidget { Key key, @required this.viewModel, @required this.isFilter, + @required this.tabIndex, }) : super(key: key); final ClientViewVM viewModel; final bool isFilter; + final int tabIndex; @override _ClientViewState createState() => _ClientViewState(); @@ -51,6 +53,15 @@ class _ClientViewState extends State store.dispatch(UpdateClientTab(tabIndex: _controller.index)); } + @override + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + + if (oldWidget.tabIndex != widget.tabIndex) { + _controller.index = widget.tabIndex ?? 0; + } + } + @override void dispose() { _controller.removeListener(_onTabChanged); diff --git a/lib/ui/client/view/client_view_vm.dart b/lib/ui/client/view/client_view_vm.dart index 7c14745f0..654648423 100644 --- a/lib/ui/client/view/client_view_vm.dart +++ b/lib/ui/client/view/client_view_vm.dart @@ -36,6 +36,7 @@ class ClientViewScreen extends StatelessWidget { return ClientView( viewModel: vm, isFilter: isFilter, + tabIndex: vm.state.clientUIState.tabIndex, ); }, ); diff --git a/lib/ui/credit/view/credit_view_vm.dart b/lib/ui/credit/view/credit_view_vm.dart index 57d6b1815..8b278f1fd 100644 --- a/lib/ui/credit/view/credit_view_vm.dart +++ b/lib/ui/credit/view/credit_view_vm.dart @@ -36,6 +36,7 @@ class CreditViewScreen extends StatelessWidget { return InvoiceView( viewModel: viewModel, isFilter: isFilter, + tabIndex: viewModel.state.creditUIState.tabIndex, ); }, ); diff --git a/lib/ui/expense/view/expense_view.dart b/lib/ui/expense/view/expense_view.dart index c84dca2eb..ed96a9525 100644 --- a/lib/ui/expense/view/expense_view.dart +++ b/lib/ui/expense/view/expense_view.dart @@ -21,10 +21,12 @@ class ExpenseView extends StatefulWidget { Key key, @required this.viewModel, @required this.isFilter, + @required this.tabIndex, }) : super(key: key); final ExpenseViewVM viewModel; final bool isFilter; + final int tabIndex; @override _ExpenseViewState createState() => _ExpenseViewState(); @@ -51,6 +53,15 @@ class _ExpenseViewState extends State store.dispatch(UpdateExpenseTab(tabIndex: _controller.index)); } + @override + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + + if (oldWidget.tabIndex != widget.tabIndex) { + _controller.index = widget.tabIndex ?? 0; + } + } + @override void dispose() { _controller.removeListener(_onTabChanged); diff --git a/lib/ui/expense/view/expense_view_vm.dart b/lib/ui/expense/view/expense_view_vm.dart index 0a371214b..67632fe22 100644 --- a/lib/ui/expense/view/expense_view_vm.dart +++ b/lib/ui/expense/view/expense_view_vm.dart @@ -37,6 +37,7 @@ class ExpenseViewScreen extends StatelessWidget { return ExpenseView( viewModel: vm, isFilter: isFilter, + tabIndex: vm.state.expenseCategoryUIState.tabIndex, ); }, ); diff --git a/lib/ui/invoice/view/invoice_view.dart b/lib/ui/invoice/view/invoice_view.dart index 4a7c6d97f..4d3054a2d 100644 --- a/lib/ui/invoice/view/invoice_view.dart +++ b/lib/ui/invoice/view/invoice_view.dart @@ -23,10 +23,12 @@ class InvoiceView extends StatefulWidget { Key key, @required this.viewModel, @required this.isFilter, + @required this.tabIndex, }) : super(key: key); final EntityViewVM viewModel; final bool isFilter; + final int tabIndex; @override _InvoiceViewState createState() => new _InvoiceViewState(); @@ -76,6 +78,15 @@ class _InvoiceViewState extends State } } + @override + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + + if (oldWidget.tabIndex != widget.tabIndex) { + _controller.index = widget.tabIndex ?? 0; + } + } + @override void dispose() { _controller.removeListener(_onTabChanged); diff --git a/lib/ui/invoice/view/invoice_view_vm.dart b/lib/ui/invoice/view/invoice_view_vm.dart index 2317adca5..8029d851d 100644 --- a/lib/ui/invoice/view/invoice_view_vm.dart +++ b/lib/ui/invoice/view/invoice_view_vm.dart @@ -34,6 +34,7 @@ class InvoiceViewScreen extends StatelessWidget { return InvoiceView( viewModel: viewModel, isFilter: isFilter, + tabIndex: viewModel.state.invoiceUIState.tabIndex, ); }, ); diff --git a/lib/ui/product/view/product_view.dart b/lib/ui/product/view/product_view.dart index 37e77c31d..a727383f3 100644 --- a/lib/ui/product/view/product_view.dart +++ b/lib/ui/product/view/product_view.dart @@ -17,10 +17,12 @@ class ProductView extends StatefulWidget { Key key, @required this.viewModel, @required this.isFilter, + @required this.tabIndex, }) : super(key: key); final ProductViewVM viewModel; final bool isFilter; + final int tabIndex; @override _ProductViewState createState() => _ProductViewState(); @@ -47,6 +49,15 @@ class _ProductViewState extends State store.dispatch(UpdateProductTab(tabIndex: _controller.index)); } + @override + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + + if (oldWidget.tabIndex != widget.tabIndex) { + _controller.index = widget.tabIndex ?? 0; + } + } + @override void dispose() { _controller.removeListener(_onTabChanged); diff --git a/lib/ui/product/view/product_view_vm.dart b/lib/ui/product/view/product_view_vm.dart index f5f8d532f..106c6cae0 100644 --- a/lib/ui/product/view/product_view_vm.dart +++ b/lib/ui/product/view/product_view_vm.dart @@ -35,6 +35,7 @@ class ProductViewScreen extends StatelessWidget { return ProductView( viewModel: vm, isFilter: isFilter, + tabIndex: vm.state.productUIState.tabIndex, ); }, ); diff --git a/lib/ui/project/view/project_view.dart b/lib/ui/project/view/project_view.dart index b79a7d1c3..319b400e9 100644 --- a/lib/ui/project/view/project_view.dart +++ b/lib/ui/project/view/project_view.dart @@ -17,10 +17,12 @@ class ProjectView extends StatefulWidget { Key key, @required this.viewModel, @required this.isFilter, + @required this.tabIndex, }) : super(key: key); final ProjectViewVM viewModel; final bool isFilter; + final int tabIndex; @override _ProjectViewState createState() => new _ProjectViewState(); @@ -47,6 +49,15 @@ class _ProjectViewState extends State store.dispatch(UpdateProjectTab(tabIndex: _controller.index)); } + @override + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + + if (oldWidget.tabIndex != widget.tabIndex) { + _controller.index = widget.tabIndex ?? 0; + } + } + @override void dispose() { _controller.removeListener(_onTabChanged); diff --git a/lib/ui/project/view/project_view_vm.dart b/lib/ui/project/view/project_view_vm.dart index 4b5d2324d..83332b37e 100644 --- a/lib/ui/project/view/project_view_vm.dart +++ b/lib/ui/project/view/project_view_vm.dart @@ -35,6 +35,7 @@ class ProjectViewScreen extends StatelessWidget { return ProjectView( viewModel: vm, isFilter: isFilter, + tabIndex: vm.state.projectUIState.tabIndex, ); }, ); diff --git a/lib/ui/quote/view/quote_view_vm.dart b/lib/ui/quote/view/quote_view_vm.dart index d6785b2f8..307f7e013 100644 --- a/lib/ui/quote/view/quote_view_vm.dart +++ b/lib/ui/quote/view/quote_view_vm.dart @@ -36,6 +36,7 @@ class QuoteViewScreen extends StatelessWidget { return InvoiceView( viewModel: viewModel, isFilter: isFilter, + tabIndex: viewModel.state.quoteUIState.tabIndex, ); }, ); diff --git a/lib/ui/recurring_invoice/view/recurring_invoice_view_vm.dart b/lib/ui/recurring_invoice/view/recurring_invoice_view_vm.dart index b334d2455..b29aa576c 100644 --- a/lib/ui/recurring_invoice/view/recurring_invoice_view_vm.dart +++ b/lib/ui/recurring_invoice/view/recurring_invoice_view_vm.dart @@ -35,6 +35,7 @@ class RecurringInvoiceViewScreen extends StatelessWidget { return InvoiceView( viewModel: vm, isFilter: isFilter, + tabIndex: vm.state.recurringInvoiceUIState.tabIndex, ); }, ); diff --git a/lib/ui/task/view/task_view.dart b/lib/ui/task/view/task_view.dart index b1459456b..f52c3e444 100644 --- a/lib/ui/task/view/task_view.dart +++ b/lib/ui/task/view/task_view.dart @@ -17,10 +17,12 @@ class TaskView extends StatefulWidget { Key key, @required this.viewModel, @required this.isFilter, + @required this.tabIndex, }) : super(key: key); final TaskViewVM viewModel; final bool isFilter; + final int tabIndex; @override _TaskViewState createState() => new _TaskViewState(); @@ -45,6 +47,15 @@ class _TaskViewState extends State store.dispatch(UpdateTaskTab(tabIndex: _controller.index)); } + @override + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + + if (oldWidget.tabIndex != widget.tabIndex) { + _controller.index = widget.tabIndex ?? 0; + } + } + @override void dispose() { _controller.removeListener(_onTabChanged); diff --git a/lib/ui/task/view/task_view_vm.dart b/lib/ui/task/view/task_view_vm.dart index 7a74172bd..cceb1a7dc 100644 --- a/lib/ui/task/view/task_view_vm.dart +++ b/lib/ui/task/view/task_view_vm.dart @@ -35,6 +35,7 @@ class TaskViewScreen extends StatelessWidget { return TaskView( viewModel: vm, isFilter: isFilter, + tabIndex: vm.state.taskUIState.tabIndex, ); }, ); diff --git a/lib/ui/vendor/view/vendor_view.dart b/lib/ui/vendor/view/vendor_view.dart index 8fd3e6474..62c53f804 100644 --- a/lib/ui/vendor/view/vendor_view.dart +++ b/lib/ui/vendor/view/vendor_view.dart @@ -16,10 +16,12 @@ class VendorView extends StatefulWidget { Key key, @required this.viewModel, @required this.isFilter, + @required this.tabIndex, }) : super(key: key); final VendorViewVM viewModel; final bool isFilter; + final int tabIndex; @override _VendorViewState createState() => _VendorViewState(); @@ -46,6 +48,15 @@ class _VendorViewState extends State store.dispatch(UpdateVendorTab(tabIndex: _controller.index)); } + @override + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + + if (oldWidget.tabIndex != widget.tabIndex) { + _controller.index = widget.tabIndex ?? 0; + } + } + @override void dispose() { _controller.removeListener(_onTabChanged); diff --git a/lib/ui/vendor/view/vendor_view_vm.dart b/lib/ui/vendor/view/vendor_view_vm.dart index fc5bcc8be..1e9c8d345 100644 --- a/lib/ui/vendor/view/vendor_view_vm.dart +++ b/lib/ui/vendor/view/vendor_view_vm.dart @@ -35,6 +35,7 @@ class VendorViewScreen extends StatelessWidget { return VendorView( viewModel: vm, isFilter: isFilter, + tabIndex: vm.state.vendorUIState.tabIndex, ); }, );