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 5f92f128..f70ad276 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 @@ -38,30 +38,33 @@ class _MediaUploadButtonUtilState extends State { padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0), child: Builder( builder: (context) { - if ((widget.uploadedFiles != null)) { - return InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - setState(() { - widget.isUploading = false; - widget.uploadedFiles = - FFUploadedFile(bytes: Uint8List.fromList([])); - widget.onUploadComplete(widget.uploadedFiles!); - }); - }, - child: ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image.memory( - widget.uploadedFiles!.bytes ?? Uint8List.fromList([]), - width: 300.0, - height: 200.0, - fit: BoxFit.cover, + if (widget.uploadedFiles != null && + widget.uploadedFiles!.bytes!.isNotEmpty) { + { + return InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + setState(() { + widget.isUploading = false; + widget.uploadedFiles = + FFUploadedFile(bytes: Uint8List.fromList([])); + widget.onUploadComplete(widget.uploadedFiles!); + }); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: Image.memory( + widget.uploadedFiles!.bytes ?? Uint8List.fromList([]), + width: 300.0, + height: 200.0, + fit: BoxFit.cover, + ), ), - ), - ); + ); + } } else { return Stack( children: [ diff --git a/lib/components/atomic_components/shared_components_atoms/tabview.dart b/lib/components/atomic_components/shared_components_atoms/tabview.dart index 75ece61a..534ad4e9 100644 --- a/lib/components/atomic_components/shared_components_atoms/tabview.dart +++ b/lib/components/atomic_components/shared_components_atoms/tabview.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; @@ -8,11 +10,13 @@ class TabViewUtil extends StatelessWidget { String labelTab1; String labelTab2; final TabController controller; + final Function(bool) onEditingChanged; Widget widget1; Widget widget2; TabViewUtil({ super.key, + required this.onEditingChanged, required this.context, required this.model, required this.labelTab1, @@ -53,6 +57,8 @@ class TabViewUtil extends StatelessWidget { ], controller: controller, onTap: (i) async { + if (i == 1) onEditingChanged(false); + log('TabBar onTap: $i'); [() async {}, () async {}][i](); }, ), diff --git a/lib/pages/pets_page/pets_page_widget.dart b/lib/pages/pets_page/pets_page_widget.dart index 7818e0a5..2bec5eda 100644 --- a/lib/pages/pets_page/pets_page_widget.dart +++ b/lib/pages/pets_page/pets_page_widget.dart @@ -33,6 +33,7 @@ import 'package:hub/pages/pets_page/pets_history_screen.dart'; import 'package:hub/pages/pets_page/pets_page_model.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:hub/shared/utils/validator_util.dart'; +import 'package:material_symbols_icons/symbols.dart'; import 'package:sqflite/sqflite.dart'; import '/custom_code/actions/index.dart' as actions; @@ -128,6 +129,21 @@ class _PetsPageWidgetState extends State }); } + void _handleEditingChanged(bool editing) { + setState(() { + isEditing = editing; + _model.uploadedLocalFile = null; + _model.textControllerName.text = ''; + _model.textControllerSpecies.text = ''; + _model.textControllerRace.text = ''; + _model.textControllerColor.text = ''; + _model.textControllerData.text = ''; + _model.textControllerObservation.text = ''; + _model.dropDownValueController1 = FormFieldController(''); + _model.dropDownValueController2 = FormFieldController(''); + }); + } + @override Widget build(BuildContext context) { log('Chamou o build'); @@ -146,14 +162,18 @@ class _PetsPageWidgetState extends State return TabViewUtil( context: context, model: _model, - labelTab1: FFLocalizations.of(context) - .getVariableText(ptText: 'Cadastrar', enText: 'Register'), + labelTab1: isEditing + ? FFLocalizations.of(context) + .getVariableText(ptText: 'Editar', enText: 'Edit') + : FFLocalizations.of(context) + .getVariableText(ptText: 'Cadastrar', enText: 'Register'), labelTab2: FFLocalizations.of(context) .getVariableText(ptText: 'Consultar', enText: 'History'), controller: _model.tabBarController, widget1: isEditing ? _buildEditForm(context) : _buildRegisterForm(context), widget2: PetsHistoryScreen(), + onEditingChanged: _handleEditingChanged, ); } @@ -193,6 +213,7 @@ class _PetsPageWidgetState extends State child: MediaUploadButtonUtil( onUploadComplete: _handleUploadComplete, isUploading: _model.isDataUploading, + uploadedFiles: _model.uploadedLocalFile, labelText: FFLocalizations.of(context).getVariableText( ptText: 'Clique para adicionar a foto de seu Pet', enText: 'Click to add your Pet\'s photo'), @@ -222,7 +243,7 @@ class _PetsPageWidgetState extends State ptText: 'Espécie', enText: 'Species'), hintText: FFLocalizations.of(context).getVariableText( ptText: 'Espécie', enText: 'Species'), - suffixIcon: Icons.pest_control, + suffixIcon: Symbols.raven_sharp, haveMaxLength: true, maxLength: 80, ), @@ -238,7 +259,7 @@ class _PetsPageWidgetState extends State .getVariableText(ptText: 'Raça', enText: 'Race'), hintText: FFLocalizations.of(context) .getVariableText(ptText: 'Raça', enText: 'Race'), - suffixIcon: Icons.pets, + suffixIcon: Icons.pets_outlined, haveMaxLength: true, maxLength: 80, ), @@ -254,7 +275,7 @@ class _PetsPageWidgetState extends State .getVariableText(ptText: 'Cor', enText: 'Color'), hintText: FFLocalizations.of(context) .getVariableText(ptText: 'Cor', enText: 'Color'), - suffixIcon: Icons.invert_colors, + suffixIcon: Icons.invert_colors_on_outlined, haveMaxLength: true, maxLength: 80, ),