Handle tab changes
This commit is contained in:
parent
d3f2a3bb58
commit
9d0ee048ca
|
|
@ -21,10 +21,12 @@ class ClientView extends StatefulWidget {
|
||||||
Key key,
|
Key key,
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
@required this.isFilter,
|
@required this.isFilter,
|
||||||
|
@required this.tabIndex,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final ClientViewVM viewModel;
|
final ClientViewVM viewModel;
|
||||||
final bool isFilter;
|
final bool isFilter;
|
||||||
|
final int tabIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_ClientViewState createState() => _ClientViewState();
|
_ClientViewState createState() => _ClientViewState();
|
||||||
|
|
@ -51,6 +53,15 @@ class _ClientViewState extends State<ClientView>
|
||||||
store.dispatch(UpdateClientTab(tabIndex: _controller.index));
|
store.dispatch(UpdateClientTab(tabIndex: _controller.index));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
|
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||||
|
_controller.index = widget.tabIndex ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_controller.removeListener(_onTabChanged);
|
_controller.removeListener(_onTabChanged);
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class ClientViewScreen extends StatelessWidget {
|
||||||
return ClientView(
|
return ClientView(
|
||||||
viewModel: vm,
|
viewModel: vm,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: vm.state.clientUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class CreditViewScreen extends StatelessWidget {
|
||||||
return InvoiceView(
|
return InvoiceView(
|
||||||
viewModel: viewModel,
|
viewModel: viewModel,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: viewModel.state.creditUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,12 @@ class ExpenseView extends StatefulWidget {
|
||||||
Key key,
|
Key key,
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
@required this.isFilter,
|
@required this.isFilter,
|
||||||
|
@required this.tabIndex,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final ExpenseViewVM viewModel;
|
final ExpenseViewVM viewModel;
|
||||||
final bool isFilter;
|
final bool isFilter;
|
||||||
|
final int tabIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_ExpenseViewState createState() => _ExpenseViewState();
|
_ExpenseViewState createState() => _ExpenseViewState();
|
||||||
|
|
@ -51,6 +53,15 @@ class _ExpenseViewState extends State<ExpenseView>
|
||||||
store.dispatch(UpdateExpenseTab(tabIndex: _controller.index));
|
store.dispatch(UpdateExpenseTab(tabIndex: _controller.index));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
|
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||||
|
_controller.index = widget.tabIndex ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_controller.removeListener(_onTabChanged);
|
_controller.removeListener(_onTabChanged);
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ class ExpenseViewScreen extends StatelessWidget {
|
||||||
return ExpenseView(
|
return ExpenseView(
|
||||||
viewModel: vm,
|
viewModel: vm,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: vm.state.expenseCategoryUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -23,10 +23,12 @@ class InvoiceView extends StatefulWidget {
|
||||||
Key key,
|
Key key,
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
@required this.isFilter,
|
@required this.isFilter,
|
||||||
|
@required this.tabIndex,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final EntityViewVM viewModel;
|
final EntityViewVM viewModel;
|
||||||
final bool isFilter;
|
final bool isFilter;
|
||||||
|
final int tabIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_InvoiceViewState createState() => new _InvoiceViewState();
|
_InvoiceViewState createState() => new _InvoiceViewState();
|
||||||
|
|
@ -76,6 +78,15 @@ class _InvoiceViewState extends State<InvoiceView>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
|
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||||
|
_controller.index = widget.tabIndex ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_controller.removeListener(_onTabChanged);
|
_controller.removeListener(_onTabChanged);
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ class InvoiceViewScreen extends StatelessWidget {
|
||||||
return InvoiceView(
|
return InvoiceView(
|
||||||
viewModel: viewModel,
|
viewModel: viewModel,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: viewModel.state.invoiceUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,12 @@ class ProductView extends StatefulWidget {
|
||||||
Key key,
|
Key key,
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
@required this.isFilter,
|
@required this.isFilter,
|
||||||
|
@required this.tabIndex,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final ProductViewVM viewModel;
|
final ProductViewVM viewModel;
|
||||||
final bool isFilter;
|
final bool isFilter;
|
||||||
|
final int tabIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_ProductViewState createState() => _ProductViewState();
|
_ProductViewState createState() => _ProductViewState();
|
||||||
|
|
@ -47,6 +49,15 @@ class _ProductViewState extends State<ProductView>
|
||||||
store.dispatch(UpdateProductTab(tabIndex: _controller.index));
|
store.dispatch(UpdateProductTab(tabIndex: _controller.index));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
|
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||||
|
_controller.index = widget.tabIndex ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_controller.removeListener(_onTabChanged);
|
_controller.removeListener(_onTabChanged);
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ class ProductViewScreen extends StatelessWidget {
|
||||||
return ProductView(
|
return ProductView(
|
||||||
viewModel: vm,
|
viewModel: vm,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: vm.state.productUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,12 @@ class ProjectView extends StatefulWidget {
|
||||||
Key key,
|
Key key,
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
@required this.isFilter,
|
@required this.isFilter,
|
||||||
|
@required this.tabIndex,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final ProjectViewVM viewModel;
|
final ProjectViewVM viewModel;
|
||||||
final bool isFilter;
|
final bool isFilter;
|
||||||
|
final int tabIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_ProjectViewState createState() => new _ProjectViewState();
|
_ProjectViewState createState() => new _ProjectViewState();
|
||||||
|
|
@ -47,6 +49,15 @@ class _ProjectViewState extends State<ProjectView>
|
||||||
store.dispatch(UpdateProjectTab(tabIndex: _controller.index));
|
store.dispatch(UpdateProjectTab(tabIndex: _controller.index));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
|
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||||
|
_controller.index = widget.tabIndex ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_controller.removeListener(_onTabChanged);
|
_controller.removeListener(_onTabChanged);
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ class ProjectViewScreen extends StatelessWidget {
|
||||||
return ProjectView(
|
return ProjectView(
|
||||||
viewModel: vm,
|
viewModel: vm,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: vm.state.projectUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class QuoteViewScreen extends StatelessWidget {
|
||||||
return InvoiceView(
|
return InvoiceView(
|
||||||
viewModel: viewModel,
|
viewModel: viewModel,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: viewModel.state.quoteUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ class RecurringInvoiceViewScreen extends StatelessWidget {
|
||||||
return InvoiceView(
|
return InvoiceView(
|
||||||
viewModel: vm,
|
viewModel: vm,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: vm.state.recurringInvoiceUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -17,10 +17,12 @@ class TaskView extends StatefulWidget {
|
||||||
Key key,
|
Key key,
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
@required this.isFilter,
|
@required this.isFilter,
|
||||||
|
@required this.tabIndex,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final TaskViewVM viewModel;
|
final TaskViewVM viewModel;
|
||||||
final bool isFilter;
|
final bool isFilter;
|
||||||
|
final int tabIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_TaskViewState createState() => new _TaskViewState();
|
_TaskViewState createState() => new _TaskViewState();
|
||||||
|
|
@ -45,6 +47,15 @@ class _TaskViewState extends State<TaskView>
|
||||||
store.dispatch(UpdateTaskTab(tabIndex: _controller.index));
|
store.dispatch(UpdateTaskTab(tabIndex: _controller.index));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
|
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||||
|
_controller.index = widget.tabIndex ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_controller.removeListener(_onTabChanged);
|
_controller.removeListener(_onTabChanged);
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ class TaskViewScreen extends StatelessWidget {
|
||||||
return TaskView(
|
return TaskView(
|
||||||
viewModel: vm,
|
viewModel: vm,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: vm.state.taskUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -16,10 +16,12 @@ class VendorView extends StatefulWidget {
|
||||||
Key key,
|
Key key,
|
||||||
@required this.viewModel,
|
@required this.viewModel,
|
||||||
@required this.isFilter,
|
@required this.isFilter,
|
||||||
|
@required this.tabIndex,
|
||||||
}) : super(key: key);
|
}) : super(key: key);
|
||||||
|
|
||||||
final VendorViewVM viewModel;
|
final VendorViewVM viewModel;
|
||||||
final bool isFilter;
|
final bool isFilter;
|
||||||
|
final int tabIndex;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
_VendorViewState createState() => _VendorViewState();
|
_VendorViewState createState() => _VendorViewState();
|
||||||
|
|
@ -46,6 +48,15 @@ class _VendorViewState extends State<VendorView>
|
||||||
store.dispatch(UpdateVendorTab(tabIndex: _controller.index));
|
store.dispatch(UpdateVendorTab(tabIndex: _controller.index));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(oldWidget) {
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
|
||||||
|
if (oldWidget.tabIndex != widget.tabIndex) {
|
||||||
|
_controller.index = widget.tabIndex ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void dispose() {
|
void dispose() {
|
||||||
_controller.removeListener(_onTabChanged);
|
_controller.removeListener(_onTabChanged);
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,7 @@ class VendorViewScreen extends StatelessWidget {
|
||||||
return VendorView(
|
return VendorView(
|
||||||
viewModel: vm,
|
viewModel: vm,
|
||||||
isFilter: isFilter,
|
isFilter: isFilter,
|
||||||
|
tabIndex: vm.state.vendorUIState.tabIndex,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue