diff --git a/lib/components/atomic_components/shared_components_atoms/toast.dart b/lib/components/atomic_components/shared_components_atoms/toast.dart new file mode 100644 index 00000000..aad47149 --- /dev/null +++ b/lib/components/atomic_components/shared_components_atoms/toast.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; + +class ToastUtil { + static void showToast({ + required String message, + ToastGravity gravity = ToastGravity.BOTTOM, + Toast toastLength = Toast.LENGTH_SHORT, + Color backgroundColor = Colors.black, + Color textColor = Colors.white, + double fontSize = 16.0, + }) { + Fluttertoast.showToast( + msg: message, + toastLength: toastLength, + gravity: gravity, + backgroundColor: backgroundColor, + textColor: textColor, + fontSize: fontSize, + ); + } +} diff --git a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart index 0f2d28ba..6fc50264 100644 --- a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart +++ b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart @@ -2,6 +2,7 @@ import 'dart:developer'; import 'package:flutter/services.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; +import 'package:hub/components/atomic_components/shared_components_atoms/toast.dart'; import 'package:hub/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart'; import 'package:hub/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart'; import 'package:hub/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart'; @@ -84,12 +85,12 @@ class _VisitorSearchModalTemplateComponentWidgetState context.watch(); return Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 20.0, 0.0, 0.0), + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0), child: Container( width: MediaQuery.of(context).size.width, - decoration: BoxDecoration( + decoration: const BoxDecoration( color: Colors.transparent, - borderRadius: const BorderRadius.only( + borderRadius: BorderRadius.only( bottomLeft: Radius.circular(0.0), bottomRight: Radius.circular(0.0), topLeft: Radius.circular(15.0), @@ -110,7 +111,7 @@ class _VisitorSearchModalTemplateComponentWidgetState ), Padding( padding: - const EdgeInsetsDirectional.fromSTEB(16.0, 15.0, 16.0, 0.0), + const EdgeInsetsDirectional.fromSTEB(16.0, 25.0, 16.0, 0.0), child: TextFormField( controller: _model.textController, focusNode: _model.textFieldFocusNode, @@ -488,7 +489,10 @@ class _VisitorSearchModalTemplateComponentWidgetState _model.addToDocs(_model.textController.text); safeSetState(() {}); } else if (existDoc == true) { - _showErrorSnackbar(context); + ToastUtil.showToast( + message: FFLocalizations.of(context).getVariableText( + ptText: 'Visitante já adicionado!', + enText: 'Visitor already added!')); } } else { await showAdaptiveDialog( diff --git a/lib/flutter_flow/flutter_flow_util.dart b/lib/flutter_flow/flutter_flow_util.dart index 8d1ffe11..b5a4489a 100644 --- a/lib/flutter_flow/flutter_flow_util.dart +++ b/lib/flutter_flow/flutter_flow_util.dart @@ -182,6 +182,7 @@ Theme wrapInMaterialTimePickerTheme( required Color headerForegroundColor, required TextStyle headerTextStyle, required Color pickerBackgroundColor, + required Color pickerDialForegroundColor, required Color pickerForegroundColor, required Color selectedDateTimeBackgroundColor, required Color selectedDateTimeForegroundColor, @@ -263,7 +264,7 @@ Theme wrapInMaterialTimePickerTheme( dialTextColor: WidgetStateColor.resolveWith((states) => states.contains(WidgetState.selected) ? selectedDateTimeForegroundColor - : pickerForegroundColor), + : pickerDialForegroundColor), dayPeriodBorderSide: BorderSide( color: pickerForegroundColor, ), diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart index aa896f5d..bbf02e4a 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_model.dart @@ -98,7 +98,7 @@ class ScheduleCompleteVisitPageModel ptText: 'Este campo é obrigatório.', ); } - if (val != null) { + if (val != '0') { try { DateTime startDate = DateFormat('d/M/y H:mm:ss').parse(val); DateTime endDate = @@ -116,7 +116,9 @@ class ScheduleCompleteVisitPageModel ); } } catch (e) { - return '$e'; + return FFLocalizations.of(context).getVariableText( + ptText: 'Preencha corretamente o campo de término da visita!', + enText: 'Fill in the end of visit field correctly!'); } } return null; @@ -136,9 +138,10 @@ class ScheduleCompleteVisitPageModel } if (val != null) { try { - DateTime endDate = DateFormat('d/M/y H:mm:ss').parse(val); + DateTime endDate = DateFormat('dd/M/yyyy HH:mm:ss').parse(val); DateTime startDate = - DateFormat('d/M/y H:mm:ss').parse(textController1!.text); + DateFormat('dd/MM/yyyy HH:mm:ss').parse(textController1!.text); + if (endDate.isBefore(startDate)) { return FFLocalizations.of(context).getVariableText( enText: 'End date must be after start date.', @@ -152,7 +155,9 @@ class ScheduleCompleteVisitPageModel ); } } catch (e) { - return '$e'; + return FFLocalizations.of(context).getVariableText( + ptText: 'Preencha corretamente o campo de início da visita!', + enText: 'Fill in the visit start field correctly!'); } } return null; diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart index afadaf2a..521f3cc9 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart @@ -64,7 +64,10 @@ class _ScheduleCompleteVisitPageWidgetState // On page load action. SchedulerBinding.instance.addPostFrameCallback((_) async { - if ((widget.visitorStrList != null && widget.visitorStrList != '') && ((widget.visitorJsonList != null && (widget.visitorJsonList)!.isNotEmpty) != null)) { + if ((widget.visitorStrList != null && widget.visitorStrList != '') && + ((widget.visitorJsonList != null && + (widget.visitorJsonList)!.isNotEmpty) != + null)) { _model.visitorJsonList = widget.visitorJsonList! .where((e) => widget.visitorStrList == @@ -82,7 +85,8 @@ class _ScheduleCompleteVisitPageWidgetState return; } - if ((widget.dropdownValue1 != null && widget.dropdownValue1 != '') && (widget.dropdownValue2 != null && widget.dropdownValue2 != '')) { + if ((widget.dropdownValue1 != null && widget.dropdownValue1 != '') && + (widget.dropdownValue2 != null && widget.dropdownValue2 != '')) { _model.dropDownValue1 = widget.dropdownValue1!; _model.dropDownValue2 = widget.dropdownValue2!; safeSetState(() {}); @@ -391,7 +395,7 @@ Widget scheduleVisit(BuildContext context, .bodyMediumFamily), lineHeight: 1.8, ), - textAlign: TextAlign.center, + textAlign: TextAlign.start, validator: _model.textController1Validator .asValidator(context)), ), @@ -486,13 +490,15 @@ Widget scheduleVisit(BuildContext context, FlutterFlowTheme.of(context) .primaryBackground, pickerForegroundColor: - FlutterFlowTheme.of(context) - .primaryText, + FlutterFlowTheme.of(context).info, selectedDateTimeBackgroundColor: FlutterFlowTheme.of(context) .primary, selectedDateTimeForegroundColor: FlutterFlowTheme.of(context).info, + pickerDialForegroundColor: + FlutterFlowTheme.of(context) + .primaryText, actionButtonForegroundColor: FlutterFlowTheme.of(context) .primaryText, @@ -638,7 +644,7 @@ Widget scheduleVisit(BuildContext context, .bodyMediumFamily), lineHeight: 1.8, ), - textAlign: TextAlign.center, + textAlign: TextAlign.start, validator: _model.textController2Validator .asValidator(context), ), @@ -734,13 +740,15 @@ Widget scheduleVisit(BuildContext context, FlutterFlowTheme.of(context) .primaryBackground, pickerForegroundColor: - FlutterFlowTheme.of(context) - .primaryText, + FlutterFlowTheme.of(context).info, selectedDateTimeBackgroundColor: FlutterFlowTheme.of(context) .primary, selectedDateTimeForegroundColor: FlutterFlowTheme.of(context).info, + pickerDialForegroundColor: + FlutterFlowTheme.of(context) + .primaryText, actionButtonForegroundColor: FlutterFlowTheme.of(context) .primaryText, @@ -1098,29 +1106,58 @@ Widget scheduleVisit(BuildContext context, ); } - final dropDownGetDadosResponse = snapshot.data!; - final reasonsJsonList = PhpGroup.getDadosCall.reasonsJsonList(dropDownGetDadosResponse.jsonBody); + final dropDownGetDadosResponse = + snapshot.data!; + final reasonsJsonList = + PhpGroup.getDadosCall.reasonsJsonList( + dropDownGetDadosResponse.jsonBody); - if (_model.dropDownValue1 != '' && _model.dropDownValue1 != null) { - String value = _model.dropDownValue1.toString() ?? ''; + if (_model.dropDownValue1 != '' && + _model.dropDownValue1 != null) { + String value = + _model.dropDownValue1.toString() ?? + ''; - if (value.contains('{') && value.contains('}') && value.contains(':')) { + if (value.contains('{') && + value.contains('}') && + value.contains(':')) { // log("Valor e um Objeto | Usuário Escolheu o Motivo ${_model.dropDownValue1}"); } else { // log("Valor e uma String | Usuário Escolheu o Motivo ${_model.dropDownValue1}"); - if (reasonsJsonList != null && reasonsJsonList.isNotEmpty) { - var item = reasonsJsonList.where((reason) => reason['MOT_DESCRICAO'].toString().contains(_model.dropDownValue1 ?? '')); - _model.dropDownValue1 = item.firstOrNull.toString() ?? ''; + if (reasonsJsonList != null && + reasonsJsonList.isNotEmpty) { + var item = reasonsJsonList.where( + (reason) => + reason['MOT_DESCRICAO'] + .toString() + .contains(_model + .dropDownValue1 ?? + '')); + _model.dropDownValue1 = + item.firstOrNull.toString() ?? ''; } } } return FlutterFlowDropDown( - fillColor: FlutterFlowTheme.of(context).primaryBackground, - controller: _model.dropDownValueController1 ??= FormFieldController(_model.dropDownValue1 ??= ''), - options: reasonsJsonList != null && reasonsJsonList != [] ? reasonsJsonList.map((e) => e.toString()).toList() : [], - optionLabels: PhpGroup.getDadosCall.reasonsMotDescStrList(dropDownGetDadosResponse.jsonBody), - onChanged: (val) => safeSetState(() => _model.dropDownValue1 = val), + fillColor: FlutterFlowTheme.of(context) + .primaryBackground, + controller: + _model.dropDownValueController1 ??= + FormFieldController( + _model.dropDownValue1 ??= ''), + options: reasonsJsonList != null && + reasonsJsonList != [] + ? reasonsJsonList + .map((e) => e.toString()) + .toList() + : [], + optionLabels: PhpGroup.getDadosCall + .reasonsMotDescStrList( + dropDownGetDadosResponse + .jsonBody), + onChanged: (val) => safeSetState( + () => _model.dropDownValue1 = val), width: double.infinity, height: double.infinity, textStyle: FlutterFlowTheme.of(context) @@ -1223,28 +1260,55 @@ Widget scheduleVisit(BuildContext context, ); } - final dropDownGetDadosResponse = snapshot.data!; - final lavelList = PhpGroup.getDadosCall.levelJsonList(dropDownGetDadosResponse.jsonBody); + final dropDownGetDadosResponse = + snapshot.data!; + final lavelList = PhpGroup.getDadosCall + .levelJsonList( + dropDownGetDadosResponse.jsonBody); - if (_model.dropDownValue2 != '' && _model.dropDownValue2 != null) { - String value = _model.dropDownValue2.toString() ?? ''; + if (_model.dropDownValue2 != '' && + _model.dropDownValue2 != null) { + String value = + _model.dropDownValue2.toString() ?? + ''; - if (value.contains('{') && value.contains('}') && value.contains(':')) { + if (value.contains('{') && + value.contains('}') && + value.contains(':')) { // log("Valor e um Objeto | Usuário Escolheu o Nivel ${_model.dropDownValue2}"); } else { // log("Valor e uma String | Usuário Escolheu o Nivel ${_model.dropDownValue2}"); - if (lavelList != null && lavelList.isNotEmpty) { - var item = lavelList.where((level) => level['NAC_DESCRICAO'].toString().contains(_model.dropDownValue2 ?? '')); - _model.dropDownValue2 = item.firstOrNull.toString() ?? ''; + if (lavelList != null && + lavelList.isNotEmpty) { + var item = lavelList.where((level) => + level['NAC_DESCRICAO'] + .toString() + .contains( + _model.dropDownValue2 ?? + '')); + _model.dropDownValue2 = + item.firstOrNull.toString() ?? ''; } } } return FlutterFlowDropDown( - controller: _model.dropDownValueController2 ??= FormFieldController(_model.dropDownValue2 ??= ''), - options: lavelList != null && lavelList != [] ? lavelList.map((e) => e.toString()).toList() : [], - optionLabels: PhpGroup.getDadosCall.levelNACDescricaoStrList(dropDownGetDadosResponse.jsonBody), - onChanged: (val) => safeSetState(() => _model.dropDownValue2 = val), + controller: + _model.dropDownValueController2 ??= + FormFieldController( + _model.dropDownValue2 ??= ''), + options: + lavelList != null && lavelList != [] + ? lavelList + .map((e) => e.toString()) + .toList() + : [], + optionLabels: PhpGroup.getDadosCall + .levelNACDescricaoStrList( + dropDownGetDadosResponse + .jsonBody), + onChanged: (val) => safeSetState( + () => _model.dropDownValue2 = val), width: double.infinity, height: double.infinity, textStyle: FlutterFlowTheme.of(context) @@ -1552,7 +1616,6 @@ Widget scheduleVisit(BuildContext context, ), onPressed: _model.isValid() ? () async { - await showDialog( context: context, builder: (context) { diff --git a/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart b/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart index b84d75e9..6220ca55 100644 --- a/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart +++ b/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart @@ -17,7 +17,6 @@ import 'package:google_fonts/google_fonts.dart'; import 'package:hub/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_model.dart'; import 'package:provider/provider.dart'; - class ScheduleProvisionalVisitPageWidget extends StatefulWidget { const ScheduleProvisionalVisitPageWidget({super.key}); @@ -55,7 +54,8 @@ class _ScheduleProvisionalVisitPageWidgetState } bool _isFormValid() { - if (_model.personNameTextController.text == '' || _model.personNameTextController.text.length > 80) { + if (_model.personNameTextController.text == '' || + _model.personNameTextController.text.length > 80) { return false; } @@ -161,10 +161,12 @@ class _ScheduleProvisionalVisitPageWidgetState crossAxisAlignment: CrossAxisAlignment.center, children: [ Align( - alignment: const AlignmentDirectional(-1.0, 0.0), + alignment: + const AlignmentDirectional(-1.0, 0.0), child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 24.0, 0.0, 0.0, 0.0), + padding: + const EdgeInsetsDirectional.fromSTEB( + 24.0, 0.0, 0.0, 0.0), child: Text( FFLocalizations.of(context).getText( '8d3679lf' /* Propriedade */, @@ -210,7 +212,8 @@ class _ScheduleProvisionalVisitPageWidgetState MainAxisAlignment.start, children: [ ClipRRect( - borderRadius: const BorderRadius.only( + borderRadius: + const BorderRadius.only( bottomLeft: Radius.circular(50.0), bottomRight: Radius.circular(50.0), @@ -218,10 +221,10 @@ class _ScheduleProvisionalVisitPageWidgetState topRight: Radius.circular(50.0), ), child: CachedNetworkImage( - fadeInDuration: - const Duration(milliseconds: 200), - fadeOutDuration: - const Duration(milliseconds: 200), + fadeInDuration: const Duration( + milliseconds: 200), + fadeOutDuration: const Duration( + milliseconds: 200), imageUrl: 'https://freaccess.com.br/freaccess/Images/Clients/${FFAppState().cliUUID}.png', width: 35.0, @@ -232,9 +235,8 @@ class _ScheduleProvisionalVisitPageWidgetState ), ), Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 15.0, 0.0, 0.0, 0.0), + padding: const EdgeInsetsDirectional + .fromSTEB(15.0, 0.0, 0.0, 0.0), child: Text( FFAppState().local, style: @@ -272,10 +274,12 @@ class _ScheduleProvisionalVisitPageWidgetState MainAxisAlignment.spaceEvenly, children: [ Align( - alignment: const AlignmentDirectional(-1.0, 0.0), + alignment: + const AlignmentDirectional(-1.0, 0.0), child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 24.0, 10.0, 0.0, 10.0), + padding: + const EdgeInsetsDirectional.fromSTEB( + 24.0, 10.0, 0.0, 10.0), child: Text( FFLocalizations.of(context).getText( 'z6aawgqa' /* Dados da Visita */, @@ -303,12 +307,11 @@ class _ScheduleProvisionalVisitPageWidgetState Container( height: 80.0, decoration: const BoxDecoration(), - alignment: - const AlignmentDirectional(0.0, 0.0), + alignment: const AlignmentDirectional( + 0.0, 0.0), child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 24.0, 0.0, 24.0, 0.0), + padding: const EdgeInsetsDirectional + .fromSTEB(24.0, 0.0, 24.0, 0.0), child: SizedBox( width: double.infinity, child: TextFormField( @@ -319,7 +322,8 @@ class _ScheduleProvisionalVisitPageWidgetState onChanged: (_) => EasyDebounce.debounce( '_model.personNameTextController', - const Duration(milliseconds: 500), + const Duration( + milliseconds: 500), () => setState(() {}), ), autofocus: false, @@ -463,12 +467,13 @@ class _ScheduleProvisionalVisitPageWidgetState SizedBox( height: 80.0, child: Stack( - alignment: - const AlignmentDirectional(0.0, 0.0), + alignment: const AlignmentDirectional( + 0.0, 0.0), children: [ Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( + padding: + const EdgeInsetsDirectional + .fromSTEB( 24.0, 0.0, 24.0, 0.0), child: TextFormField( controller: _model @@ -478,7 +483,8 @@ class _ScheduleProvisionalVisitPageWidgetState onChanged: (_) => EasyDebounce.debounce( '_model.dateTimeTextController', - const Duration(milliseconds: 500), + const Duration( + milliseconds: 500), () => setState(() {}), ), readOnly: true, @@ -590,8 +596,9 @@ class _ScheduleProvisionalVisitPageWidgetState ), ), Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( + padding: + const EdgeInsetsDirectional + .fromSTEB( 24.0, 0.0, 24.0, 0.0), child: InkWell( splashColor: Colors.transparent, @@ -715,11 +722,15 @@ class _ScheduleProvisionalVisitPageWidgetState pickerForegroundColor: FlutterFlowTheme.of( context) - .primaryText, + .info, selectedDateTimeBackgroundColor: FlutterFlowTheme.of( context) .primary, + pickerDialForegroundColor: + FlutterFlowTheme.of( + context) + .primaryText, selectedDateTimeForegroundColor: FlutterFlowTheme.of( context) @@ -787,24 +798,28 @@ class _ScheduleProvisionalVisitPageWidgetState ], ), Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 0.0, 10.0, 0.0, 10.0), + padding: + const EdgeInsetsDirectional.fromSTEB( + 0.0, 10.0, 0.0, 10.0), child: Column( mainAxisSize: MainAxisSize.max, children: [ Align( - alignment: - const AlignmentDirectional(0.0, 0.0), + alignment: const AlignmentDirectional( + 0.0, 0.0), child: Container( decoration: const BoxDecoration(), alignment: - const AlignmentDirectional(0.0, 0.0), + const AlignmentDirectional( + 0.0, 0.0), child: Align( - alignment: const AlignmentDirectional( - 0.0, 0.0), + alignment: + const AlignmentDirectional( + 0.0, 0.0), child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( + padding: + const EdgeInsetsDirectional + .fromSTEB( 24.0, 0.0, 24.0, 0.0), child: SizedBox( width: double.infinity, @@ -961,51 +976,71 @@ class _ScheduleProvisionalVisitPageWidgetState ), ), FFButtonWidget( - onPressed: !_isFormValid() ? null : () async { + onPressed: !_isFormValid() + ? null + : () async { + try { + _model.provVisitSchedule = await PhpGroup + .postProvVisitSchedulingCall + .call( + devUUID: FFAppState().devUUID, + userUUID: FFAppState().userUUID, + cliID: FFAppState().cliUUID, + atividade: 'putAgendamentoProv', + data: + _model.dateTimeTextController.text, + motivo: _model.notesTextController.text, + nome: _model + .personNameTextController.text, + proID: FFAppState().ownerUUID, + ); - try { - _model.provVisitSchedule = await PhpGroup.postProvVisitSchedulingCall.call( - devUUID: FFAppState().devUUID, - userUUID: FFAppState().userUUID, - cliID: FFAppState().cliUUID, - atividade: 'putAgendamentoProv', - data: _model.dateTimeTextController.text, - motivo: _model.notesTextController.text, - nome: _model.personNameTextController.text, - proID: FFAppState().ownerUUID, - ); + if (PhpGroup.postProvVisitSchedulingCall + .error((_model.provVisitSchedule + ?.jsonBody ?? + '')) == + false) { + DialogUtil.success( + context, + FFLocalizations.of(context).getVariableText( + ptText: + "Agendamento Provisório Realizado com Sucesso!", + enText: + "Provisional Scheduling Successfully Completed")); + setState(() { + _model.dateTimeTextController + ?.clear(); + _model.personNameTextController + ?.clear(); + _model.notesTextController?.clear(); + }); + } else { + var message = PhpGroup + .postProvVisitSchedulingCall + .msg((_model.provVisitSchedule + ?.jsonBody ?? + '')); + if (message != null) { + DialogUtil.error(context, message); + } else { + DialogUtil.errorDefault(context); + } + } - if (PhpGroup.postProvVisitSchedulingCall.error((_model.provVisitSchedule?.jsonBody ?? '')) == false) { - DialogUtil.success( - context, - FFLocalizations.of(context).getVariableText( - ptText: "Agendamento Provisório Realizado com Sucesso!", - enText: "Provisional Scheduling Successfully Completed" - ) - ); - setState(() { - _model.dateTimeTextController?.clear(); - _model.personNameTextController?.clear(); - _model.notesTextController?.clear(); - }); - } else { - var message = PhpGroup.postProvVisitSchedulingCall.msg((_model.provVisitSchedule?.jsonBody ?? '')); - if (message != null) { - DialogUtil.error(context, message); - } else { - DialogUtil.errorDefault(context); - } - } - - setState(() {}); - } catch (e, s) { - DialogUtil.errorDefault(context); - LogUtil.requestAPIFailed("processRequest.php", "", "Cadastrar Visita Provisória", e, s); - } - - }, + setState(() {}); + } catch (e, s) { + DialogUtil.errorDefault(context); + LogUtil.requestAPIFailed( + "processRequest.php", + "", + "Cadastrar Visita Provisória", + e, + s); + } + }, showLoadingIndicator: true, - text: FFLocalizations.of(context).getText('bv5fg9sv' /* Enviar */), + text: FFLocalizations.of(context) + .getText('bv5fg9sv' /* Enviar */), options: FFButtonOptions( width: 150.0, height: 50.0, @@ -1051,4 +1086,4 @@ class _ScheduleProvisionalVisitPageWidgetState ), ); } -} \ No newline at end of file +} diff --git a/pubspec.lock b/pubspec.lock index ebe0cae9..7b9fa95f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -653,6 +653,14 @@ packages: description: flutter source: sdk version: "0.0.0" + fluttertoast: + dependency: "direct main" + description: + name: fluttertoast + sha256: "95f349437aeebe524ef7d6c9bde3e6b4772717cf46a0eb6a3ceaddc740b297cc" + url: "https://pub.dev" + source: hosted + version: "8.2.8" font_awesome_flutter: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index e654dd48..695b8f5b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -108,6 +108,7 @@ dependencies: qr_flutter: ^4.1.0 permission_handler: ^11.3.1 firebase_crashlytics: ^4.0.1 + fluttertoast: ^8.2.8 dependency_overrides: http: 1.2.1