This commit is contained in:
Hillel Coren 2019-11-10 21:11:02 +02:00
parent 69c90bbaa0
commit 99463872fd
61 changed files with 109 additions and 103 deletions

View File

@ -120,8 +120,8 @@ Map<String, String> _getHeaders(String token) => {
};
void _checkResponse(http.Response response) {
//debugPrint('response: ${response.statusCode} ${response.body}', wrapWidth: 1000);
print('response: ${response.statusCode} ${response.body}');
debugPrint('response: ${response.statusCode} ${response.body}', wrapWidth: 1000);
//print('response: ${response.statusCode} ${response.body}');
print('headers: ${response.headers}');
final version = response.headers['x-app-version'];

View File

@ -309,15 +309,15 @@ void handleClientAction(
break;
case EntityAction.restore:
store.dispatch(RestoreClientRequest(
snackBarCompleter(context, localization.restoredClient), clientIds));
snackBarCompleter<Null>(context, localization.restoredClient), clientIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveClientRequest(
snackBarCompleter(context, localization.archivedClient), clientIds));
snackBarCompleter<Null>(context, localization.archivedClient), clientIds));
break;
case EntityAction.delete:
store.dispatch(DeleteClientRequest(
snackBarCompleter(context, localization.deletedClient), clientIds));
snackBarCompleter<Null>(context, localization.deletedClient), clientIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.clientListState.isInMultiselect()) {

View File

@ -263,17 +263,17 @@ void handleCompanyGatewayAction(BuildContext context,
break;
case EntityAction.restore:
store.dispatch(RestoreCompanyGatewayRequest(
snackBarCompleter(context, localization.restoredCompanyGateway),
snackBarCompleter<Null>(context, localization.restoredCompanyGateway),
companyGatewayIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveCompanyGatewayRequest(
snackBarCompleter(context, localization.archivedCompanyGateway),
snackBarCompleter<Null>(context, localization.archivedCompanyGateway),
companyGatewayIds));
break;
case EntityAction.delete:
store.dispatch(DeleteCompanyGatewayRequest(
snackBarCompleter(context, localization.deletedCompanyGateway),
snackBarCompleter<Null>(context, localization.deletedCompanyGateway),
companyGatewayIds));
break;
case EntityAction.toggleMultiselect:

View File

@ -253,17 +253,17 @@ void handleDocumentAction(
break;
case EntityAction.restore:
store.dispatch(RestoreDocumentRequest(
snackBarCompleter(context, localization.restoredDocument),
snackBarCompleter<Null>(context, localization.restoredDocument),
documentIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveDocumentRequest(
snackBarCompleter(context, localization.archivedDocument),
snackBarCompleter<Null>(context, localization.archivedDocument),
documentIds));
break;
case EntityAction.delete:
store.dispatch(DeleteDocumentRequest(
snackBarCompleter(context, localization.deletedDocument),
snackBarCompleter<Null>(context, localization.deletedDocument),
documentIds));
break;
case EntityAction.toggleMultiselect:

View File

@ -287,17 +287,17 @@ void handleExpenseAction(
break;
case EntityAction.restore:
store.dispatch(RestoreExpenseRequest(
snackBarCompleter(context, localization.restoredExpense),
snackBarCompleter<Null>(context, localization.restoredExpense),
expenseIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveExpenseRequest(
snackBarCompleter(context, localization.archivedExpense),
snackBarCompleter<Null>(context, localization.archivedExpense),
expenseIds));
break;
case EntityAction.delete:
store.dispatch(DeleteExpenseRequest(
snackBarCompleter(context, localization.deletedExpense), expenseIds));
snackBarCompleter<Null>(context, localization.deletedExpense), expenseIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.expenseListState.isInMultiselect()) {

View File

@ -262,15 +262,15 @@ void handleGroupAction(
break;
case EntityAction.restore:
store.dispatch(RestoreGroupRequest(
snackBarCompleter(context, localization.restoredGroup), groupIds));
snackBarCompleter<Null>(context, localization.restoredGroup), groupIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveGroupRequest(
snackBarCompleter(context, localization.archivedGroup), groupIds));
snackBarCompleter<Null>(context, localization.archivedGroup), groupIds));
break;
case EntityAction.delete:
store.dispatch(DeleteGroupRequest(
snackBarCompleter(context, localization.deletedGroup), groupIds));
snackBarCompleter<Null>(context, localization.deletedGroup), groupIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.groupListState.isInMultiselect()) {

View File

@ -372,12 +372,12 @@ void handleInvoiceAction(BuildContext context, List<BaseEntity> invoices,
break;
case EntityAction.markSent:
store.dispatch(MarkSentInvoiceRequest(
snackBarCompleter(context, localization.markedInvoiceAsSent),
snackBarCompleter<Null>(context, localization.markedInvoiceAsSent),
invoice.id));
break;
case EntityAction.sendEmail:
store.dispatch(ShowEmailInvoice(
completer: snackBarCompleter(context, localization.emailedInvoice),
completer: snackBarCompleter<Null>(context, localization.emailedInvoice),
invoice: invoice,
context: context));
break;
@ -394,17 +394,17 @@ void handleInvoiceAction(BuildContext context, List<BaseEntity> invoices,
break;
case EntityAction.restore:
store.dispatch(RestoreInvoiceRequest(
snackBarCompleter(context, localization.restoredInvoice),
snackBarCompleter<Null>(context, localization.restoredInvoice),
invoiceIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveInvoiceRequest(
snackBarCompleter(context, localization.archivedInvoice),
snackBarCompleter<Null>(context, localization.archivedInvoice),
invoiceIds));
break;
case EntityAction.delete:
store.dispatch(DeleteInvoiceRequest(
snackBarCompleter(context, localization.deletedInvoice), invoiceIds));
snackBarCompleter<Null>(context, localization.deletedInvoice), invoiceIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.invoiceListState.isInMultiselect()) {

View File

@ -274,21 +274,21 @@ void handlePaymentAction(
break;
case EntityAction.sendEmail:
store.dispatch(EmailPaymentRequest(
snackBarCompleter(context, localization.emailedPayment), payment));
snackBarCompleter<Null>(context, localization.emailedPayment), payment));
break;
case EntityAction.restore:
store.dispatch(RestorePaymentRequest(
snackBarCompleter(context, localization.restoredPayment),
snackBarCompleter<Null>(context, localization.restoredPayment),
paymentIds));
break;
case EntityAction.archive:
store.dispatch(ArchivePaymentRequest(
snackBarCompleter(context, localization.archivedPayment),
snackBarCompleter<Null>(context, localization.archivedPayment),
paymentIds));
break;
case EntityAction.delete:
store.dispatch(DeletePaymentRequest(
snackBarCompleter(context, localization.deletedPayment), paymentIds));
snackBarCompleter<Null>(context, localization.deletedPayment), paymentIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.paymentListState.isInMultiselect()) {

View File

@ -230,17 +230,17 @@ void handleProductAction(
break;
case EntityAction.restore:
store.dispatch(RestoreProductRequest(
snackBarCompleter(context, localization.restoredProduct),
snackBarCompleter<Null>(context, localization.restoredProduct),
productIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveProductRequest(
snackBarCompleter(context, localization.archivedProduct),
snackBarCompleter<Null>(context, localization.archivedProduct),
productIds));
break;
case EntityAction.delete:
store.dispatch(DeleteProductRequest(
snackBarCompleter(context, localization.deletedProduct), productIds));
snackBarCompleter<Null>(context, localization.deletedProduct), productIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.productListState.isInMultiselect()) {

View File

@ -287,19 +287,19 @@ void handleProjectAction(
break;
case EntityAction.restore:
store.dispatch(RestoreProjectRequest(
snackBarCompleter(
snackBarCompleter<Null>(
context, AppLocalization.of(context).restoredProject),
projectIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveProjectRequest(
snackBarCompleter(
snackBarCompleter<Null>(
context, AppLocalization.of(context).archivedProject),
projectIds));
break;
case EntityAction.delete:
store.dispatch(DeleteProjectRequest(
snackBarCompleter(
snackBarCompleter<Null>(
context, AppLocalization.of(context).deletedProject),
projectIds));
break;

View File

@ -404,12 +404,12 @@ Future handleQuoteAction(
break;
case EntityAction.markSent:
store.dispatch(MarkSentQuoteRequest(
snackBarCompleter(context, localization.markedQuoteAsSent),
snackBarCompleter<Null>(context, localization.markedQuoteAsSent),
quote.id));
break;
case EntityAction.sendEmail:
store.dispatch(ShowEmailQuote(
completer: snackBarCompleter(context, localization.emailedQuote),
completer: snackBarCompleter<Null>(context, localization.emailedQuote),
quote: quote,
context: context));
break;
@ -422,15 +422,15 @@ Future handleQuoteAction(
break;
case EntityAction.restore:
store.dispatch(RestoreQuoteRequest(
snackBarCompleter(context, localization.restoredQuote), quoteIds));
snackBarCompleter<Null>(context, localization.restoredQuote), quoteIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveQuoteRequest(
snackBarCompleter(context, localization.archivedQuote), quoteIds));
snackBarCompleter<Null>(context, localization.archivedQuote), quoteIds));
break;
case EntityAction.delete:
store.dispatch(DeleteQuoteRequest(
snackBarCompleter(context, localization.deletedQuote), quoteIds));
snackBarCompleter<Null>(context, localization.deletedQuote), quoteIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.quoteListState.isInMultiselect()) {

View File

@ -341,15 +341,15 @@ void handleTaskAction(
break;
case EntityAction.restore:
store.dispatch(RestoreTaskRequest(
snackBarCompleter(context, localization.restoredTask), taskIds));
snackBarCompleter<Null>(context, localization.restoredTask), taskIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveTaskRequest(
snackBarCompleter(context, localization.archivedTask), taskIds));
snackBarCompleter<Null>(context, localization.archivedTask), taskIds));
break;
case EntityAction.delete:
store.dispatch(DeleteTaskRequest(
snackBarCompleter(context, localization.deletedTask), taskIds));
snackBarCompleter<Null>(context, localization.deletedTask), taskIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.taskListState.isInMultiselect()) {

View File

@ -259,17 +259,17 @@ void handleTaxRateAction(
break;
case EntityAction.restore:
store.dispatch(RestoreTaxRateRequest(
snackBarCompleter(context, localization.restoredTaxRate),
snackBarCompleter<Null>(context, localization.restoredTaxRate),
taxRateIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveTaxRateRequest(
snackBarCompleter(context, localization.archivedTaxRate),
snackBarCompleter<Null>(context, localization.archivedTaxRate),
taxRateIds));
break;
case EntityAction.delete:
store.dispatch(DeleteTaxRateRequest(
snackBarCompleter(context, localization.deletedTaxRate), taxRateIds));
snackBarCompleter<Null>(context, localization.deletedTaxRate), taxRateIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.taxRateListState.isInMultiselect()) {

View File

@ -250,15 +250,15 @@ void handleUserAction(
break;
case EntityAction.restore:
store.dispatch(RestoreUserRequest(
snackBarCompleter(context, localization.restoredUser), userIds));
snackBarCompleter<Null>(context, localization.restoredUser), userIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveUserRequest(
snackBarCompleter(context, localization.archivedUser), userIds));
snackBarCompleter<Null>(context, localization.archivedUser), userIds));
break;
case EntityAction.delete:
store.dispatch(DeleteUserRequest(
snackBarCompleter(context, localization.deletedUser), userIds));
snackBarCompleter<Null>(context, localization.deletedUser), userIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.userListState.isInMultiselect()) {

View File

@ -296,15 +296,15 @@ void handleVendorAction(
break;
case EntityAction.restore:
store.dispatch(RestoreVendorRequest(
snackBarCompleter(context, localization.restoredVendor), vendorIds));
snackBarCompleter<Null>(context, localization.restoredVendor), vendorIds));
break;
case EntityAction.archive:
store.dispatch(ArchiveVendorRequest(
snackBarCompleter(context, localization.archivedVendor), vendorIds));
snackBarCompleter<Null>(context, localization.archivedVendor), vendorIds));
break;
case EntityAction.delete:
store.dispatch(DeleteVendorRequest(
snackBarCompleter(context, localization.deletedVendor), vendorIds));
snackBarCompleter<Null>(context, localization.deletedVendor), vendorIds));
break;
case EntityAction.toggleMultiselect:
if (!store.state.vendorListState.isInMultiselect()) {

View File

@ -64,7 +64,7 @@ class ClientListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadClients(completer: completer, force: true));
return completer.future;

View File

@ -64,7 +64,7 @@ class ClientViewVM {
ClientEntity(id: state.clientUIState.selectedId);
Future<Null> _handleRefresh(BuildContext context, bool loadActivities) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadClient(
completer: completer,

View File

@ -54,7 +54,7 @@ class CompanyGatewayListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadCompanyGateways(completer: completer, force: true));
return completer.future;

View File

@ -55,7 +55,7 @@ class CompanyGatewayViewVM {
CompanyGatewayEntity(id: state.companyGatewayUIState.selectedId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadCompanyGateway(
completer: completer, companyGatewayId: companyGateway.id));

View File

@ -54,7 +54,7 @@ class DashboardVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadDashboard(completer, true));
return completer.future;

View File

@ -53,7 +53,7 @@ class DocumentListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadDocuments(completer: completer, force: true));
return completer.future;

View File

@ -55,7 +55,7 @@ class DocumentViewVM {
DocumentEntity(id: state.documentUIState.selectedId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(
LoadDocument(completer: completer, documentId: document.id));

View File

@ -55,7 +55,7 @@ class ExpenseListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadExpenses(completer: completer, force: true));
return completer.future;

View File

@ -67,7 +67,7 @@ class ExpenseViewVM {
final invoice = state.invoiceState.map[expense.invoiceId];
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadExpense(completer: completer, expenseId: expense.id));
return completer.future;
@ -170,7 +170,7 @@ class ExpenseViewVM {
},
onDeleteDocument: (BuildContext context, DocumentEntity document) {
store.dispatch(DeleteDocumentRequest(
snackBarCompleter(
snackBarCompleter<Null>(
context, AppLocalization.of(context).deletedDocument),
[document.id]));
});

View File

@ -75,7 +75,7 @@ class GroupEditVM {
store.dispatch(UpdateCurrentRoute(state.uiState.previousRoute));
},
onSavePressed: (BuildContext context) {
final Completer<GroupEntity> completer = new Completer<GroupEntity>();
final Completer<GroupEntity> completer = Completer<GroupEntity>();
store.dispatch(SaveGroupRequest(completer: completer, group: group));
return completer.future.then((savedGroup) {
if (isMobile(context)) {

View File

@ -54,7 +54,7 @@ class GroupListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadGroups(completer: completer, force: true));
return completer.future;

View File

@ -57,7 +57,7 @@ class GroupViewVM {
GroupEntity(id: state.groupUIState.selectedId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadGroup(completer: completer, groupId: group.id));
return completer.future;

View File

@ -108,7 +108,7 @@ class InvoiceListVM extends EntityListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadInvoices(completer: completer, force: true));
return completer.future;

View File

@ -120,7 +120,7 @@ class InvoiceViewVM extends EntityViewVM {
final client = state.clientState.get(invoice.clientId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadInvoice(completer: completer, invoiceId: invoice.id));
return completer.future;
@ -211,7 +211,7 @@ class InvoiceViewVM extends EntityViewVM {
},
onDeleteDocument: (BuildContext context, DocumentEntity document) {
store.dispatch(DeleteDocumentRequest(
snackBarCompleter(
snackBarCompleter<Null>(
context, AppLocalization.of(context).deletedDocument),
[document.id]));
},

View File

@ -55,7 +55,7 @@ class PaymentListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadPayments(completer: completer, force: true));
return completer.future;

View File

@ -48,7 +48,7 @@ class ProductListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadProducts(completer: completer, force: true));
return completer.future;

View File

@ -55,7 +55,7 @@ class ProductViewVM {
/*
Future<Null> _handleRefresh(BuildContext context, bool loadActivities) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadProduct(
completer: completer,

View File

@ -54,7 +54,7 @@ class ProjectListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadProjects(completer: completer, force: true));
return completer.future;

View File

@ -60,7 +60,7 @@ class ProjectViewVM {
ClientEntity(id: project.clientId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadProject(completer: completer, projectId: project.id));
return completer.future;

View File

@ -72,7 +72,7 @@ class QuoteListVM extends EntityListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadQuotes(completer: completer, force: true));
return completer.future;

View File

@ -85,7 +85,7 @@ class QuoteViewVM extends EntityViewVM {
ClientEntity(id: quote.clientId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadQuote(completer: completer, quoteId: quote.id));
return completer.future;
@ -156,7 +156,7 @@ class QuoteViewVM extends EntityViewVM {
},
onDeleteDocument: (BuildContext context, DocumentEntity document) {
store.dispatch(DeleteDocumentRequest(
snackBarCompleter(
snackBarCompleter<Null>(
context, AppLocalization.of(context).deletedDocument),
[document.id]));
},

View File

@ -54,7 +54,7 @@ class ClientPortalVM {
store.dispatch(UpdateCompany(company: company)),
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:

View File

@ -2,8 +2,10 @@ import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_redux/flutter_redux.dart';
import 'package:invoiceninja_flutter/constants.dart';
import 'package:invoiceninja_flutter/data/models/client_model.dart';
import 'package:invoiceninja_flutter/data/models/company_model.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/group_model.dart';
import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
import 'package:invoiceninja_flutter/redux/group/group_actions.dart';
import 'package:invoiceninja_flutter/redux/settings/settings_actions.dart';
@ -54,19 +56,23 @@ class CompanyDetailsVM {
store.dispatch(UpdateCompany(company: company)),
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
store.dispatch(SaveCompanyRequest(
completer: completer,
company: settingsUIState.userCompany.company));
break;
case EntityType.group:
final completer = snackBarCompleter<GroupEntity>(
context, AppLocalization.of(context).savedSettings);
store.dispatch(SaveGroupRequest(
completer: completer, group: settingsUIState.group));
break;
case EntityType.client:
final completer = snackBarCompleter<ClientEntity>(
context, AppLocalization.of(context).savedSettings);
store.dispatch(SaveClientRequest(
completer: completer, client: settingsUIState.client));
break;
@ -74,7 +80,7 @@ class CompanyDetailsVM {
},
onUploadLogo: (context, path) {
final type = state.uiState.settingsUIState.entityType;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).uploadedLogo);
store.dispatch(
UploadLogoRequest(completer: completer, path: path, type: type));

View File

@ -49,7 +49,7 @@ class CustomFieldsVM {
store.dispatch(UpdateCompany(company: company)),
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:

View File

@ -46,7 +46,7 @@ class DeviceSettingsVM {
static DeviceSettingsVM fromStore(Store<AppState> store) {
void _refreshData(BuildContext context) async {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete,
shouldPop: true);
store.dispatch(RefreshData(

View File

@ -50,7 +50,7 @@ class EmailSettingsVM {
},
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:

View File

@ -55,7 +55,7 @@ class GeneratedNumbersVM {
},
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:

View File

@ -52,7 +52,7 @@ class InvoiceDesignVM {
},
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:

View File

@ -55,7 +55,7 @@ class LocalizationSettingsVM {
store.dispatch(UpdateCompany(company: company)),
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:

View File

@ -46,7 +46,7 @@ class ProductSettingsVM {
store.dispatch(UpdateCompany(company: company)),
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
store.dispatch(SaveCompanyRequest(
completer: completer,

View File

@ -58,7 +58,7 @@ class TaxSettingsVM {
store.dispatch(UpdateCompany(company: company)),
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
store.dispatch(SaveCompanyRequest(
completer: completer,

View File

@ -51,7 +51,7 @@ class TemplatesAndRemindersVM {
},
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:

View File

@ -43,7 +43,7 @@ class UserDetailsVM {
user: state.uiState.settingsUIState.userCompany.user,
onChanged: (user) => store.dispatch(UpdateUser(user: user)),
onSavePressed: (context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
store.dispatch(SaveUserRequest(
completer: completer,

View File

@ -50,7 +50,7 @@ class WorkflowSettingsVM {
},
onSavePressed: (context) {
final settingsUIState = state.uiState.settingsUIState;
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).savedSettings);
switch (settingsUIState.entityType) {
case EntityType.company:

View File

@ -56,7 +56,7 @@ class TaskListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadTasks(completer: completer, force: true));
return completer.future;

View File

@ -68,7 +68,7 @@ class TaskViewVM {
final invoice = state.invoiceState.map[task.invoiceId];
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadTask(completer: completer, taskId: task.id));
return completer.future;

View File

@ -53,7 +53,7 @@ class TaxRateListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadTaxRates(completer: completer, force: true));
return completer.future;

View File

@ -54,7 +54,7 @@ class TaxRateViewVM {
TaxRateEntity(id: state.taxRateUIState.selectedId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadTaxRate(completer: completer, taxRateId: taxRate.id));
return completer.future;

View File

@ -53,7 +53,7 @@ class UserListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadUsers(completer: completer, force: true));
return completer.future;

View File

@ -61,7 +61,7 @@ class UserViewVM {
UserEntity(id: state.userUIState.selectedId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadUser(completer: completer, userId: user.id));
return completer.future;

View File

@ -53,7 +53,7 @@ class VendorListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadVendors(completer: completer, force: true));
return completer.future;

View File

@ -58,7 +58,7 @@ class VendorViewVM {
VendorEntity(id: state.vendorUIState.selectedId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadVendor(completer: completer, vendorId: vendor.id));
return completer.future;

View File

@ -25,9 +25,9 @@ Completer<Null> refreshCompleter(BuildContext context) {
}
*/
Completer<Null> snackBarCompleter(BuildContext context, String message,
Completer<T> snackBarCompleter<T>(BuildContext context, String message,
{bool shouldPop = false}) {
final Completer<Null> completer = Completer<Null>();
final Completer<T> completer = Completer<T>();
completer.future.then((_) {
if (shouldPop) {

View File

@ -255,15 +255,15 @@ void handleStubAction(
break;
case EntityAction.restore:
store.dispatch(RestoreStubRequest(
snackBarCompleter(context, localization.restoredStub), stub.id));
snackBarCompleter<Null>(context, localization.restoredStub), stub.id));
break;
case EntityAction.archive:
store.dispatch(ArchiveStubRequest(
snackBarCompleter(context, localization.archivedStub), stub.id));
snackBarCompleter<Null>(context, localization.archivedStub), stub.id));
break;
case EntityAction.delete:
store.dispatch(DeleteStubRequest(
snackBarCompleter(context, localization.deletedStub), stub.id));
snackBarCompleter<Null>(context, localization.deletedStub), stub.id));
break;
case EntityAction.toggleMultiselect:
if (!store.state.stubListState.isInMultiselect()) {

View File

@ -53,7 +53,7 @@ class StubListVM {
if (store.state.isLoading) {
return Future<Null>(null);
}
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadStubs(completer: completer, force: true));
return completer.future;

View File

@ -54,7 +54,7 @@ class StubViewVM {
StubEntity(id: state.stubUIState.selectedId);
Future<Null> _handleRefresh(BuildContext context) {
final completer = snackBarCompleter(
final completer = snackBarCompleter<Null>(
context, AppLocalization.of(context).refreshComplete);
store.dispatch(LoadStub(completer: completer, stubId: stub.id));
return completer.future;