This commit is contained in:
unknown 2018-07-02 10:31:45 +03:00
parent 06b4a07ebe
commit 817f141100
4 changed files with 16 additions and 2 deletions

View File

@ -15,6 +15,7 @@ class EntityDropdown extends StatefulWidget {
@required this.entityMap, @required this.entityMap,
@required this.onFilterChanged, @required this.onFilterChanged,
@required this.onSelected, @required this.onSelected,
this.validator,
this.initialValue, this.initialValue,
}); });
@ -25,6 +26,7 @@ class EntityDropdown extends StatefulWidget {
final String initialValue; final String initialValue;
final Function(String) onFilterChanged; final Function(String) onFilterChanged;
final Function(int) onSelected; final Function(int) onSelected;
final Function validator;
@override @override
_EntityDropdownState createState() => _EntityDropdownState(); _EntityDropdownState createState() => _EntityDropdownState();
@ -138,6 +140,7 @@ class _EntityDropdownState extends State<EntityDropdown> {
onTap: () => _showOptions(), onTap: () => _showOptions(),
child: IgnorePointer( child: IgnorePointer(
child: TextFormField( child: TextFormField(
validator: widget.validator,
controller: _textController, controller: _textController,
decoration: InputDecoration( decoration: InputDecoration(
labelText: widget.labelText, labelText: widget.labelText,

View File

@ -20,7 +20,7 @@ class InvoiceEditDetails extends StatefulWidget {
InvoiceEditDetailsState createState() => new InvoiceEditDetailsState(); InvoiceEditDetailsState createState() => new InvoiceEditDetailsState();
} }
class InvoiceEditDetailsState extends State<InvoiceEditDetails> { class InvoiceEditDetailsState extends State<InvoiceEditDetails> with AutomaticKeepAliveClientMixin {
final _invoiceNumberController = TextEditingController(); final _invoiceNumberController = TextEditingController();
final _invoiceDateController = TextEditingController(); final _invoiceDateController = TextEditingController();
final _poNumberController = TextEditingController(); final _poNumberController = TextEditingController();
@ -29,6 +29,9 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
List _controllers = []; List _controllers = [];
@override
bool get wantKeepAlive => true;
@override @override
void didChangeDependencies() { void didChangeDependencies() {
_controllers = [ _controllers = [
@ -98,6 +101,9 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
viewModel.clientMap[invoice.clientId]?.displayName, viewModel.clientMap[invoice.clientId]?.displayName,
entityList: viewModel.clientList, entityList: viewModel.clientList,
entityMap: viewModel.clientMap, entityMap: viewModel.clientMap,
validator: (String val) => val.trim().isEmpty
? AppLocalization.of(context).pleaseSelectAClient
: null,
onFilterChanged: viewModel.onEntityFilterChanged, onFilterChanged: viewModel.onEntityFilterChanged,
onSelected: (clientId) { onSelected: (clientId) {
viewModel.onChanged( viewModel.onChanged(

View File

@ -58,7 +58,7 @@ class ItemEditDetails extends StatefulWidget {
ItemEditDetailsState createState() => ItemEditDetailsState(); ItemEditDetailsState createState() => ItemEditDetailsState();
} }
class ItemEditDetailsState extends State<ItemEditDetails> { class ItemEditDetailsState extends State<ItemEditDetails> with AutomaticKeepAliveClientMixin {
final _productKeyController = TextEditingController(); final _productKeyController = TextEditingController();
final _notesController = TextEditingController(); final _notesController = TextEditingController();
final _costController = TextEditingController(); final _costController = TextEditingController();
@ -66,6 +66,9 @@ class ItemEditDetailsState extends State<ItemEditDetails> {
var _controllers = []; var _controllers = [];
@override
bool get wantKeepAlive => true;
@override @override
void didChangeDependencies() { void didChangeDependencies() {
_controllers = [ _controllers = [

View File

@ -143,6 +143,7 @@ class AppLocalization {
'edit': 'Edit', 'edit': 'Edit',
'dismiss': 'Dismiss', 'dismiss': 'Dismiss',
'please_select_a_date': 'Please select a date', 'please_select_a_date': 'Please select a date',
'please_select_a_client': 'Please select a client',
'payment': 'Payment', 'payment': 'Payment',
'payments': 'Payments', 'payments': 'Payments',
@ -296,6 +297,7 @@ class AppLocalization {
String get edit => _localizedValues[locale.languageCode]['edit']; String get edit => _localizedValues[locale.languageCode]['edit'];
String get dismiss => _localizedValues[locale.languageCode]['dismiss']; String get dismiss => _localizedValues[locale.languageCode]['dismiss'];
String get pleaseSelectADate => _localizedValues[locale.languageCode]['please_select_a_date']; String get pleaseSelectADate => _localizedValues[locale.languageCode]['please_select_a_date'];
String get pleaseSelectAClient => _localizedValues[locale.languageCode]['please_select_a_client'];
String get payment => _localizedValues[locale.languageCode]['payment']; String get payment => _localizedValues[locale.languageCode]['payment'];
String get payments => _localizedValues[locale.languageCode]['payments']; String get payments => _localizedValues[locale.languageCode]['payments'];