Navigation...

This commit is contained in:
Hillel Coren 2020-05-20 16:58:05 +03:00
parent 44d14a90b2
commit 8830482337
17 changed files with 26 additions and 0 deletions

View File

@ -1,5 +1,6 @@
import 'package:flutter/material.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_state.dart';
import 'package:invoiceninja_flutter/redux/dashboard/dashboard_actions.dart';
@ -15,6 +16,7 @@ class ListScaffold extends StatelessWidget {
const ListScaffold({
@required this.appBarTitle,
@required this.body,
this.entityType,
this.appBarActions,
this.bottomNavigationBar,
this.floatingActionButton,
@ -26,6 +28,7 @@ class ListScaffold extends StatelessWidget {
this.showCheckbox = false,
});
final EntityType entityType;
final Widget body;
final AppBottomBar bottomNavigationBar;
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(

View File

@ -37,6 +37,7 @@ class ClientScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.client,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.clientList.length,
showCheckbox: isInMultiselect,

View File

@ -36,6 +36,7 @@ class CompanyGatewayScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.companyGateway,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.companyGatewayList.length,
showCheckbox: isInMultiselect,

View File

@ -37,6 +37,7 @@ class CreditScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.credit,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.creditList.length,
showCheckbox: isInMultiselect,

View File

@ -37,6 +37,7 @@ class DesignScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.design,
isSettings: true,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.designList.length,

View File

@ -36,6 +36,7 @@ class DocumentScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.document,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.documentList.length,
showCheckbox: isInMultiselect,

View File

@ -38,6 +38,7 @@ class ExpenseScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.expense,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.expenseList.length,
showCheckbox: isInMultiselect,

View File

@ -38,6 +38,7 @@ class GroupSettingsScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.group,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.groupList.length,
showCheckbox: isInMultiselect,

View File

@ -38,6 +38,7 @@ class InvoiceScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.invoice,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.invoiceList.length,
showCheckbox: isInMultiselect,

View File

@ -34,6 +34,7 @@ class PaymentScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.payment,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.paymentList.length,
showCheckbox: isInMultiselect,

View File

@ -36,6 +36,7 @@ class ProductScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.product,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.productList.length,
showCheckbox: isInMultiselect,

View File

@ -36,6 +36,7 @@ class ProjectScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.project,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.projectList.length,
showCheckbox: isInMultiselect,

View File

@ -38,6 +38,7 @@ class QuoteScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.quote,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.quoteList.length,
showCheckbox: isInMultiselect,

View File

@ -37,6 +37,7 @@ class TaskScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.task,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.taskList.length,
showCheckbox: isInMultiselect,

View File

@ -36,6 +36,7 @@ class TaxRateSettingsScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.taxRate,
isSettings: true,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.taxRateList.length,

View File

@ -37,6 +37,7 @@ class UserScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.user,
isSettings: true,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.userList.length,

View File

@ -36,6 +36,7 @@ class VendorScreen extends StatelessWidget {
final isInMultiselect = listUIState.isInMultiselect();
return ListScaffold(
entityType: EntityType.vendor,
isChecked: isInMultiselect &&
listUIState.selectedIds.length == viewModel.vendorList.length,
showCheckbox: isInMultiselect,