WIP
This commit is contained in:
parent
5c59989316
commit
2a9f58f9e6
|
@ -49,8 +49,214 @@ class PhpGroup {
|
||||||
static DeleteAccount deleteAccount = DeleteAccount();
|
static DeleteAccount deleteAccount = DeleteAccount();
|
||||||
static CancelaVisita cancelaVisita = CancelaVisita();
|
static CancelaVisita cancelaVisita = CancelaVisita();
|
||||||
static BuscaEnconcomendas buscaEnconcomendas = BuscaEnconcomendas();
|
static BuscaEnconcomendas buscaEnconcomendas = BuscaEnconcomendas();
|
||||||
|
static RegisterPet registerPet = RegisterPet();
|
||||||
|
static DeletePet deletePet = DeletePet();
|
||||||
|
static UpdatePet updatePet = UpdatePet();
|
||||||
|
static GetPets getPets = GetPets();
|
||||||
|
static GetPetPhoto getPetPhoto = GetPetPhoto();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DeletePet {
|
||||||
|
Future<ApiCallResponse> call({
|
||||||
|
String? devUUID = '',
|
||||||
|
String? userUUID = '',
|
||||||
|
String? cliID = '',
|
||||||
|
String? petID = '',
|
||||||
|
}) async {
|
||||||
|
final baseUrl = PhpGroup.getBaseUrl();
|
||||||
|
|
||||||
|
return ApiManager.instance.makeApiCall(
|
||||||
|
callName: 'deletePet',
|
||||||
|
apiUrl: '$baseUrl/deletePet.php',
|
||||||
|
callType: ApiCallType.POST,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
'devUUID': devUUID,
|
||||||
|
'userUUID': userUUID,
|
||||||
|
'cliID': cliID,
|
||||||
|
'id': petID,
|
||||||
|
},
|
||||||
|
bodyType: BodyType.X_WWW_FORM_URL_ENCODED,
|
||||||
|
returnBody: true,
|
||||||
|
encodeBodyUtf8: false,
|
||||||
|
decodeUtf8: false,
|
||||||
|
cache: false,
|
||||||
|
isStreamingApi: false,
|
||||||
|
alwaysAllowBody: false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class UpdatePet {
|
||||||
|
Future<ApiCallResponse> call({
|
||||||
|
String? devUUID = '',
|
||||||
|
String? userUUID = '',
|
||||||
|
String? cliID = '',
|
||||||
|
String? petID = '',
|
||||||
|
String? image = '',
|
||||||
|
String? name = '',
|
||||||
|
String? species = '',
|
||||||
|
String? breed = '',
|
||||||
|
String? color = '',
|
||||||
|
String? birthdayDate = '',
|
||||||
|
String? gender = '',
|
||||||
|
String? size = '',
|
||||||
|
String? notes = '',
|
||||||
|
}) async {
|
||||||
|
final baseUrl = PhpGroup.getBaseUrl();
|
||||||
|
|
||||||
|
return ApiManager.instance.makeApiCall(
|
||||||
|
callName: 'updatePet',
|
||||||
|
apiUrl: '$baseUrl/updatePet.php',
|
||||||
|
callType: ApiCallType.POST,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
'devUUID': devUUID,
|
||||||
|
'userUUID': userUUID,
|
||||||
|
'cliID': cliID,
|
||||||
|
'id': petID,
|
||||||
|
'image': image,
|
||||||
|
'name': name,
|
||||||
|
'species': species,
|
||||||
|
'breed': breed,
|
||||||
|
'color': color,
|
||||||
|
'birthdayDate': birthdayDate,
|
||||||
|
'gender': gender,
|
||||||
|
'size': size,
|
||||||
|
'notes': notes,
|
||||||
|
},
|
||||||
|
bodyType: BodyType.X_WWW_FORM_URL_ENCODED,
|
||||||
|
returnBody: true,
|
||||||
|
encodeBodyUtf8: false,
|
||||||
|
decodeUtf8: false,
|
||||||
|
cache: false,
|
||||||
|
isStreamingApi: false,
|
||||||
|
alwaysAllowBody: false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class GetPets {
|
||||||
|
Future<ApiCallResponse> call({
|
||||||
|
String? devUUID = '',
|
||||||
|
String? userUUID = '',
|
||||||
|
String? cliID = '',
|
||||||
|
String? page = '',
|
||||||
|
String? pageSize = '',
|
||||||
|
}) async {
|
||||||
|
final baseUrl = PhpGroup.getBaseUrl();
|
||||||
|
|
||||||
|
return ApiManager.instance.makeApiCall(
|
||||||
|
callName: 'getPets',
|
||||||
|
apiUrl: '$baseUrl/getPets.php',
|
||||||
|
callType: ApiCallType.POST,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
'devUUID': devUUID,
|
||||||
|
'userUUID': userUUID,
|
||||||
|
'cliID': cliID,
|
||||||
|
'page': page,
|
||||||
|
'pageSize': pageSize,
|
||||||
|
},
|
||||||
|
bodyType: BodyType.X_WWW_FORM_URL_ENCODED,
|
||||||
|
returnBody: true,
|
||||||
|
encodeBodyUtf8: false,
|
||||||
|
decodeUtf8: false,
|
||||||
|
cache: false,
|
||||||
|
alwaysAllowBody: false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class GetPetPhoto {
|
||||||
|
Future<ApiCallResponse> call({
|
||||||
|
String? devUUID = '',
|
||||||
|
String? userUUID = '',
|
||||||
|
String? cliID = '',
|
||||||
|
String? petID = '',
|
||||||
|
}) async {
|
||||||
|
final baseUrl = PhpGroup.getBaseUrl();
|
||||||
|
|
||||||
|
return ApiManager.instance.makeApiCall(
|
||||||
|
callName: 'getPetPhoto',
|
||||||
|
apiUrl: '$baseUrl/getPetPhoto.php',
|
||||||
|
callType: ApiCallType.POST,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
'devUUID': devUUID,
|
||||||
|
'userUUID': userUUID,
|
||||||
|
'cliID': cliID,
|
||||||
|
'petId': petID,
|
||||||
|
},
|
||||||
|
bodyType: BodyType.X_WWW_FORM_URL_ENCODED,
|
||||||
|
returnBody: true,
|
||||||
|
encodeBodyUtf8: false,
|
||||||
|
decodeUtf8: false,
|
||||||
|
cache: false,
|
||||||
|
alwaysAllowBody: false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class RegisterPet {
|
||||||
|
Future<ApiCallResponse> call({
|
||||||
|
String? devUUID = '',
|
||||||
|
String? userUUID = '',
|
||||||
|
String? cliID = '',
|
||||||
|
String? atividade = 'cadastrarPet',
|
||||||
|
String? image = '',
|
||||||
|
String? name = '',
|
||||||
|
String? species = '',
|
||||||
|
String? breed = '',
|
||||||
|
String? color = '',
|
||||||
|
String? birthdayDate = '',
|
||||||
|
String? gender = '',
|
||||||
|
String? size = '',
|
||||||
|
String? notes = '',
|
||||||
|
}) async {
|
||||||
|
final baseUrl = PhpGroup.getBaseUrl();
|
||||||
|
|
||||||
|
return ApiManager.instance.makeApiCall(
|
||||||
|
callName: 'registerPet',
|
||||||
|
apiUrl: '$baseUrl/processRequest.php',
|
||||||
|
callType: ApiCallType.POST,
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
'devUUID': devUUID,
|
||||||
|
'userUUID': userUUID,
|
||||||
|
'cliID': cliID,
|
||||||
|
'atividade': atividade,
|
||||||
|
'image': image,
|
||||||
|
'name': name,
|
||||||
|
'species': species,
|
||||||
|
'breed': breed,
|
||||||
|
if (color != '') 'color': color,
|
||||||
|
if (birthdayDate != '')
|
||||||
|
'birthdayDate': ValidatorUtil.toISO8601('dd/MM/yyyy', birthdayDate!),
|
||||||
|
'gender': gender,
|
||||||
|
'size': size,
|
||||||
|
if (notes != '') 'notes': notes,
|
||||||
|
},
|
||||||
|
bodyType: BodyType.X_WWW_FORM_URL_ENCODED,
|
||||||
|
returnBody: true,
|
||||||
|
encodeBodyUtf8: false,
|
||||||
|
decodeUtf8: false,
|
||||||
|
cache: false,
|
||||||
|
isStreamingApi: false,
|
||||||
|
alwaysAllowBody: false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class BuscaEnconcomendas {
|
class BuscaEnconcomendas {
|
||||||
Future<ApiCallResponse> call({
|
Future<ApiCallResponse> call({
|
||||||
|
@ -58,7 +264,6 @@ class BuscaEnconcomendas {
|
||||||
String? userUUID = '',
|
String? userUUID = '',
|
||||||
String? cliID = '',
|
String? cliID = '',
|
||||||
String? atividade = '',
|
String? atividade = '',
|
||||||
|
|
||||||
String? page = '',
|
String? page = '',
|
||||||
String? pageSize = '',
|
String? pageSize = '',
|
||||||
String? adresseeType = '',
|
String? adresseeType = '',
|
||||||
|
@ -78,7 +283,6 @@ class BuscaEnconcomendas {
|
||||||
'userUUID': userUUID,
|
'userUUID': userUUID,
|
||||||
'atividade': atividade,
|
'atividade': atividade,
|
||||||
'cliID': cliID,
|
'cliID': cliID,
|
||||||
|
|
||||||
'page': page,
|
'page': page,
|
||||||
'pageSize': pageSize,
|
'pageSize': pageSize,
|
||||||
'adresseeType': adresseeType,
|
'adresseeType': adresseeType,
|
||||||
|
|
|
@ -513,8 +513,8 @@ class ApiManager {
|
||||||
log('API Call: $callName');
|
log('API Call: $callName');
|
||||||
log('URL: $apiUrl');
|
log('URL: $apiUrl');
|
||||||
log('Headers: $headers');
|
log('Headers: $headers');
|
||||||
log('Params$params');
|
log('Params: $params');
|
||||||
log('Response${result.jsonBody}');
|
log('Response: ${result.jsonBody}');
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,8 @@ class _CustomInputUtilState extends State<CustomInputUtil> {
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).labelMediumFamily),
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
hintText: widget.hintText,
|
hintText: widget.hintText,
|
||||||
hintStyle: FlutterFlowTheme.of(context).labelMedium.override(
|
hintStyle: FlutterFlowTheme.of(context).labelMedium.override(
|
||||||
|
@ -83,7 +84,8 @@ class _CustomInputUtilState extends State<CustomInputUtil> {
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).labelMediumFamily),
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
enabledBorder: OutlineInputBorder(
|
enabledBorder: OutlineInputBorder(
|
||||||
borderSide: BorderSide(
|
borderSide: BorderSide(
|
||||||
|
@ -123,13 +125,14 @@ class _CustomInputUtilState extends State<CustomInputUtil> {
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
maxLines: null,
|
maxLines: null,
|
||||||
maxLength: widget.haveMaxLength ? widget.maxLength : null,
|
maxLength: widget.haveMaxLength ? widget.maxLength : null,
|
||||||
keyboardType: widget.keyboardType,
|
keyboardType: widget.keyboardType,
|
||||||
inputFormatters: [
|
inputFormatters: [
|
||||||
LengthLimitingTextInputFormatter(widget.maxLength)
|
LengthLimitingTextInputFormatter(widget.maxLength),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
@ -60,8 +60,7 @@ class _CustomSelectState extends State<CustomSelect> {
|
||||||
height: 48.0,
|
height: 48.0,
|
||||||
decoration: const BoxDecoration(),
|
decoration: const BoxDecoration(),
|
||||||
child: FlutterFlowDropDown<String>(
|
child: FlutterFlowDropDown<String>(
|
||||||
fillColor:
|
fillColor: FlutterFlowTheme.of(context).primaryBackground,
|
||||||
FlutterFlowTheme.of(context).secondaryBackground,
|
|
||||||
controller: widget.controller ??=
|
controller: widget.controller ??=
|
||||||
FormFieldController<String>(
|
FormFieldController<String>(
|
||||||
widget.dropDownValue ??= ''),
|
widget.dropDownValue ??= ''),
|
||||||
|
|
|
@ -7,7 +7,7 @@ import 'package:json_path/fun_sdk.dart';
|
||||||
|
|
||||||
class SubmitButtonUtil extends StatelessWidget {
|
class SubmitButtonUtil extends StatelessWidget {
|
||||||
final String labelText;
|
final String labelText;
|
||||||
Future<void> Function()? onPressed;
|
Future Function()? onPressed;
|
||||||
|
|
||||||
SubmitButtonUtil({
|
SubmitButtonUtil({
|
||||||
required this.labelText,
|
required this.labelText,
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
import 'dart:developer';
|
import 'dart:developer';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:hub/backend/api_requests/api_calls.dart';
|
||||||
import 'package:hub/backend/api_requests/api_manager.dart';
|
import 'package:hub/backend/api_requests/api_manager.dart';
|
||||||
import 'package:hub/flutter_flow/flutter_flow_util.dart';
|
import 'package:hub/flutter_flow/flutter_flow_util.dart';
|
||||||
import 'package:hub/flutter_flow/form_field_controller.dart';
|
import 'package:hub/flutter_flow/form_field_controller.dart';
|
||||||
import 'package:hub/pages/pets_page/pets_page_widget.dart';
|
import 'package:hub/pages/pets_page/pets_page_widget.dart';
|
||||||
|
import 'package:hub/shared/utils/dialog_util.dart';
|
||||||
import 'package:hub/shared/utils/log_util.dart';
|
import 'package:hub/shared/utils/log_util.dart';
|
||||||
import '/custom_code/actions/index.dart' as actions;
|
import '/custom_code/actions/index.dart' as actions;
|
||||||
|
|
||||||
|
@ -12,6 +14,8 @@ class PetsPageModel extends FlutterFlowModel<PetsPageWidget> {
|
||||||
|
|
||||||
ApiCallResponse? petsResponse;
|
ApiCallResponse? petsResponse;
|
||||||
|
|
||||||
|
BuildContext? buildContext;
|
||||||
|
|
||||||
// Controller para o Upload de Arquivos
|
// Controller para o Upload de Arquivos
|
||||||
bool isDataUploading = false;
|
bool isDataUploading = false;
|
||||||
FFUploadedFile uploadedLocalFile =
|
FFUploadedFile uploadedLocalFile =
|
||||||
|
@ -70,12 +74,6 @@ class PetsPageModel extends FlutterFlowModel<PetsPageWidget> {
|
||||||
FocusNode? textFieldFocusData;
|
FocusNode? textFieldFocusData;
|
||||||
TextEditingController? textControllerData;
|
TextEditingController? textControllerData;
|
||||||
String? textControllerDataValidator(BuildContext context, String? val) {
|
String? textControllerDataValidator(BuildContext context, String? val) {
|
||||||
if (val == null || val.isEmpty) {
|
|
||||||
return FFLocalizations.of(context).getVariableText(
|
|
||||||
enText: 'This field is required.',
|
|
||||||
ptText: 'Este campo é obrigatório.',
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,9 +163,7 @@ class PetsPageModel extends FlutterFlowModel<PetsPageWidget> {
|
||||||
if (textControllerRace.text.isEmpty || textControllerRace.text == '') {
|
if (textControllerRace.text.isEmpty || textControllerRace.text == '') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (textControllerData.text.isEmpty || textControllerData.text == '') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (dropDownValue1 == null ||
|
if (dropDownValue1 == null ||
|
||||||
dropDownValue1!.isEmpty ||
|
dropDownValue1!.isEmpty ||
|
||||||
dropDownValue1 == '') {
|
dropDownValue1 == '') {
|
||||||
|
@ -181,9 +177,32 @@ class PetsPageModel extends FlutterFlowModel<PetsPageWidget> {
|
||||||
|
|
||||||
Future<void> registerPet() async {
|
Future<void> registerPet() async {
|
||||||
if (isFormValid == true) {
|
if (isFormValid == true) {
|
||||||
imgBase64 = await actions.convertImageFileToBase64(
|
await PhpGroup.registerPet
|
||||||
|
.call(
|
||||||
|
cliID: AppState().cliUUID,
|
||||||
|
devUUID: AppState().devUUID,
|
||||||
|
userUUID: AppState().userUUID,
|
||||||
|
image: await actions.convertImageFileToBase64(
|
||||||
uploadedLocalFile,
|
uploadedLocalFile,
|
||||||
);
|
),
|
||||||
|
// birthdayDate: textControllerData!.text,
|
||||||
|
color: textControllerColor!.text,
|
||||||
|
breed: textControllerRace!.text,
|
||||||
|
species: textControllerSpecies!.text,
|
||||||
|
name: textControllerName!.text,
|
||||||
|
gender: dropDownValue1!,
|
||||||
|
size: dropDownValue2!,
|
||||||
|
notes: textControllerObservation!.text,
|
||||||
|
)
|
||||||
|
.then((response) {
|
||||||
|
if (response.jsonBody['error'] == true)
|
||||||
|
log('Erro ao registrar pet: ${response.jsonBody}');
|
||||||
|
return DialogUtil.errorDefault(buildContext!);
|
||||||
|
return true;
|
||||||
|
}).catchError((error) {
|
||||||
|
log(error.toString());
|
||||||
|
return DialogUtil.errorDefault(buildContext!);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
|
import 'package:hub/backend/api_requests/api_calls.dart';
|
||||||
|
|
||||||
import 'package:hub/components/atomic_components/shared_components_atoms/appbar.dart';
|
import 'package:hub/components/atomic_components/shared_components_atoms/appbar.dart';
|
||||||
import 'package:hub/components/atomic_components/shared_components_atoms/custom_datepicker.dart';
|
import 'package:hub/components/atomic_components/shared_components_atoms/custom_datepicker.dart';
|
||||||
|
@ -24,7 +25,10 @@ import 'package:hub/flutter_flow/nav/nav.dart';
|
||||||
import 'package:hub/flutter_flow/upload_data.dart';
|
import 'package:hub/flutter_flow/upload_data.dart';
|
||||||
|
|
||||||
import 'package:hub/pages/pets_page/pets_page_model.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:sqflite/sqflite.dart';
|
import 'package:sqflite/sqflite.dart';
|
||||||
|
import '/custom_code/actions/index.dart' as actions;
|
||||||
|
|
||||||
class PetsPageWidget extends StatefulWidget {
|
class PetsPageWidget extends StatefulWidget {
|
||||||
PetsPageWidget({super.key});
|
PetsPageWidget({super.key});
|
||||||
|
@ -38,6 +42,39 @@ class _PetsPageWidgetState extends State<PetsPageWidget>
|
||||||
late PetsPageModel _model;
|
late PetsPageModel _model;
|
||||||
final _formKey = GlobalKey<FormState>();
|
final _formKey = GlobalKey<FormState>();
|
||||||
|
|
||||||
|
Future<void> registerPet() async {
|
||||||
|
await PhpGroup.registerPet
|
||||||
|
.call(
|
||||||
|
cliID: AppState().cliUUID,
|
||||||
|
devUUID: AppState().devUUID,
|
||||||
|
userUUID: AppState().userUUID,
|
||||||
|
image: await actions.convertImageFileToBase64(
|
||||||
|
_model.uploadedLocalFile,
|
||||||
|
),
|
||||||
|
birthdayDate: _model.textControllerData!.text,
|
||||||
|
color: _model.textControllerColor!.text,
|
||||||
|
breed: _model.textControllerRace!.text,
|
||||||
|
species: _model.textControllerSpecies!.text,
|
||||||
|
name: _model.textControllerName!.text,
|
||||||
|
gender: _model.dropDownValue1!,
|
||||||
|
size: _model.dropDownValue2!,
|
||||||
|
notes: _model.textControllerObservation!.text,
|
||||||
|
)
|
||||||
|
.then((response) {
|
||||||
|
log('aqui é pá');
|
||||||
|
if (response.jsonBody['error'] == true) {
|
||||||
|
DialogUtil.error(
|
||||||
|
context, jsonDecode(response.jsonBody['error_msg'])[0]['message']);
|
||||||
|
|
||||||
|
log('aqui é trum');
|
||||||
|
}
|
||||||
|
}).catchError((error) {
|
||||||
|
log('aqui é pum');
|
||||||
|
|
||||||
|
DialogUtil.errorDefault(context);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
super.initState();
|
super.initState();
|
||||||
|
@ -83,29 +120,30 @@ class _PetsPageWidgetState extends State<PetsPageWidget>
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
_model.buildContext = context;
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: appBarPets(context),
|
appBar: _buildAppBar(context),
|
||||||
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
||||||
body: tabViewPets(context));
|
body: _buildTabView(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
PreferredSizeWidget appBarPets(BuildContext context) {
|
PreferredSizeWidget _buildAppBar(BuildContext context) {
|
||||||
return AppBarUtil(title: 'Pets', onBackButtonPressed: () => context.pop());
|
return AppBarUtil(title: 'Pets', onBackButtonPressed: () => context.pop());
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget tabViewPets(BuildContext context) {
|
Widget _buildTabView(BuildContext context) {
|
||||||
return TabViewUtil(
|
return TabViewUtil(
|
||||||
context: context,
|
context: context,
|
||||||
model: _model,
|
model: _model,
|
||||||
labelTab1: 'Cadastrar',
|
labelTab1: 'Cadastrar',
|
||||||
labelTab2: 'Consultar',
|
labelTab2: 'Consultar',
|
||||||
controller: _model.tabBarController,
|
controller: _model.tabBarController,
|
||||||
widget1: formAddPets(context),
|
widget1: _buildRegisterForm(context),
|
||||||
widget2: const Center(child: Text('Consultar')),
|
widget2: const Center(child: Text('Consultar')),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget formAddPets(BuildContext context) {
|
Widget _buildRegisterForm(BuildContext context) {
|
||||||
return SingleChildScrollView(
|
return SingleChildScrollView(
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
@ -550,9 +588,8 @@ class _PetsPageWidgetState extends State<PetsPageWidget>
|
||||||
labelText: FFLocalizations.of(context)
|
labelText: FFLocalizations.of(context)
|
||||||
.getVariableText(
|
.getVariableText(
|
||||||
ptText: 'Cadastrar', enText: 'Register'),
|
ptText: 'Cadastrar', enText: 'Register'),
|
||||||
onPressed: _model.isFormValid(context)
|
onPressed:
|
||||||
? _model.registerPet
|
_model.isFormValid(context) ? registerPet : null),
|
||||||
: null),
|
|
||||||
),
|
),
|
||||||
])),
|
])),
|
||||||
],
|
],
|
||||||
|
|
24
pubspec.lock
24
pubspec.lock
|
@ -825,18 +825,18 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker
|
name: leak_tracker
|
||||||
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
|
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "10.0.4"
|
version: "10.0.5"
|
||||||
leak_tracker_flutter_testing:
|
leak_tracker_flutter_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: leak_tracker_flutter_testing
|
name: leak_tracker_flutter_testing
|
||||||
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
|
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.0.3"
|
version: "3.0.5"
|
||||||
leak_tracker_testing:
|
leak_tracker_testing:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -913,10 +913,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: material_color_utilities
|
name: material_color_utilities
|
||||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.8.0"
|
version: "0.11.1"
|
||||||
material_symbols_icons:
|
material_symbols_icons:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -937,10 +937,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: meta
|
name: meta
|
||||||
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
|
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "1.12.0"
|
version: "1.15.0"
|
||||||
mime:
|
mime:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@ -1358,10 +1358,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: test_api
|
name: test_api
|
||||||
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.7.0"
|
version: "0.7.2"
|
||||||
timeago:
|
timeago:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -1526,10 +1526,10 @@ packages:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: vm_service
|
name: vm_service
|
||||||
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
|
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "14.2.1"
|
version: "14.2.5"
|
||||||
web:
|
web:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
|
Loading…
Reference in New Issue