Show error if email address is not set

This commit is contained in:
Hillel Coren 2021-11-09 17:48:45 +02:00
parent c954244978
commit eafca5c0ab
3 changed files with 25 additions and 0 deletions

View File

@ -106,6 +106,8 @@ class EntityAction extends EnumClass {
return toSnakeCase(super.toString());
}
bool get isEmail => toString().startsWith('email');
String toApiParam() {
final value = toString();

View File

@ -53,6 +53,7 @@ class MessageDialog extends StatelessWidget {
Padding(
padding: const EdgeInsets.only(right: 10),
child: TextButton(
autofocus: true,
onPressed: () {
Navigator.of(context).pop();
if (onDismiss != null) {

View File

@ -2,6 +2,7 @@ import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:invoiceninja_flutter/data/models/entities.dart';
import 'package:invoiceninja_flutter/data/models/models.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_contacts_vm.dart';
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details_vm.dart';
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_footer.dart';
@ -11,6 +12,7 @@ import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_pdf_vm.dart';
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_item_selector.dart';
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
import 'package:invoiceninja_flutter/utils/dialogs.dart';
import 'package:invoiceninja_flutter/utils/localization.dart';
class InvoiceEdit extends StatefulWidget {
@ -78,6 +80,26 @@ class _InvoiceEditState extends State<InvoiceEdit>
return;
}
final viewModel = widget.viewModel;
final invoice = viewModel.invoice;
final client = viewModel.state.clientState.get(invoice.clientId);
final localization = AppLocalization.of(context);
if (action.isEmail && !client.hasEmailAddress) {
showMessageDialog(
context: context,
message: localization.clientEmailNotSet,
secondaryActions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
editEntity(context: context, entity: client);
},
child: Text(localization.editClient.toUpperCase()))
]);
return;
}
widget.viewModel.onSavePressed(context, action);
}