Null safety
This commit is contained in:
parent
3b435fd70b
commit
9de6d6ee53
|
|
@ -499,17 +499,19 @@ List<ChartDataGroup> chartPayments(
|
|||
refundedData.entityMap[date] = [];
|
||||
}
|
||||
|
||||
totals[STATUS_COMPLETED]![date] += completedAmount;
|
||||
totals[STATUS_REFUNDED]![date] += refunded ?? 0;
|
||||
totals[STATUS_COMPLETED]![date] =
|
||||
totals[STATUS_COMPLETED]![date]! + completedAmount;
|
||||
totals[STATUS_REFUNDED]![date] =
|
||||
totals[STATUS_REFUNDED]![date]! + refunded;
|
||||
|
||||
counts[STATUS_COMPLETED]++;
|
||||
counts[STATUS_COMPLETED] = counts[STATUS_COMPLETED]! + 1;
|
||||
activeData.entityMap[date]!.add(payment.id);
|
||||
activeData.periodTotal += completedAmount;
|
||||
|
||||
if ((payment.refunded ?? 0) > 0) {
|
||||
counts[STATUS_REFUNDED]++;
|
||||
counts[STATUS_REFUNDED] = counts[STATUS_REFUNDED]! + 1;
|
||||
refundedData.entityMap[date]!.add(payment.id);
|
||||
refundedData.periodTotal += refunded ?? 0;
|
||||
refundedData.periodTotal += refunded;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -693,16 +695,19 @@ List<ChartDataGroup> chartTasks(
|
|||
if (task.isInvoiced) {
|
||||
if (invoiceMap.containsKey(task.invoiceId) &&
|
||||
invoiceMap[task.invoiceId]!.isPaid) {
|
||||
totals[STATUS_PAID]![date] += amount;
|
||||
totals[STATUS_PAID]![date] =
|
||||
totals[STATUS_PAID]![date]! + amount;
|
||||
paidData.entityMap[date]!.add(task.id);
|
||||
paidData.periodTotal += amount;
|
||||
} else {
|
||||
totals[STATUS_INVOICED]![date] += amount;
|
||||
totals[STATUS_INVOICED]![date] =
|
||||
totals[STATUS_INVOICED]![date]! + amount;
|
||||
invoicedData.entityMap[date]!.add(task.id);
|
||||
invoicedData.periodTotal += amount;
|
||||
}
|
||||
} else {
|
||||
totals[STATUS_LOGGED]![date] += amount;
|
||||
totals[STATUS_LOGGED]![date] =
|
||||
totals[STATUS_LOGGED]![date]! + amount;
|
||||
loggedData.entityMap[date]!.add(task.id);
|
||||
loggedData.periodTotal += amount;
|
||||
}
|
||||
|
|
@ -713,12 +718,12 @@ List<ChartDataGroup> chartTasks(
|
|||
if (task.isInvoiced) {
|
||||
if (invoiceMap.containsKey(task.invoiceId) &&
|
||||
invoiceMap[task.invoiceId]!.isPaid) {
|
||||
counts[STATUS_PAID]++;
|
||||
counts[STATUS_PAID] = counts[STATUS_PAID]! + 1;
|
||||
} else {
|
||||
counts[STATUS_INVOICED]++;
|
||||
counts[STATUS_INVOICED] = counts[STATUS_INVOICED]! + 1;
|
||||
}
|
||||
} else {
|
||||
counts[STATUS_LOGGED]++;
|
||||
counts[STATUS_LOGGED] = counts[STATUS_LOGGED]! + 1;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
|
@ -857,24 +862,26 @@ List<ChartDataGroup> chartExpenses(
|
|||
if (expense.isInvoiced) {
|
||||
final invoice = invoiceMap[expense.invoiceId] ?? InvoiceEntity();
|
||||
if (invoice.isPaid) {
|
||||
totals[STATUS_PAID]![date] += amount;
|
||||
counts[STATUS_PAID]++;
|
||||
totals[STATUS_PAID]![date] = totals[STATUS_PAID]![date]! + amount;
|
||||
counts[STATUS_PAID] = counts[STATUS_PAID]! + 1;
|
||||
paidData.entityMap[date]!.add(expense.id);
|
||||
paidData.periodTotal += amount;
|
||||
} else {
|
||||
totals[STATUS_INVOICED]![date] += amount;
|
||||
counts[STATUS_INVOICED]++;
|
||||
totals[STATUS_INVOICED]![date] =
|
||||
totals[STATUS_INVOICED]![date]! + amount;
|
||||
counts[STATUS_INVOICED] = counts[STATUS_INVOICED]! + 1;
|
||||
invoicedData.entityMap[date]!.add(expense.id);
|
||||
invoicedData.periodTotal += amount;
|
||||
}
|
||||
} else if (expense.isPending) {
|
||||
totals[STATUS_PENDING]![date] += amount;
|
||||
counts[STATUS_PENDING]++;
|
||||
totals[STATUS_PENDING]![date] =
|
||||
totals[STATUS_PENDING]![date]! + amount;
|
||||
counts[STATUS_PENDING] = counts[STATUS_PENDING]! + 1;
|
||||
pendingData.entityMap[date]!.add(expense.id);
|
||||
pendingData.periodTotal += amount;
|
||||
} else {
|
||||
totals[STATUS_LOGGED]![date] += amount;
|
||||
counts[STATUS_LOGGED]++;
|
||||
totals[STATUS_LOGGED]![date] = totals[STATUS_LOGGED]![date]! + amount;
|
||||
counts[STATUS_LOGGED] = counts[STATUS_LOGGED]! + 1;
|
||||
loggedData.entityMap[date]!.add(expense.id);
|
||||
loggedData.periodTotal += amount;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -483,67 +483,82 @@ void handleDocumentAction(
|
|||
context, AppLocalization.of(context)!.deletedDocument);
|
||||
switch (document!.parentType) {
|
||||
case EntityType.client:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadClient(clientId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadClient(clientId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.credit:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadCredit(creditId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadCredit(creditId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.expense:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadExpense(expenseId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadExpense(expenseId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.group:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadGroup(groupId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store
|
||||
.dispatch(LoadGroup(groupId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.invoice:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadInvoice(invoiceId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadInvoice(invoiceId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.product:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadProduct(productId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadProduct(productId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.project:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadProject(projectId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadProject(projectId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.purchaseOrder:
|
||||
completer.future.then<Null>(((value) => store.dispatch(
|
||||
LoadPurchaseOrder(
|
||||
purchaseOrderId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadPurchaseOrder(
|
||||
purchaseOrderId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.quote:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadQuote(quoteId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store
|
||||
.dispatch(LoadQuote(quoteId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.recurringExpense:
|
||||
completer.future.then<Null>(((value) => store.dispatch(
|
||||
LoadRecurringExpense(
|
||||
recurringExpenseId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadRecurringExpense(
|
||||
recurringExpenseId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.recurringInvoice:
|
||||
completer.future.then<Null>(((value) => store.dispatch(
|
||||
LoadRecurringInvoice(
|
||||
recurringInvoiceId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadRecurringInvoice(
|
||||
recurringInvoiceId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.task:
|
||||
completer.future.then<Null>(((value) =>
|
||||
store.dispatch(LoadTask(taskId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store
|
||||
.dispatch(LoadTask(taskId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
case EntityType.vendor:
|
||||
completer.future.then<Null>(((value) => store
|
||||
.dispatch(LoadVendor(vendorId: document.parentId))) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() => store.dispatch(
|
||||
LoadVendor(vendorId: document.parentId)))
|
||||
as FutureOr<Null> Function(Null));
|
||||
break;
|
||||
default:
|
||||
completer.future
|
||||
.then<Null>(((value) => store.dispatch(RefreshData())) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() =>
|
||||
store.dispatch(RefreshData()))
|
||||
as FutureOr<Null> Function(Null));
|
||||
}
|
||||
|
||||
completer.future
|
||||
.then<Null>(((value) => store.dispatch(RefreshData())) as FutureOr<Null> Function(Null));
|
||||
completer.future.then<Null>((() =>
|
||||
store.dispatch(RefreshData()))
|
||||
as FutureOr<Null> Function(Null));
|
||||
store.dispatch(DeleteDocumentRequest(
|
||||
completer: completer,
|
||||
documentIds: [document.id],
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ class ClientEditBillingAddressState extends State<ClientEditBillingAddress> {
|
|||
entityList: memoizedCountryList(viewModel.staticState.countryMap),
|
||||
labelText: localization.country,
|
||||
entityId: client.countryId,
|
||||
onSelected: (SelectableEntity country) => viewModel.onChanged(
|
||||
onSelected: (SelectableEntity? country) => viewModel.onChanged(
|
||||
client.rebuild((b) => b..countryId = country?.id ?? '')),
|
||||
),
|
||||
if (client.hasShippingAddress && client.areAddressesDifferent)
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@ class ClientEditNotesState extends State<ClientEditNotes> {
|
|||
entityList: memoizedIndustryList(viewModel.staticState.industryMap),
|
||||
labelText: localization.industry,
|
||||
entityId: client.industryId,
|
||||
onSelected: (SelectableEntity industry) => viewModel.onChanged(
|
||||
onSelected: (SelectableEntity? industry) => viewModel.onChanged(
|
||||
client.rebuild((b) => b..industryId = industry?.id ?? '')),
|
||||
),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -99,7 +99,7 @@ class ClientEditSettingsState extends State<ClientEditSettings> {
|
|||
entityList: memoizedCurrencyList(viewModel.staticState.currencyMap),
|
||||
labelText: localization.currency,
|
||||
entityId: client.currencyId,
|
||||
onSelected: (SelectableEntity currency) => viewModel.onChanged(client
|
||||
onSelected: (SelectableEntity? currency) => viewModel.onChanged(client
|
||||
.rebuild((b) => b..settings.currencyId = currency?.id ?? '')),
|
||||
),
|
||||
EntityDropdown(
|
||||
|
|
@ -107,7 +107,7 @@ class ClientEditSettingsState extends State<ClientEditSettings> {
|
|||
entityList: memoizedLanguageList(viewModel.staticState.languageMap),
|
||||
labelText: localization.language,
|
||||
entityId: client.languageId,
|
||||
onSelected: (SelectableEntity language) => viewModel.onChanged(client
|
||||
onSelected: (SelectableEntity? language) => viewModel.onChanged(client
|
||||
.rebuild((b) => b..settings.languageId = language?.id ?? '')),
|
||||
),
|
||||
if (company.isModuleEnabled(EntityType.invoice))
|
||||
|
|
|
|||
|
|
@ -143,7 +143,7 @@ class ClientEditShippingAddressState extends State<ClientEditShippingAddress> {
|
|||
entityList: memoizedCountryList(viewModel.staticState.countryMap),
|
||||
labelText: localization.country,
|
||||
entityId: client.shippingCountryId,
|
||||
onSelected: (SelectableEntity country) => viewModel.onChanged(
|
||||
onSelected: (SelectableEntity? country) => viewModel.onChanged(
|
||||
client.rebuild((b) => b..shippingCountryId = country?.id ?? '')),
|
||||
),
|
||||
if (client.hasBillingAddress && client.areAddressesDifferent)
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ class _CompanyGatewayEditState extends State<CompanyGatewayEdit>
|
|||
memoizedGatewayList(state.staticState.gatewayMap),
|
||||
labelText: localization.provider,
|
||||
entityId: companyGateway.gatewayId,
|
||||
onSelected: (SelectableEntity gateway) {
|
||||
onSelected: (SelectableEntity? gateway) {
|
||||
viewModel.onChanged(
|
||||
companyGateway.rebuild((b) => b
|
||||
..feesAndLimitsMap[((gateway ?? GatewayEntity())
|
||||
|
|
@ -237,18 +237,18 @@ class _CompanyGatewayEditState extends State<CompanyGatewayEdit>
|
|||
AppDropdownButton<String>(
|
||||
labelText: localization.captureCard,
|
||||
value: companyGateway.tokenBilling,
|
||||
selectedItemBuilder: (companyGateway.tokenBilling ?? '')
|
||||
.isEmpty
|
||||
? null
|
||||
: (context) => [
|
||||
SettingsEntity.AUTO_BILL_ALWAYS,
|
||||
SettingsEntity.AUTO_BILL_OPT_OUT,
|
||||
SettingsEntity.AUTO_BILL_OPT_IN,
|
||||
SettingsEntity.AUTO_BILL_OFF,
|
||||
]
|
||||
.map(
|
||||
(type) => Text(localization.lookup(type)!))
|
||||
.toList(),
|
||||
selectedItemBuilder:
|
||||
(companyGateway.tokenBilling ?? '').isEmpty
|
||||
? null
|
||||
: (context) => [
|
||||
SettingsEntity.AUTO_BILL_ALWAYS,
|
||||
SettingsEntity.AUTO_BILL_OPT_OUT,
|
||||
SettingsEntity.AUTO_BILL_OPT_IN,
|
||||
SettingsEntity.AUTO_BILL_OFF,
|
||||
]
|
||||
.map((type) =>
|
||||
Text(localization.lookup(type)!))
|
||||
.toList(),
|
||||
onChanged: (dynamic value) => viewModel.onChanged(
|
||||
companyGateway
|
||||
.rebuild((b) => b..tokenBilling = value)),
|
||||
|
|
|
|||
|
|
@ -300,7 +300,7 @@ class ExpenseEditDetailsState extends State<ExpenseEditDetails> {
|
|||
entityList: memoizedCurrencyList(staticState.currencyMap),
|
||||
labelText: localization.currency,
|
||||
entityId: expense.currencyId,
|
||||
onSelected: (SelectableEntity currency) => viewModel.onChanged!(
|
||||
onSelected: (SelectableEntity? currency) => viewModel.onChanged!(
|
||||
viewModel.expense!
|
||||
.rebuild((b) => b..currencyId = currency?.id ?? '')),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -134,7 +134,8 @@ class ExpenseEditSettingsState extends State<ExpenseEditSettings> {
|
|||
formatNumberType: FormatNumberType.inputMoney)!;
|
||||
_exchangeRateController.addListener(_onChanged);
|
||||
|
||||
viewModel.onChanged!(expense.rebuild((b) => b..exchangeRate = exchangeRate));
|
||||
viewModel
|
||||
.onChanged!(expense.rebuild((b) => b..exchangeRate = exchangeRate));
|
||||
_convertedAmount = 0;
|
||||
}
|
||||
|
||||
|
|
@ -252,7 +253,7 @@ class ExpenseEditSettingsState extends State<ExpenseEditSettings> {
|
|||
entityList: memoizedCurrencyList(staticState.currencyMap),
|
||||
labelText: localization.currency,
|
||||
entityId: expense.invoiceCurrencyId,
|
||||
onSelected: (SelectableEntity currency) =>
|
||||
onSelected: (SelectableEntity? currency) =>
|
||||
_setCurrency(currency as CurrencyEntity?),
|
||||
),
|
||||
DecoratedFormField(
|
||||
|
|
|
|||
|
|
@ -376,7 +376,7 @@ class _PaymentEditState extends State<PaymentEdit> {
|
|||
memoizedCurrencyList(viewModel.staticState.currencyMap),
|
||||
labelText: localization.currency,
|
||||
entityId: payment.exchangeCurrencyId,
|
||||
onSelected: (SelectableEntity currency) =>
|
||||
onSelected: (SelectableEntity? currency) =>
|
||||
convertCurrency(currency),
|
||||
),
|
||||
DecoratedFormField(
|
||||
|
|
|
|||
|
|
@ -438,7 +438,7 @@ class _CompanyDetailsState extends State<CompanyDetails>
|
|||
memoizedIndustryList(state.staticState.industryMap),
|
||||
labelText: localization.industry,
|
||||
entityId: company.industryId,
|
||||
onSelected: (SelectableEntity industry) =>
|
||||
onSelected: (SelectableEntity? industry) =>
|
||||
viewModel.onCompanyChanged(
|
||||
company
|
||||
.rebuild((b) => b..industryId = industry?.id ?? ''),
|
||||
|
|
@ -496,7 +496,7 @@ class _CompanyDetailsState extends State<CompanyDetails>
|
|||
memoizedCountryList(state.staticState.countryMap),
|
||||
labelText: localization.country,
|
||||
entityId: settings.countryId,
|
||||
onSelected: (SelectableEntity country) =>
|
||||
onSelected: (SelectableEntity? country) =>
|
||||
viewModel.onSettingsChanged(settings
|
||||
.rebuild((b) => b..countryId = country?.id)),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -147,7 +147,7 @@ class _LocalizationSettingsState extends State<LocalizationSettings>
|
|||
memoizedCurrencyList(state.staticState.currencyMap),
|
||||
labelText: localization.currency,
|
||||
entityId: settings.currencyId,
|
||||
onSelected: (SelectableEntity currency) =>
|
||||
onSelected: (SelectableEntity? currency) =>
|
||||
viewModel.onSettingsChanged(settings
|
||||
.rebuild((b) => b..currencyId = currency?.id)),
|
||||
),
|
||||
|
|
@ -175,7 +175,7 @@ class _LocalizationSettingsState extends State<LocalizationSettings>
|
|||
memoizedLanguageList(state.staticState.languageMap),
|
||||
labelText: localization.language,
|
||||
entityId: settings.languageId,
|
||||
onSelected: (SelectableEntity language) =>
|
||||
onSelected: (SelectableEntity? language) =>
|
||||
viewModel.onSettingsChanged(settings
|
||||
.rebuild((b) => b..languageId = language?.id)),
|
||||
),
|
||||
|
|
@ -186,7 +186,7 @@ class _LocalizationSettingsState extends State<LocalizationSettings>
|
|||
memoizedTimezoneList(state.staticState.timezoneMap),
|
||||
labelText: localization.timezone,
|
||||
entityId: settings.timezoneId,
|
||||
onSelected: (SelectableEntity timezone) =>
|
||||
onSelected: (SelectableEntity? timezone) =>
|
||||
viewModel.onSettingsChanged(settings
|
||||
.rebuild((b) => b..timezoneId = timezone?.id)),
|
||||
),
|
||||
|
|
@ -196,7 +196,7 @@ class _LocalizationSettingsState extends State<LocalizationSettings>
|
|||
memoizedDateFormatList(state.staticState.dateFormatMap),
|
||||
labelText: localization.dateFormat,
|
||||
entityId: settings.dateFormatId,
|
||||
onSelected: (SelectableEntity dateFormat) =>
|
||||
onSelected: (SelectableEntity? dateFormat) =>
|
||||
viewModel.onSettingsChanged(settings
|
||||
.rebuild((b) => b..dateFormatId = dateFormat?.id)),
|
||||
),
|
||||
|
|
@ -418,7 +418,7 @@ class _AddCompanyDialogState extends State<_AddCompanyDialog> {
|
|||
entityType: EntityType.country,
|
||||
entityList: memoizedCountryList(state.staticState.countryMap),
|
||||
labelText: localization.country,
|
||||
onSelected: (SelectableEntity country) {
|
||||
onSelected: (SelectableEntity? country) {
|
||||
_countryId = country.id;
|
||||
},
|
||||
),
|
||||
|
|
|
|||
|
|
@ -146,15 +146,18 @@ class _SettingsWizardState extends State<SettingsWizard> {
|
|||
callback: (password, idToken) {
|
||||
final localization = AppLocalization.of(context);
|
||||
final completer = Completer<Null>();
|
||||
completer.future.then((value) {
|
||||
completer.future
|
||||
.then((value) {
|
||||
final toastCompleter =
|
||||
snackBarCompleter<Null>(context, localization!.savedSettings);
|
||||
toastCompleter.future.then((value) {
|
||||
toastCompleter.future
|
||||
.then((value) {
|
||||
setState(() {
|
||||
_isSaving = false;
|
||||
_showLogo = true;
|
||||
});
|
||||
} as FutureOr<_> Function(Null)).catchError((Object error) {
|
||||
} as FutureOr<_> Function(Null))
|
||||
.catchError((Object error) {
|
||||
setState(() {
|
||||
_isSaving = false;
|
||||
});
|
||||
|
|
@ -171,7 +174,8 @@ class _SettingsWizardState extends State<SettingsWizard> {
|
|||
),
|
||||
),
|
||||
);
|
||||
} as FutureOr<_> Function(Null)).catchError((Object error) {
|
||||
} as FutureOr<_> Function(Null))
|
||||
.catchError((Object error) {
|
||||
setState(() => _isSaving = false);
|
||||
});
|
||||
|
||||
|
|
@ -232,7 +236,7 @@ class _SettingsWizardState extends State<SettingsWizard> {
|
|||
entityList: memoizedCurrencyList(state.staticState.currencyMap),
|
||||
labelText: localization.currency,
|
||||
entityId: _currencyId,
|
||||
onSelected: (SelectableEntity currency) =>
|
||||
onSelected: (SelectableEntity? currency) =>
|
||||
setState(() => _currencyId = currency?.id),
|
||||
validator: (dynamic value) =>
|
||||
value.isEmpty ? localization.pleaseEnterAValue : null,
|
||||
|
|
@ -243,7 +247,7 @@ class _SettingsWizardState extends State<SettingsWizard> {
|
|||
entityList: memoizedLanguageList(state.staticState.languageMap),
|
||||
labelText: localization.language,
|
||||
entityId: _languageId,
|
||||
onSelected: (SelectableEntity language) {
|
||||
onSelected: (SelectableEntity? language) {
|
||||
setState(() => _languageId = language?.id);
|
||||
store.dispatch(UpdateCompanyLanguage(languageId: language?.id));
|
||||
AppBuilder.of(context)!.rebuild();
|
||||
|
|
|
|||
|
|
@ -150,7 +150,7 @@ class _TransactionEditState extends State<TransactionEdit> {
|
|||
memoizedCurrencyList(state.staticState.currencyMap),
|
||||
labelText: localization.currency,
|
||||
entityId: transaction.currencyId,
|
||||
onSelected: (SelectableEntity currency) =>
|
||||
onSelected: (SelectableEntity? currency) =>
|
||||
viewModel.onChanged(viewModel.transaction.rebuild(
|
||||
(b) => b..currencyId = currency?.id ?? '')),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ class VendorEditAddressState extends State<VendorEditAddress> {
|
|||
memoizedCountryList(viewModel.state.staticState.countryMap),
|
||||
labelText: localization.country,
|
||||
entityId: vendor.countryId,
|
||||
onSelected: (SelectableEntity country) => viewModel
|
||||
onSelected: (SelectableEntity? country) => viewModel
|
||||
.onChanged(vendor.rebuild((b) => b..countryId = country?.id)),
|
||||
),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ class VendorEditSettingsState extends State<VendorEditSettings> {
|
|||
entityList: memoizedCurrencyList(state.staticState.currencyMap),
|
||||
labelText: localization.currency,
|
||||
entityId: vendor.currencyId,
|
||||
onSelected: (SelectableEntity currency) => viewModel.onChanged(
|
||||
onSelected: (SelectableEntity? currency) => viewModel.onChanged(
|
||||
vendor.rebuild((b) => b..currencyId = currency?.id ?? '')),
|
||||
),
|
||||
EntityDropdown(
|
||||
|
|
@ -54,7 +54,7 @@ class VendorEditSettingsState extends State<VendorEditSettings> {
|
|||
entityList: memoizedLanguageList(state.staticState.languageMap),
|
||||
labelText: localization.language,
|
||||
entityId: vendor.languageId,
|
||||
onSelected: (SelectableEntity language) => viewModel.onChanged(
|
||||
onSelected: (SelectableEntity? language) => viewModel.onChanged(
|
||||
vendor.rebuild((b) => b..languageId = language?.id ?? '')),
|
||||
),
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue