Tablet layout
This commit is contained in:
parent
8ac5642c06
commit
e06fe9b36a
|
|
@ -1,10 +1,15 @@
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/client/client_selectors.dart';
|
import 'package:invoiceninja_flutter/redux/client/client_selectors.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/expense/expense_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/invoice/invoice_selectors.dart';
|
import 'package:invoiceninja_flutter/redux/invoice/invoice_selectors.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/payment/payment_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/product/product_selectors.dart';
|
import 'package:invoiceninja_flutter/redux/product/product_selectors.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/project/project_selectors.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/quote/quote_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/static/static_state.dart';
|
import 'package:invoiceninja_flutter/redux/static/static_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/client/client_state.dart';
|
import 'package:invoiceninja_flutter/redux/client/client_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/invoice/invoice_state.dart';
|
import 'package:invoiceninja_flutter/redux/invoice/invoice_state.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/task/task_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/entity_ui_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/entity_ui_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/ui_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/ui_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
|
||||||
|
|
@ -18,6 +23,7 @@ import 'package:built_value/serializer.dart';
|
||||||
// STARTER: import - do not remove comment
|
// STARTER: import - do not remove comment
|
||||||
import 'package:invoiceninja_flutter/redux/document/document_state.dart';
|
import 'package:invoiceninja_flutter/redux/document/document_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/expense/expense_state.dart';
|
import 'package:invoiceninja_flutter/redux/expense/expense_state.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/vendor/vendor_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/vendor/vendor_state.dart';
|
import 'package:invoiceninja_flutter/redux/vendor/vendor_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/task/task_state.dart';
|
import 'package:invoiceninja_flutter/redux/task/task_state.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/project/project_state.dart';
|
import 'package:invoiceninja_flutter/redux/project/project_state.dart';
|
||||||
|
|
@ -217,6 +223,18 @@ abstract class AppState implements Built<AppState, AppStateBuilder> {
|
||||||
return hasProductChanges(productUIState.editing, productState.map);
|
return hasProductChanges(productUIState.editing, productState.map);
|
||||||
case InvoiceEditScreen.route:
|
case InvoiceEditScreen.route:
|
||||||
return hasInvoiceChanges(invoiceUIState.editing, invoiceState.map);
|
return hasInvoiceChanges(invoiceUIState.editing, invoiceState.map);
|
||||||
|
case PaymentEditScreen.route:
|
||||||
|
return hasPaymentChanges(paymentUIState.editing, paymentState.map);
|
||||||
|
case QuoteEditScreen.route:
|
||||||
|
return hasQuoteChanges(quoteUIState.editing, quoteState.map);
|
||||||
|
case ProjectEditScreen.route:
|
||||||
|
return hasProjectChanges(projectUIState.editing, projectState.map);
|
||||||
|
case TaskEditScreen.route:
|
||||||
|
return hasTaskChanges(taskUIState.editing, taskState.map);
|
||||||
|
case VendorEditScreen.route:
|
||||||
|
return hasVendorChanges(vendorUIState.editing, vendorState.map);
|
||||||
|
case ExpenseEditScreen.route:
|
||||||
|
return hasExpenseChanges(expenseUIState.editing, expenseState.map);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (uiState.currentRoute.endsWith('/edit')) {
|
if (uiState.currentRoute.endsWith('/edit')) {
|
||||||
|
|
|
||||||
|
|
@ -203,3 +203,8 @@ List<int> clientExpenseList(
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool hasExpenseChanges(
|
||||||
|
ExpenseEntity expense, BuiltMap<int, ExpenseEntity> expenseMap) =>
|
||||||
|
expense.isNew || expense != expenseMap[expense.id];
|
||||||
|
|
|
||||||
|
|
@ -138,3 +138,7 @@ String invoiceStatsForClient(
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool hasPaymentChanges(
|
||||||
|
PaymentEntity payment, BuiltMap<int, PaymentEntity> paymentMap) =>
|
||||||
|
payment.isNew || payment != paymentMap[payment.id];
|
||||||
|
|
|
||||||
|
|
@ -165,3 +165,8 @@ String projectStatsForClient(
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool hasProjectChanges(
|
||||||
|
ProjectEntity project, BuiltMap<int, ProjectEntity> projectMap) =>
|
||||||
|
project.isNew || project != projectMap[project.id];
|
||||||
|
|
|
||||||
|
|
@ -94,3 +94,7 @@ String quoteStatsForClient(int clientId, BuiltMap<int, InvoiceEntity> quoteMap,
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool hasQuoteChanges(
|
||||||
|
InvoiceEntity quote, BuiltMap<int, InvoiceEntity> quoteMap) =>
|
||||||
|
quote.isNew || quote != quoteMap[quote.id];
|
||||||
|
|
|
||||||
|
|
@ -220,3 +220,8 @@ String taskStatsForProject(int projectId, BuiltMap<int, TaskEntity> taskMap,
|
||||||
|
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool hasTaskChanges(
|
||||||
|
TaskEntity task, BuiltMap<int, TaskEntity> taskMap) =>
|
||||||
|
task.isNew || task != taskMap[task.id];
|
||||||
|
|
|
||||||
|
|
@ -78,3 +78,8 @@ double calculateVendorBalance(int vendorId, int currencyId,
|
||||||
|
|
||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool hasVendorChanges(
|
||||||
|
VendorEntity vendor, BuiltMap<int, VendorEntity> vendorMap) =>
|
||||||
|
vendor.isNew || vendor != vendorMap[vendor.id];
|
||||||
|
|
|
||||||
|
|
@ -27,8 +27,10 @@ class MainScreen extends StatelessWidget {
|
||||||
mainIndex = 2;
|
mainIndex = 2;
|
||||||
} else if (mainRoute == EntityType.invoice.name) {
|
} else if (mainRoute == EntityType.invoice.name) {
|
||||||
mainIndex = 3;
|
mainIndex = 3;
|
||||||
} else if (mainRoute == 'settings') {
|
} else if (mainRoute == EntityType.payment.name) {
|
||||||
mainIndex = 4;
|
mainIndex = 4;
|
||||||
|
} else if (mainRoute == 'settings') {
|
||||||
|
mainIndex = 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Row(
|
return Row(
|
||||||
|
|
@ -55,6 +57,11 @@ class MainScreen extends StatelessWidget {
|
||||||
viewWidget: InvoiceViewScreen(),
|
viewWidget: InvoiceViewScreen(),
|
||||||
editWidget: InvoiceEditScreen(),
|
editWidget: InvoiceEditScreen(),
|
||||||
),
|
),
|
||||||
|
EntityScreens(
|
||||||
|
listWidget: PaymentScreen(),
|
||||||
|
viewWidget: PaymentViewScreen(),
|
||||||
|
editWidget: PaymentEditScreen(),
|
||||||
|
),
|
||||||
SettingsScreen(),
|
SettingsScreen(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -96,6 +96,7 @@ class _ExpenseEditState extends State<ExpenseEdit>
|
||||||
body: Form(
|
body: Form(
|
||||||
key: _formKey,
|
key: _formKey,
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
|
key: ValueKey(viewModel.expense.id),
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
ExpenseEditDetails(
|
ExpenseEditDetails(
|
||||||
|
|
|
||||||
|
|
@ -111,6 +111,7 @@ class _TaskEditState extends State<TaskEdit>
|
||||||
body: Form(
|
body: Form(
|
||||||
key: _formKey,
|
key: _formKey,
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
|
key: ValueKey(viewModel.task.id),
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
TaskEditDetailsScreen(),
|
TaskEditDetailsScreen(),
|
||||||
|
|
|
||||||
|
|
@ -99,6 +99,7 @@ class _VendorEditState extends State<VendorEdit>
|
||||||
body: Form(
|
body: Form(
|
||||||
key: _formKey,
|
key: _formKey,
|
||||||
child: TabBarView(
|
child: TabBarView(
|
||||||
|
key: ValueKey(viewModel.vendor.id),
|
||||||
controller: _controller,
|
controller: _controller,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
VendorEditDetails(
|
VendorEditDetails(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue