From a9135c5f583a5d269c6c64ce0a40dfa5d68e918f Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Mon, 16 Sep 2024 09:44:48 -0300 Subject: [PATCH] fix MediaUploadFile and TextFormField validate --- .../media_upload_button.dart | 14 +++++++------- lib/pages/pets_page/pets_page_model.dart | 5 ++++- lib/pages/pets_page/pets_page_widget.dart | 3 +++ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/lib/components/atomic_components/shared_components_atoms/media_upload_button.dart b/lib/components/atomic_components/shared_components_atoms/media_upload_button.dart index 719d4efb..7946e9b7 100644 --- a/lib/components/atomic_components/shared_components_atoms/media_upload_button.dart +++ b/lib/components/atomic_components/shared_components_atoms/media_upload_button.dart @@ -14,13 +14,13 @@ class MediaUploadButtonUtil extends StatefulWidget { final String labelText; FFUploadedFile? uploadedFiles; - MediaUploadButtonUtil( - {Key? key, - required this.onUploadComplete, - required this.isUploading, - required this.labelText, - this.uploadedFiles}) - : super(key: key); + MediaUploadButtonUtil({ + Key? key, + required this.onUploadComplete, + required this.isUploading, + required this.labelText, + this.uploadedFiles, + }) : super(key: key); @override State createState() => _MediaUploadButtonUtilState(); diff --git a/lib/pages/pets_page/pets_page_model.dart b/lib/pages/pets_page/pets_page_model.dart index d29b1b7a..11963e0e 100644 --- a/lib/pages/pets_page/pets_page_model.dart +++ b/lib/pages/pets_page/pets_page_model.dart @@ -13,6 +13,8 @@ class PetsPageModel extends FlutterFlowModel { late final TabController tabBarController; VoidCallback? onUpdatePet; VoidCallback? onRegisterPet; + VoidCallback? safeSetState; + final GlobalKey registerFormKey = GlobalKey(); final GlobalKey updateFormKey = GlobalKey(); @@ -152,7 +154,7 @@ class PetsPageModel extends FlutterFlowModel { // Validador do formulário bool isFormValid(BuildContext context) { - if (uploadedLocalFile == null) { + if (uploadedLocalFile == null || uploadedLocalFile!.bytes!.isEmpty) { return false; } if (textControllerName.text.isEmpty || @@ -272,6 +274,7 @@ class PetsPageModel extends FlutterFlowModel { void handleUploadComplete(FFUploadedFile uploadedFile) { uploadedLocalFile = uploadedFile; + safeSetState?.call(); } void handleEditingChanged(bool editing) { diff --git a/lib/pages/pets_page/pets_page_widget.dart b/lib/pages/pets_page/pets_page_widget.dart index 05cec7dc..dc5df7df 100644 --- a/lib/pages/pets_page/pets_page_widget.dart +++ b/lib/pages/pets_page/pets_page_widget.dart @@ -67,6 +67,9 @@ class _PetsPageWidgetState extends State _model.clearFields(); }); }; + _model.safeSetState = () { + safeSetState(() {}); + }; widget.pet != null ? _model.isEditing = true : _model.isEditing = false;