fix clear data and edit mode problems

This commit is contained in:
J. A. Messias 2024-09-12 09:56:08 -03:00
parent a50acbd0d8
commit d1d4ee0144
3 changed files with 58 additions and 28 deletions

View File

@ -38,7 +38,9 @@ class _MediaUploadButtonUtilState extends State<MediaUploadButtonUtil> {
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
child: Builder(
builder: (context) {
if ((widget.uploadedFiles != null)) {
if (widget.uploadedFiles != null &&
widget.uploadedFiles!.bytes!.isNotEmpty) {
{
return InkWell(
splashColor: Colors.transparent,
focusColor: Colors.transparent,
@ -62,6 +64,7 @@ class _MediaUploadButtonUtilState extends State<MediaUploadButtonUtil> {
),
),
);
}
} else {
return Stack(
children: [

View File

@ -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]();
},
),

View File

@ -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<PetsPageWidget>
});
}
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<String>('');
_model.dropDownValueController2 = FormFieldController<String>('');
});
}
@override
Widget build(BuildContext context) {
log('Chamou o build');
@ -146,7 +162,10 @@ class _PetsPageWidgetState extends State<PetsPageWidget>
return TabViewUtil(
context: context,
model: _model,
labelTab1: FFLocalizations.of(context)
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'),
@ -154,6 +173,7 @@ class _PetsPageWidgetState extends State<PetsPageWidget>
widget1:
isEditing ? _buildEditForm(context) : _buildRegisterForm(context),
widget2: PetsHistoryScreen(),
onEditingChanged: _handleEditingChanged,
);
}
@ -193,6 +213,7 @@ class _PetsPageWidgetState extends State<PetsPageWidget>
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<PetsPageWidget>
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<PetsPageWidget>
.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<PetsPageWidget>
.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,
),