From 37ad7952eb3d891a793a537cbcb90d5e792bbdb9 Mon Sep 17 00:00:00 2001 From: "J. A. Messias" Date: Tue, 12 Nov 2024 13:47:39 -0300 Subject: [PATCH] remove isInteractive parameter from PetsHistoryScreen widget --- .../pets_history_screen.dart | 1 - lib/pages/pets_page/pets_page_model.dart | 315 +++++++++--------- 2 files changed, 152 insertions(+), 164 deletions(-) diff --git a/lib/pages/pets_on_the_property_page/pets_history_screen.dart b/lib/pages/pets_on_the_property_page/pets_history_screen.dart index 63a11f90..efb7c396 100644 --- a/lib/pages/pets_on_the_property_page/pets_history_screen.dart +++ b/lib/pages/pets_on_the_property_page/pets_history_screen.dart @@ -309,7 +309,6 @@ class _PetsHistoryScreenState extends State with TickerProvid cliUUID: cliUUID, cliName: cliName, model: model, - isInteractive: true, ), ); }, diff --git a/lib/pages/pets_page/pets_page_model.dart b/lib/pages/pets_page/pets_page_model.dart index d5025502..00701a8f 100644 --- a/lib/pages/pets_page/pets_page_model.dart +++ b/lib/pages/pets_page/pets_page_model.dart @@ -20,18 +20,12 @@ import 'package:hub/shared/utils/limited_text_size.dart'; import 'package:hub/shared/utils/validator_util.dart'; class PetsPageModel extends FlutterFlowModel { - static PetsPageModel? _instance = PetsPageModel._internal(); - PetsPageModel._internal(); - factory PetsPageModel() => _instance ?? PetsPageModel._internal(); - static void resetInstance() => _instance = null; - - late final String devUUID; - late final String userUUID; - late final String cliUUID; + late String devUUID = ''; + late String userUUID = ''; + late String cliUUID = ''; late String petAmountRegister = '0'; dynamic item; - late String defaultDropDownText = ''; late final TabController tabBarController; VoidCallback? onUpdatePet; VoidCallback? onRegisterPet; @@ -51,6 +45,8 @@ class PetsPageModel extends FlutterFlowModel { FFUploadedFile? uploadedTempFile; String? imgBase64; + late String defaultDropDownText = ''; + String? dropDownValue1; FormFieldController? dropDownValueController1; @@ -108,9 +104,21 @@ class PetsPageModel extends FlutterFlowModel { TextEditingController? textControllerObservation; String? Function(BuildContext, String?)? textControllerObservationValidator; + Future initAsync() async { + defaultDropDownText = FFLocalizations.of(buildContext!).getVariableText( + enText: 'Select an option', + ptText: 'Selecione uma opção', + ); + dropDownValueController1 = FormFieldController(dropDownValue1 ??= defaultDropDownText); + dropDownValueController2 = FormFieldController(dropDownValue2 ??= defaultDropDownText); + log('() => ): $devUUID'); + + safeSetState?.call(); + log('() => ): $devUUID'); + } + @override void initState(BuildContext context) { - resetInstance(); tabBarController = TabController( vsync: Navigator.of(context), length: 2, @@ -140,49 +148,9 @@ class PetsPageModel extends FlutterFlowModel { userUUID = await StorageHelper().get(SQLiteStorageKey.userUUID.value, Storage.SQLiteStorage) ?? ''; cliUUID = await StorageHelper().get(SQLiteStorageKey.clientUUID.value, Storage.SQLiteStorage) ?? ''; petAmountRegister = await StorageHelper().get(SQLiteStorageKey.petAmount.value, Storage.SQLiteStorage) ?? ''; - safeSetState?.call(); }); } - Future initAsync() async { - defaultDropDownText = FFLocalizations.of(buildContext!).getVariableText( - enText: 'Select an option', - ptText: 'Selecione uma opção', - ); - dropDownValueController1 = FormFieldController(dropDownValue1 ??= defaultDropDownText); - dropDownValueController2 = FormFieldController(dropDownValue2 ??= defaultDropDownText); - log('() => ): $devUUID'); - - safeSetState?.call(); - log('() => ): $devUUID'); - } - - @override - void dispose() { - tabBarController.dispose(); - - textFieldFocusName?.dispose(); - textControllerName?.dispose(); - - textFieldFocusSpecies?.dispose(); - textControllerSpecies?.dispose(); - - textFieldFocusRace?.dispose(); - textControllerRace?.dispose(); - - textFieldFocusColor?.dispose(); - textControllerColor?.dispose(); - - textFieldFocusData?.dispose(); - textControllerData?.dispose(); - - textFieldFocusObservation?.dispose(); - textControllerObservation?.dispose(); - - dropDownValueController1?.dispose(); - dropDownValueController2?.dispose(); - } - void setEditForm() { log('item: $item'); @@ -222,25 +190,49 @@ class PetsPageModel extends FlutterFlowModel { textFieldFocusObservation = FocusNode(); item != null ? dropDownValue1 = item['gender'] ?? '' : dropDownValue1 = ''; - item != null ? dropDownValue2 = item['size'] ?? '' : dropDownValue2 = ''; dropDownValueController1 = FormFieldController(dropDownValue1); - dropDownValueController2 = FormFieldController(dropDownValue2); } + @override + void dispose() { + tabBarController.dispose(); + + textFieldFocusName?.dispose(); + textControllerName?.dispose(); + + textFieldFocusSpecies?.dispose(); + textControllerSpecies?.dispose(); + + textFieldFocusRace?.dispose(); + textControllerRace?.dispose(); + + textFieldFocusColor?.dispose(); + textControllerColor?.dispose(); + + textFieldFocusData?.dispose(); + textControllerData?.dispose(); + + textFieldFocusObservation?.dispose(); + textControllerObservation?.dispose(); + + dropDownValueController1?.dispose(); + dropDownValueController2?.dispose(); + } + bool isFormValid(BuildContext context) { if (uploadedLocalFile == null || uploadedLocalFile!.bytes!.isEmpty) { return false; } - if (textControllerName!.text.isEmpty || textControllerName!.text.length > 80 || textControllerName!.text == '') { + if (textControllerName.text.isEmpty || textControllerName.text.length > 80 || textControllerName.text == '') { return false; } - if (textControllerSpecies!.text.isEmpty || textControllerSpecies!.text == '') { + if (textControllerSpecies.text.isEmpty || textControllerSpecies.text == '') { return false; } - if (textControllerRace!.text.isEmpty || textControllerRace!.text == '') { + if (textControllerRace.text.isEmpty || textControllerRace.text == '') { return false; } @@ -262,6 +254,7 @@ class PetsPageModel extends FlutterFlowModel { if (dropDownValue2 == 'Selecione uma opção' || dropDownValue2 == null || dropDownValue2 == '') { return false; } + return true; } @@ -284,7 +277,7 @@ class PetsPageModel extends FlutterFlowModel { ); if (response.jsonBody['error'] == false) { - DialogUtil.success( + await DialogUtil.success( buildContext!, FFLocalizations.of(buildContext!).getVariableText( enText: 'Pet successfully updated', @@ -305,7 +298,7 @@ class PetsPageModel extends FlutterFlowModel { ptText: 'Falha ao atualizar o pet', ); } - DialogUtil.error(buildContext!, errorMessage); + await DialogUtil.error(buildContext!, errorMessage); } } @@ -325,7 +318,7 @@ class PetsPageModel extends FlutterFlowModel { ); if (response.jsonBody['error'] == false) { - DialogUtil.success( + await DialogUtil.success( buildContext!, FFLocalizations.of(buildContext!).getVariableText( enText: 'Pet successfully registered', @@ -337,15 +330,16 @@ class PetsPageModel extends FlutterFlowModel { String errorMessage; try { errorMessage = jsonDecode(response.jsonBody['error_msg'])[0]['message'].toString(); + await DialogUtil.error(buildContext!, errorMessage); } catch (e) { if (response.jsonBody['error_msg'] == "Limite de Cadastro de Pet Atingido.") { errorMessage = FFLocalizations.of(buildContext!).getVariableText( enText: 'Pet registration limit reached', ptText: 'Limite de cadastro de pets atingido', ); - DialogUtil.error(buildContext!, errorMessage); + await DialogUtil.error(buildContext!, errorMessage); } else { - DialogUtil.errorDefault(buildContext!); + await DialogUtil.errorDefault(buildContext!); } } } @@ -385,10 +379,8 @@ class PetsPageModel extends FlutterFlowModel { // dropDownValue1 = ''; // dropDownValue2 = ''; - // dropDownValueController1 = - // FormFieldController('Selecione uma opção'); - // dropDownValueController2 = - // FormFieldController('Selecione uma opção'); + // dropDownValueController1 = FormFieldController('Selecione uma opção'); + // dropDownValueController2 = FormFieldController('Selecione uma opção'); } Widget buildPetDetails({ @@ -399,123 +391,120 @@ class PetsPageModel extends FlutterFlowModel { required String cliUUID, required String cliName, required PetsPageModel model, - bool isInteractive = true, }) { return DetailsComponentWidget( buttons: [ // EDIT ACTION - if (isInteractive) - FFButtonWidget( - text: FFLocalizations.of(context).getVariableText( - ptText: 'Editar', - enText: 'Edit', - ), - icon: const Icon(Icons.edit), - onPressed: () async { - context.pop(); - - model.isEditing = true; - model.item = item; - model.switchTab(0); - model.setEditForm(); - // model.safeSetState!(); - }, - options: FFButtonOptions( - width: 100, - height: 40, - color: FlutterFlowTheme.of(context).primaryBackground, - elevation: 0, - textStyle: TextStyle( - color: FlutterFlowTheme.of(context).primaryText, - fontSize: LimitedFontSizeUtil.getNoResizeFont(context, 15), - ), - splashColor: const Color.fromARGB(95, 0, 146, 5), - borderSide: BorderSide( - color: FlutterFlowTheme.of(context).primaryBackground, - width: 1, - ), - // borderRadius: 12, - ), + FFButtonWidget( + text: FFLocalizations.of(context).getVariableText( + ptText: 'Editar', + enText: 'Edit', ), + icon: const Icon(Icons.edit), + onPressed: () async { + context.pop(); + + model.isEditing = true; + model.item = item; + model.switchTab(0); + model.setEditForm(); + // model.safeSetState!(); + }, + options: FFButtonOptions( + width: 100, + height: 40, + color: FlutterFlowTheme.of(context).primaryBackground, + elevation: 0, + textStyle: TextStyle( + color: FlutterFlowTheme.of(context).primaryText, + fontSize: LimitedFontSizeUtil.getNoResizeFont(context, 15), + ), + splashColor: const Color.fromARGB(95, 0, 146, 5), + borderSide: BorderSide( + color: FlutterFlowTheme.of(context).primaryBackground, + width: 1, + ), + // borderRadius: 12, + ), + ), // DELETE ACTION - if (isInteractive) - FFButtonWidget( - text: FFLocalizations.of(context).getVariableText( - ptText: 'Excluir', - enText: 'Delete', - ), - icon: const Icon(Icons.close), - onPressed: () async { - showAlertDialog( - context, - FFLocalizations.of(context).getVariableText( - ptText: 'Excluir Pet', - enText: 'Delete Pet', - ), - FFLocalizations.of(context).getVariableText( - ptText: 'Você tem certeza que deseja excluir esse pet?', - enText: 'Are you sure you want to delete this pet?', - ), () async { - int id = item['id']; - await PhpGroup.deletePet - .call( - petID: id, - ) - .then((value) { - // Navigator.pop(context, value); - context.pop(value); - context.pop(value); + FFButtonWidget( + text: FFLocalizations.of(context).getVariableText( + ptText: 'Excluir', + enText: 'Delete', + ), + icon: const Icon(Icons.close), + onPressed: () async { + showAlertDialog( + context, + FFLocalizations.of(context).getVariableText( + ptText: 'Excluir Pet', + enText: 'Delete Pet', + ), + FFLocalizations.of(context).getVariableText( + ptText: 'Você tem certeza que deseja excluir esse pet?', + enText: 'Are you sure you want to delete this pet?', + ), () async { + int id = item['id']; + await PhpGroup.deletePet + .call( + petID: id, + ) + .then((value) { + // Navigator.pop(context, value); + context.pop(value); + context.pop(value); - if (value == false) { - showSnackbar( - context, - FFLocalizations.of(context).getVariableText( - ptText: 'Erro ao excluir pet', - enText: 'Error deleting pet', - ), - true, - ); - } else if (value == true) { - showSnackbar( - context, - FFLocalizations.of(context).getVariableText( - enText: 'Success deleting pet', - ptText: 'Succeso ao excluir pet', - ), - false, - ); - } - }).catchError((err, stack) { - context.pop(); + if (value == false) { showSnackbar( context, FFLocalizations.of(context).getVariableText( - enText: 'Error deleting pet', ptText: 'Erro ao excluir pet', + enText: 'Error deleting pet', ), true, ); - }); + } else if (value == true) { + showSnackbar( + context, + FFLocalizations.of(context).getVariableText( + enText: 'Success deleting pet', + ptText: 'Succeso ao excluir pet', + ), + false, + ); + } + }).catchError((err, stack) { + context.pop(); + showSnackbar( + context, + FFLocalizations.of(context).getVariableText( + enText: 'Error deleting pet', + ptText: 'Erro ao excluir pet', + ), + true, + ); }); - }, - options: FFButtonOptions( - width: 100, - height: 40, - color: FlutterFlowTheme.of(context).primaryBackground, - elevation: 0, - textStyle: TextStyle( - color: FlutterFlowTheme.of(context).primaryText, - fontSize: LimitedFontSizeUtil.getNoResizeFont(context, 15), - ), - splashColor: const Color.fromARGB(131, 255, 17, 0), - borderSide: BorderSide( - color: FlutterFlowTheme.of(context).primaryBackground, - width: 1, - ), - // borderRadius: 12, + }); + }, + options: FFButtonOptions( + width: 100, + height: 40, + color: FlutterFlowTheme.of(context).primaryBackground, + elevation: 0, + textStyle: TextStyle( + color: FlutterFlowTheme.of(context).primaryText, + fontSize: LimitedFontSizeUtil.getNoResizeFont(context, 15), ), + splashColor: const Color.fromARGB(131, 255, 17, 0), + borderSide: BorderSide( + color: FlutterFlowTheme.of(context).primaryBackground, + width: 1, + ), + // borderRadius: 12, ), + ), ], // 'MIN', 'PEQ', 'MED', 'GRA', 'GIG' labelsHashMap: Map.from({