Documents
This commit is contained in:
parent
b743cf7b78
commit
86c653a090
|
|
@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
|
|||
// Project imports:
|
||||
import 'package:invoiceninja_flutter/ui/app/edit_scaffold.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/form_card.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/forms/decorated_form_field.dart';
|
||||
import 'package:invoiceninja_flutter/ui/app/scrollable_listview.dart';
|
||||
import 'package:invoiceninja_flutter/ui/document/edit/document_edit_vm.dart';
|
||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||
|
|
@ -26,20 +27,20 @@ class _DocumentEditState extends State<DocumentEdit> {
|
|||
GlobalKey<FormState>(debugLabel: '_documentEdit');
|
||||
final _debouncer = Debouncer();
|
||||
|
||||
// STARTER: controllers - do not remove comment
|
||||
final _nameController = TextEditingController();
|
||||
|
||||
List<TextEditingController> _controllers = [];
|
||||
|
||||
@override
|
||||
void didChangeDependencies() {
|
||||
_controllers = [
|
||||
// STARTER: array - do not remove comment
|
||||
_nameController,
|
||||
];
|
||||
|
||||
_controllers.forEach((controller) => controller.removeListener(_onChanged));
|
||||
|
||||
//final document = widget.viewModel.document;
|
||||
// STARTER: read value - do not remove comment
|
||||
final document = widget.viewModel.document;
|
||||
_nameController.text = document.name;
|
||||
|
||||
_controllers.forEach((controller) => controller.addListener(_onChanged));
|
||||
|
||||
|
|
@ -57,9 +58,8 @@ class _DocumentEditState extends State<DocumentEdit> {
|
|||
}
|
||||
|
||||
void _onChanged() {
|
||||
final document = widget.viewModel.document.rebuild((b) => b
|
||||
// STARTER: set value - do not remove comment
|
||||
);
|
||||
final document = widget.viewModel.document
|
||||
.rebuild((b) => b..name = _nameController.text.trim());
|
||||
if (document != widget.viewModel.document) {
|
||||
_debouncer.run(() {
|
||||
widget.viewModel.onChanged(document);
|
||||
|
|
@ -67,6 +67,16 @@ class _DocumentEditState extends State<DocumentEdit> {
|
|||
}
|
||||
}
|
||||
|
||||
void _onSavePressed() {
|
||||
final bool isValid = _formKey.currentState.validate();
|
||||
|
||||
if (!isValid) {
|
||||
return;
|
||||
}
|
||||
|
||||
widget.viewModel.onSavePressed(context);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final viewModel = widget.viewModel;
|
||||
|
|
@ -77,21 +87,7 @@ class _DocumentEditState extends State<DocumentEdit> {
|
|||
entity: document,
|
||||
title:
|
||||
document.isNew ? localization.newDocument : localization.editDocument,
|
||||
onSavePressed: (context) {
|
||||
final bool isValid = _formKey.currentState.validate();
|
||||
|
||||
/*
|
||||
setState(() {
|
||||
autoValidate = !isValid ?? false;
|
||||
});
|
||||
*/
|
||||
|
||||
if (!isValid) {
|
||||
return;
|
||||
}
|
||||
|
||||
viewModel.onSavePressed(context);
|
||||
},
|
||||
onSavePressed: (_) => _onSavePressed(),
|
||||
body: Form(
|
||||
key: _formKey,
|
||||
child: Builder(builder: (BuildContext context) {
|
||||
|
|
@ -99,7 +95,16 @@ class _DocumentEditState extends State<DocumentEdit> {
|
|||
children: <Widget>[
|
||||
FormCard(
|
||||
children: <Widget>[
|
||||
// STARTER: widgets - do not remove comment
|
||||
DecoratedFormField(
|
||||
autofocus: true,
|
||||
label: localization.name,
|
||||
keyboardType: TextInputType.text,
|
||||
controller: _nameController,
|
||||
onSavePressed: (_) => _onSavePressed(),
|
||||
validator: (value) => value.trim().isEmpty
|
||||
? localization.pleaseEnterAName
|
||||
: null,
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
|
|
|
|||
Loading…
Reference in New Issue