Navigation...
This commit is contained in:
parent
44d14a90b2
commit
8830482337
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
|
import 'package:invoiceninja_flutter/data/models/entities.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
|
||||||
|
|
@ -15,6 +16,7 @@ class ListScaffold extends StatelessWidget {
|
||||||
const ListScaffold({
|
const ListScaffold({
|
||||||
@required this.appBarTitle,
|
@required this.appBarTitle,
|
||||||
@required this.body,
|
@required this.body,
|
||||||
|
this.entityType,
|
||||||
this.appBarActions,
|
this.appBarActions,
|
||||||
this.bottomNavigationBar,
|
this.bottomNavigationBar,
|
||||||
this.floatingActionButton,
|
this.floatingActionButton,
|
||||||
|
|
@ -26,6 +28,7 @@ class ListScaffold extends StatelessWidget {
|
||||||
this.showCheckbox = false,
|
this.showCheckbox = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
final EntityType entityType;
|
||||||
final Widget body;
|
final Widget body;
|
||||||
final AppBottomBar bottomNavigationBar;
|
final AppBottomBar bottomNavigationBar;
|
||||||
final FloatingActionButton floatingActionButton;
|
final FloatingActionButton floatingActionButton;
|
||||||
|
|
@ -78,6 +81,13 @@ class ListScaffold extends StatelessWidget {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
} else if (entityType != null) {
|
||||||
|
leading = IconButton(
|
||||||
|
icon: Icon(Icons.add),
|
||||||
|
onPressed: () {
|
||||||
|
createEntityByType(entityType: entityType, context: context);
|
||||||
|
},
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ class ClientScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.client,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.clientList.length,
|
listUIState.selectedIds.length == viewModel.clientList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class CompanyGatewayScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.companyGateway,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.companyGatewayList.length,
|
listUIState.selectedIds.length == viewModel.companyGatewayList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ class CreditScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.credit,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.creditList.length,
|
listUIState.selectedIds.length == viewModel.creditList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ class DesignScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.design,
|
||||||
isSettings: true,
|
isSettings: true,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.designList.length,
|
listUIState.selectedIds.length == viewModel.designList.length,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class DocumentScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.document,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.documentList.length,
|
listUIState.selectedIds.length == viewModel.documentList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ class ExpenseScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.expense,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.expenseList.length,
|
listUIState.selectedIds.length == viewModel.expenseList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ class GroupSettingsScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.group,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.groupList.length,
|
listUIState.selectedIds.length == viewModel.groupList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ class InvoiceScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.invoice,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.invoiceList.length,
|
listUIState.selectedIds.length == viewModel.invoiceList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,7 @@ class PaymentScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.payment,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.paymentList.length,
|
listUIState.selectedIds.length == viewModel.paymentList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class ProductScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.product,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.productList.length,
|
listUIState.selectedIds.length == viewModel.productList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class ProjectScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.project,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.projectList.length,
|
listUIState.selectedIds.length == viewModel.projectList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ class QuoteScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.quote,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.quoteList.length,
|
listUIState.selectedIds.length == viewModel.quoteList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ class TaskScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.task,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.taskList.length,
|
listUIState.selectedIds.length == viewModel.taskList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class TaxRateSettingsScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.taxRate,
|
||||||
isSettings: true,
|
isSettings: true,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.taxRateList.length,
|
listUIState.selectedIds.length == viewModel.taxRateList.length,
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ class UserScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.user,
|
||||||
isSettings: true,
|
isSettings: true,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.userList.length,
|
listUIState.selectedIds.length == viewModel.userList.length,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ class VendorScreen extends StatelessWidget {
|
||||||
final isInMultiselect = listUIState.isInMultiselect();
|
final isInMultiselect = listUIState.isInMultiselect();
|
||||||
|
|
||||||
return ListScaffold(
|
return ListScaffold(
|
||||||
|
entityType: EntityType.vendor,
|
||||||
isChecked: isInMultiselect &&
|
isChecked: isInMultiselect &&
|
||||||
listUIState.selectedIds.length == viewModel.vendorList.length,
|
listUIState.selectedIds.length == viewModel.vendorList.length,
|
||||||
showCheckbox: isInMultiselect,
|
showCheckbox: isInMultiselect,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue