diff --git a/lib/actions/actions.dart b/lib/actions/actions.dart index e4305dd3..1547db1d 100644 --- a/lib/actions/actions.dart +++ b/lib/actions/actions.dart @@ -11,6 +11,7 @@ import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/flutter_flow/random_data_util.dart'; import 'package:hub/shared/utils/dialog_util.dart'; import 'package:qr_flutter/qr_flutter.dart'; +import 'package:share_plus/share_plus.dart'; import 'package:url_launcher/url_launcher.dart'; import '../shared/utils/log_util.dart'; @@ -153,7 +154,6 @@ Future singInLoginAction( AppState().haveLocal = await checkLocals(context: context, model: model); - log('haveLocal in login: ${AppState().haveLocal}'); toggleApp(context, AppState().haveLocal!); } else { if (PhpGroup.loginCall.msg((loginCall?.jsonBody ?? '')) == null) { @@ -299,7 +299,6 @@ Future toggleSignUpPage(BuildContext context) async { } Future toggleApp(BuildContext context, bool haveLocal) async { - log('haveLocal in toggleApp: $haveLocal'); if (haveLocal == true) context.goNamed( 'homePage', @@ -384,7 +383,6 @@ Future checkLocals({ devUUID: AppState().devUUID, userUUID: AppState().userUUID, ); - log(response.jsonBody.toString()); // Verificação rápida de erro para evitar processamento desnecessário. if (response.jsonBody['error']) { @@ -400,6 +398,21 @@ Future checkLocals({ } } +Future showShare(payload) async { + for (var i = 0; i < payload['convites'].length; i++) { + log('ADD'); + await Share.share(''' +Olá, \*${payload['convites'][i]['VTE_NOME']}\*! Você foi convidado para \*${AppState().local}\*. + +\*Validade do Convite\*: +- Início: ${payload['convites'][i]['VAW_DTINICIO']} +- Fim: ${payload['convites'][i]['VAW_DTFIM']} + +URL do Convite: https://visita.freaccess.com.br/${payload['convites'][i]['VAW_ID']}/${AppState().cliUUID}/${payload['convites'][i]['VAW_CHAVE']} + '''); + } +} + Future answersRequest(BuildContext context, String? ref, String? task, String? response, String? id) async { ApiCallResponse? respondeSolicitacaoCall; diff --git a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart index 58db3341..66e9ebc3 100644 --- a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart +++ b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart @@ -1,9 +1,4 @@ -import 'dart:developer'; - -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_spinkit/flutter_spinkit.dart'; -import 'package:google_fonts/google_fonts.dart'; import 'package:hub/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart'; import 'package:hub/components/templates_components/card_item_template_component/card_item_template_component_widget.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; @@ -12,27 +7,26 @@ import 'package:hub/shared/utils/log_util.dart'; import 'package:provider/provider.dart'; import '/backend/api_requests/api_calls.dart'; -import '/flutter_flow/flutter_flow_icon_button.dart'; import '/flutter_flow/flutter_flow_theme.dart'; class BottomArrowLinkedLocalsComponentWidget extends StatefulWidget { const BottomArrowLinkedLocalsComponentWidget({super.key}); @override - State createState() => _BottomArrowLinkedLocalsComponentWidgetState(); + State createState() => + _BottomArrowLinkedLocalsComponentWidgetState(); } -class _BottomArrowLinkedLocalsComponentWidgetState extends State { +class _BottomArrowLinkedLocalsComponentWidgetState + extends State { late BottomArrowLinkedLocalsComponentModel _model; - bool _loading = false; bool _hasData = false; late Future _localsFuture; List _localsWrap = []; - @override void setState(VoidCallback callback) { super.setState(callback); @@ -42,7 +36,8 @@ class _BottomArrowLinkedLocalsComponentWidgetState extends State BottomArrowLinkedLocalsComponentModel()); + _model = + createModel(context, () => BottomArrowLinkedLocalsComponentModel()); _localsFuture = _fetchLocals(); } @@ -69,7 +64,7 @@ class _BottomArrowLinkedLocalsComponentWidgetState extends State _fetchLocals() async { try { setState(() => _loading = true); - var response = await PhpGroup.getLocalsCall.call( + var response = await PhpGroup.getLocalsCall.call( devUUID: AppState().devUUID, userUUID: AppState().userUUID, ); @@ -100,31 +95,36 @@ class _BottomArrowLinkedLocalsComponentWidgetState extends State _fetchResponseLink(String status, String cliID) async { try { var response = await PhpGroup.resopndeVinculo.call( - devUUID: AppState().devUUID, - userUUID: AppState().userUUID, - cliID: cliID, - tarefa: status - ); + devUUID: AppState().devUUID, + userUUID: AppState().userUUID, + cliID: cliID, + tarefa: status); if (response.jsonBody['error'] == false) { - return {'error': false, 'error_msg': FFLocalizations.of(context).getVariableText(ptText: "Vinculo Ativado com Sucesso", enText: "Link Activated Successfully") }; + return { + 'error': false, + 'error_msg': FFLocalizations.of(context).getVariableText( + ptText: "Vinculo Ativado com Sucesso", + enText: "Link Activated Successfully") + }; } else { return response.jsonBody; } - } catch (e, s) { DialogUtil.errorDefault(context); - LogUtil.requestAPIFailed('responderVinculo.php', '', 'Responder Vinculo', e, s); - return {'error': true, 'error_msg': FFLocalizations.of(context).getVariableText( - ptText: "Falha ao efetuar operação, Tente Novamente mais tarde.", - enText: "Failed to perform operation, please try again later." - )}; + LogUtil.requestAPIFailed( + 'responderVinculo.php', '', 'Responder Vinculo', e, s); + return { + 'error': true, + 'error_msg': FFLocalizations.of(context).getVariableText( + ptText: "Falha ao efetuar operação, Tente Novamente mais tarde.", + enText: "Failed to perform operation, please try again later.") + }; } } @@ -135,18 +135,25 @@ class _BottomArrowLinkedLocalsComponentWidgetState extends State _labelsHashMap(dynamic local) { return Map.from({ '${local['CLI_PREFIXO']}:': local['CLI_NOME'], - '${FFLocalizations.of(context).getVariableText(ptText: 'Propriedade', enText: 'Property')}:': local['CLU_OWNER_DSC'] + '${FFLocalizations.of(context).getVariableText(ptText: 'Propriedade', enText: 'Property')}:': + local['CLU_OWNER_DSC'] }); } Map _statusHashMap(dynamic local) { return Map.from({ if (local['CLU_STATUS'] == 'A') - FFLocalizations.of(context).getVariableText(ptText: 'Ativo', enText: 'Active'): FlutterFlowTheme.of(context).success + FFLocalizations.of(context).getVariableText( + ptText: 'Ativo', + enText: 'Active'): FlutterFlowTheme.of(context).success else if (local['CLU_STATUS'] == 'B') - FFLocalizations.of(context).getVariableText(ptText: 'Bloqueado', enText: 'Blocked'): FlutterFlowTheme.of(context).error + FFLocalizations.of(context).getVariableText( + ptText: 'Bloqueado', + enText: 'Blocked'): FlutterFlowTheme.of(context).error else - FFLocalizations.of(context).getVariableText(ptText: 'Pendente', enText: 'Pending'): FlutterFlowTheme.of(context).warning + FFLocalizations.of(context).getVariableText( + ptText: 'Pendente', + enText: 'Pending'): FlutterFlowTheme.of(context).warning }); } @@ -156,7 +163,6 @@ class _BottomArrowLinkedLocalsComponentWidgetState extends State( - future: _localsFuture, - builder: (context, snapshot) { - return ListView.builder( - shrinkWrap: true, - physics: const BouncingScrollPhysics(), - itemCount: _localsWrap.length, - itemBuilder: (BuildContext context, int index) { - final item = _localsWrap[index]; - return _item(context, item); - }, - ); - }, - ) - ); + width: double.infinity, + height: double.infinity, + decoration: const BoxDecoration(), + padding: const EdgeInsets.only(top: 15), + child: FutureBuilder( + future: _localsFuture, + builder: (context, snapshot) { + return ListView.builder( + shrinkWrap: true, + physics: const BouncingScrollPhysics(), + itemCount: _localsWrap.length, + itemBuilder: (BuildContext context, int index) { + final item = _localsWrap[index]; + return _item(context, item); + }, + ); + }, + )); } @override @@ -234,12 +241,9 @@ class _BottomArrowLinkedLocalsComponentWidgetState extends State { ]; else return [ - MenuButtonWidget( - icon: Icons.engineering_outlined, - action: () async { - await _model.provisionalSchedule(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Provisional\nSchedule', - ptText: 'Agendar\nPrestadores', - ), - ), - MenuButtonWidget( - icon: Icons.sports_motorsports_outlined, - action: () async { - await _model.deliverySchedule(context); - setState(() {}); - }, - title: FFLocalizations.of(context).getVariableText( - enText: 'Delivery\nSchedule', - ptText: 'Agendar\nEntregas', - ), - ), MenuButtonWidget( icon: Icons.share_location_outlined, action: () async { @@ -181,6 +160,17 @@ class _MenuComponentWidgetState extends State { enText: 'My\nOrders', ), ), + MenuButtonWidget( + icon: Icons.engineering_outlined, + action: () async { + await _model.provisionalSchedule(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Register\nProviders', + ptText: 'Cadastrar\nPrestadores', + ), + ), MenuButtonWidget( icon: Icons.event_available, action: () async { @@ -193,14 +183,25 @@ class _MenuComponentWidgetState extends State { ), ), MenuButtonWidget( - icon: FFIcons.khome, + icon: Icons.sports_motorsports_outlined, + action: () async { + await _model.deliverySchedule(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Register\nDeliveries', + ptText: 'Cadastrar\nEntregas', + ), + ), + MenuButtonWidget( + icon: Icons.person_add_alt_1_outlined, action: () async { await _model.registerVisitorOptAction(context); setState(() {}); }, title: FFLocalizations.of(context).getVariableText( enText: 'Register\nVisitor', - ptText: 'Cadastro\nde Visitante', + ptText: 'Cadastrar\nVisitante', ), ), MenuButtonWidget( @@ -237,7 +238,7 @@ class _MenuComponentWidgetState extends State { ), ), MenuButtonWidget( - icon: Icons.key_outlined, + icon: Icons.transfer_within_a_station_outlined, action: () async { await _model.accessHistoryAction(context); setState(() {}); @@ -248,7 +249,7 @@ class _MenuComponentWidgetState extends State { ), ), MenuButtonWidget( - icon: Icons.people_outline_sharp, + icon: Symbols.location_away, action: () async { await _model.visitHistoryAction(context); setState(() {}); @@ -276,7 +277,7 @@ class _MenuComponentWidgetState extends State { setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Preferences\nSettings', + enText: 'System\n Settings', ptText: 'Opções\ndo Sistema', ), ), @@ -526,7 +527,7 @@ class _MenuComponentWidgetState extends State { setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Preferences Settings', + enText: 'System Settings', ptText: 'Opções do Sistema', ), ), diff --git a/lib/components/templates_components/details_component/details_component_action.dart b/lib/components/templates_components/details_component/details_component_action.dart index 8fb007f2..d197282a 100644 --- a/lib/components/templates_components/details_component/details_component_action.dart +++ b/lib/components/templates_components/details_component/details_component_action.dart @@ -1,24 +1,22 @@ -import 'dart:developer'; - import 'package:flutter/material.dart'; import 'package:hub/actions/actions.dart'; -import 'package:hub/app_state.dart'; import 'package:hub/components/templates_components/details_component/details_component_widget.dart'; -import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; -import 'package:hub/flutter_flow/internationalization.dart'; -import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart'; import 'package:hub/shared/utils/validator_util.dart'; -import 'package:rxdart/rxdart.dart'; import 'package:share_plus/share_plus.dart'; -Widget buildDetails(dynamic visitaWrapItem, BuildContext context, Future Function(BuildContext, int, int, String, String)? changeStatusAction) { +Widget buildDetails( + dynamic visitaWrapItem, + BuildContext context, + Future Function(BuildContext, int, int, String, String)? + changeStatusAction) { return DetailsComponentWidget( buttons: [ - if (getStatus(visitaWrapItem['VAW_STATUS']) == status.active) // REJECT ACTION + if (getStatus(visitaWrapItem['VAW_STATUS']) == + status.active) // REJECT ACTION FFButtonWidget( text: FFLocalizations.of(context).getVariableText( ptText: 'Cancelar', @@ -141,13 +139,13 @@ Widget buildDetails(dynamic visitaWrapItem, BuildContext context, Future.from({ - '${FFLocalizations.of(context).getVariableText(ptText: "Nome", enText: "Name")}:': visitaWrapItem['VTE_NOME'] ?? '', - '${FFLocalizations.of(context).getVariableText(ptText: "Inicio", enText: "Start")}:': visitaWrapItem['VAW_DTINICIO'] != '' && visitaWrapItem['VAW_DTINICIO'] != null ? ValidatorUtil.toLocalDateTime('yyyy-MM-dd HH:mm:ss', visitaWrapItem['VAW_DTINICIO']) : '', - '${FFLocalizations.of(context).getVariableText(ptText: "Fim", enText: "End")}:': visitaWrapItem['VAW_DTFIM'] != '' && visitaWrapItem['VAW_DTFIM'] != null ? ValidatorUtil.toLocalDateTime('yyyy-MM-dd HH:mm:ss', visitaWrapItem['VAW_DTFIM']) : '', + '${FFLocalizations.of(context).getVariableText(ptText: "Nome", enText: "Name")}:': + visitaWrapItem['VTE_NOME'] ?? '', + '${FFLocalizations.of(context).getVariableText(ptText: "Inicio", enText: "Start")}:': + visitaWrapItem['VAW_DTINICIO'] != '' && + visitaWrapItem['VAW_DTINICIO'] != null + ? ValidatorUtil.toLocalDateTime( + 'yyyy-MM-dd HH:mm:ss', visitaWrapItem['VAW_DTINICIO']) + : '', + '${FFLocalizations.of(context).getVariableText(ptText: "Fim", enText: "End")}:': + visitaWrapItem['VAW_DTFIM'] != '' && + visitaWrapItem['VAW_DTFIM'] != null + ? ValidatorUtil.toLocalDateTime( + 'yyyy-MM-dd HH:mm:ss', visitaWrapItem['VAW_DTFIM']) + : '', }), imagePath: 'https://freaccess.com.br/freaccess/getImage.php?cliID=${AppState().cliUUID}&atividade=getFoto&Documento=${visitaWrapItem['VTE_DOCUMENTO'] ?? ''}&tipo=E', diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart index d428e668..5ac6b46f 100644 --- a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart +++ b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart @@ -154,8 +154,12 @@ class _SignInTemplateComponentWidgetState child: Padding( padding: const EdgeInsets.all(3.0), child: Text( - FFLocalizations.of(context).getText( - '9hbdjxrz' /* VAMOS LA! ENTRE COM A SUA CONT... */, + FFLocalizations.of(context) + .getVariableText( + ptText: + 'VAMOS LÁ! ENTRE COM A SUA CONTA', + enText: + 'LET\'S GO! SIGN IN WITH YOUR ACCOUNT', ), textAlign: TextAlign.start, style: FlutterFlowTheme.of(context) diff --git a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart index eb3ab3dd..d3b7772c 100644 --- a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart +++ b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart @@ -235,7 +235,7 @@ class _SignUpTemplateComponentWidgetState Form( key: _model.formKey, autovalidateMode: - AutovalidateMode.always, + AutovalidateMode.onUserInteraction, child: Column( mainAxisSize: MainAxisSize.max, children: [ @@ -255,7 +255,7 @@ class _SignUpTemplateComponentWidgetState EasyDebounce.debounce( '_model.nameRegisterFormTextController', const Duration( - milliseconds: 2000), + milliseconds: 500), () => setState(() {}), ), autofocus: false, @@ -397,7 +397,7 @@ class _SignUpTemplateComponentWidgetState EasyDebounce.debounce( '_model.emailRegisterFormTextController', const Duration( - milliseconds: 2000), + milliseconds: 500), () => setState(() {}), ), autofocus: false, @@ -541,7 +541,7 @@ class _SignUpTemplateComponentWidgetState EasyDebounce.debounce( '_model.passwordRegisterFormTextController', const Duration( - milliseconds: 2000), + milliseconds: 500), () => setState(() {}), ), autofocus: false, diff --git a/lib/flutter_flow/internationalization.dart b/lib/flutter_flow/internationalization.dart index 534b2d04..4b7fbfe3 100644 --- a/lib/flutter_flow/internationalization.dart +++ b/lib/flutter_flow/internationalization.dart @@ -1,5 +1,5 @@ -import 'package:flutter/material.dart'; import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; const _kLocaleStorageKey = '__locale_key__'; @@ -222,8 +222,8 @@ final kTranslationsMap = >>[ // scheduleCompleteVisitPage { '61lcxdgm': { - 'pt': 'Agendar Visita', - 'en': 'Schedule Visit', + 'pt': 'Agenda Completa', + 'en': 'Complete Schedule', }, 'ueth1f4g': { 'pt': 'Cadastrar Visita', @@ -411,7 +411,7 @@ final kTranslationsMap = >>[ // acessHistoryPage { 'ch8qymga': { - 'pt': 'Histórico de Acesso', + 'pt': 'Consultar Acessos', 'en': 'Access History', }, '2odgr6hg': { @@ -442,7 +442,7 @@ final kTranslationsMap = >>[ 'en': 'Reason:', }, '784f83pc': { - 'pt': 'Histórico de Liberação', + 'pt': 'Consultar Liberações', 'en': 'Liberation History', }, '1skj43ye': { diff --git a/lib/pages/liberation_history/liberation_history_widget.dart b/lib/pages/liberation_history/liberation_history_widget.dart index e75d5676..c0ba0cda 100644 --- a/lib/pages/liberation_history/liberation_history_widget.dart +++ b/lib/pages/liberation_history/liberation_history_widget.dart @@ -1,3 +1,5 @@ +import 'dart:developer'; + import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/actions/actions.dart'; @@ -229,7 +231,7 @@ class _LiberationHistoryWidgetState extends State { ), icon: const Icon(Icons.done), onPressed: () async { - return answersRequest + answersRequest .call( context, liberationHistoryItem['NOT_ID'].toString(), @@ -237,8 +239,9 @@ class _LiberationHistoryWidgetState extends State { '', liberationHistoryItem['VTE_ID'].toString(), ) - .then((message) { - if (message.isEmpty) { + .then((value) { + log('test: $value'); + if (value) { showSnackbar( context, FFLocalizations.of(context).getVariableText( @@ -246,9 +249,14 @@ class _LiberationHistoryWidgetState extends State { ptText: 'Visita resolvida com sucesso'), false); } else { - showSnackbar(context, message, true); + showSnackbar( + context, + FFLocalizations.of(context).getVariableText( + enText: 'Error resolving visit', + ptText: 'Erro ao resolver visita'), + true); } - + }).whenComplete(() { safeSetState(() { _requestWrap = []; _requestFuture = _fetchRequests(); @@ -311,46 +319,7 @@ class _LiberationHistoryWidgetState extends State { ), ); }, - ).then((_) { - () {}(); - // PushNotificationManager _pushNotificationService = - // PushNotificationManager(); - - // _pushNotificationService.onMessageReceived.listen((received) { - // if (received.data['click_action'] == 'cancel_request') { - // _pushNotificationService.dispose(); - // showSnackbar( - // context, - // FFLocalizations.of(context).getVariableText( - // enText: 'Successfully resolved visit', - // ptText: 'Visita resolvida com sucesso'), - // false); - // context.pushReplacementNamed( - // 'liberationHistory', - // extra: { - // kTransitionInfoKey: const TransitionInfo( - // hasTransition: true, - // transitionType: PageTransitionType.scale, - // alignment: Alignment.bottomCenter, - // ), - // }, - // ); - // } - // }); - // }).whenComplete(() { - // safeSetState(() { - // _requestWrap = []; - // _requestFuture = _fetchRequests(); - // }); - // }).catchError((e, s) { - // DialogUtil.errorDefault(context); - // LogUtil.requestAPIFailed( - // "proccessRequest.php", "", "Consulta de Solitiações", e, s); - // safeSetState(() { - // _hasData = false; - // _loading = false; - // }); - }); + ).then((_) {}); }, ); } diff --git a/lib/pages/message_history_page/message_history_page_widget.dart b/lib/pages/message_history_page/message_history_page_widget.dart index 84749623..817340ea 100644 --- a/lib/pages/message_history_page/message_history_page_widget.dart +++ b/lib/pages/message_history_page/message_history_page_widget.dart @@ -166,7 +166,7 @@ class _MessageHistoryPageWidgetState extends State title: Text( FFLocalizations.of(context).getVariableText( enText: 'Message History', - ptText: 'Histórico de Mensagens', + ptText: 'Consultar Mensagens', ), style: FlutterFlowTheme.of(context).headlineMedium.override( fontFamily: 'Nunito', diff --git a/lib/pages/package_order_page/package_order_page.dart b/lib/pages/package_order_page/package_order_page.dart index 9d8def5c..83d28dc9 100644 --- a/lib/pages/package_order_page/package_order_page.dart +++ b/lib/pages/package_order_page/package_order_page.dart @@ -1,11 +1,8 @@ import 'dart:async'; -import 'dart:developer'; -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:hub/backend/api_requests/api_calls.dart'; -import 'package:hub/backend/api_requests/api_manager.dart'; import 'package:hub/components/molecular_components/order_filter_modal/order_filter_modal_widget.dart'; import 'package:hub/components/templates_components/card_item_template_component/card_item_template_component_widget.dart'; import 'package:hub/components/templates_components/details_component/details_component_widget.dart'; @@ -25,7 +22,6 @@ class PackageOrderPage extends StatefulWidget { } class _PackageOrderPage extends State { - late ScrollController _scrollController; int _pageNumber = 1; final int _pageSize = 10; @@ -54,8 +50,10 @@ class _PackageOrderPage extends State { _orderFuture = _fetchOrders(); - _scrollController = ScrollController()..addListener(() { - if (_scrollController.position.atEdge && _scrollController.position.pixels != 0) { + _scrollController = ScrollController() + ..addListener(() { + if (_scrollController.position.atEdge && + _scrollController.position.pixels != 0) { _loadMoreOrders(); } }); @@ -87,15 +85,14 @@ class _PackageOrderPage extends State { setState(() => _loading = true); var response = await PhpGroup.buscaEnconcomendas.call( - devUUID: AppState().devUUID, - userUUID: AppState().userUUID, - cliID: AppState().cliUUID, - atividade: 'getEncomendas', - pageSize: _pageSize.toString(), - page: _pageNumber.toString(), - adresseeType: _adresseeType == '.*' ? 'TOD' : _adresseeType, - status: _status == '.*' ? 'all' : _status - ); + devUUID: AppState().devUUID, + userUUID: AppState().userUUID, + cliID: AppState().cliUUID, + atividade: 'getEncomendas', + pageSize: _pageSize.toString(), + page: _pageNumber.toString(), + adresseeType: _adresseeType == '.*' ? 'TOD' : _adresseeType, + status: _status == '.*' ? 'all' : _status); final List orders = response.jsonBody['value']['list'] ?? []; @@ -159,25 +156,29 @@ class _PackageOrderPage extends State { icon: const Icon(Icons.filter_list), onPressed: () async { final Map? selectedFilter = - await showModalBottomSheet>( - isScrollControlled: true, - backgroundColor: Colors.transparent, - context: context, - builder: (context) { - return GestureDetector( - onTap: () => Navigator.of(context).pop(), - child: Container( - color: Colors.transparent, - child: GestureDetector( - onTap: () {}, - child: OrderFilterModalWidget( - defaultAdresseeType: _selectedTypeSubject.value['adresseeType'] ?? '.*', - defaultStatus: _selectedTypeSubject.value['status'] ?? '.*', + await showModalBottomSheet>( + isScrollControlled: true, + backgroundColor: Colors.transparent, + context: context, + builder: (context) { + return GestureDetector( + onTap: () => Navigator.of(context).pop(), + child: Container( + color: Colors.transparent, + child: GestureDetector( + onTap: () {}, + child: OrderFilterModalWidget( + defaultAdresseeType: _selectedTypeSubject + .value['adresseeType'] ?? + '.*', + defaultStatus: + _selectedTypeSubject.value['status'] ?? + '.*', + ), + ), ), - ), - ), - ); - }); + ); + }); if (selectedFilter != null) { _updateFilterAction(selectedFilter); @@ -224,16 +225,16 @@ class _PackageOrderPage extends State { backgroundColor: FlutterFlowTheme.of(context).primaryBackground, automaticallyImplyLeading: false, title: Text( - FFLocalizations.of(context).getVariableText(enText: 'Orders', ptText: 'Encomendas'), + FFLocalizations.of(context).getVariableText( + enText: 'My Orders', ptText: 'Minhas Encomendas'), style: FlutterFlowTheme.of(context).headlineMedium.override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context).primaryText, - fontSize: 15.0, - letterSpacing: 0.0, - fontWeight: FontWeight.bold, - useGoogleFonts: GoogleFonts.asMap().containsKey('Nunito'), - ) - ), + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 15.0, + letterSpacing: 0.0, + fontWeight: FontWeight.bold, + useGoogleFonts: GoogleFonts.asMap().containsKey('Nunito'), + )), leading: _backButton(context, FlutterFlowTheme.of(context)), centerTitle: true, elevation: 0.0, @@ -256,10 +257,10 @@ class _PackageOrderPage extends State { children: [ Center( child: Text( - FFLocalizations.of(context).getVariableText( - ptText: "Nenhuma encomenda encontrada!", - enText: "No orders found!"), - )), + FFLocalizations.of(context).getVariableText( + ptText: "Nenhuma encomenda encontrada!", + enText: "No orders found!"), + )), ], ), ) @@ -295,8 +296,7 @@ class _PackageOrderPage extends State { return _item(context, order); }, ); - } - ); + }); } String _imagePath(dynamic order) { @@ -306,36 +306,47 @@ class _PackageOrderPage extends State { Map _labelsHashMap(dynamic order) { return Map.from({ if (order['isPending'] == true) - '${FFLocalizations.of(context).getVariableText(ptText: 'Cód. Retirada', enText: 'Pickup Code')}:': order['id'].toString(), - '${FFLocalizations.of(context).getVariableText(ptText: 'Categoria', enText: 'Category')}:': order['customCategory'], - '${FFLocalizations.of(context).getVariableText(ptText: 'Recebido em', enText: 'Received on')}:': ValidatorUtil.toLocalDateTime('yyyy-MM-dd HH:mm:ss', order['dtReceive']), + '${FFLocalizations.of(context).getVariableText(ptText: 'Cód. Retirada', enText: 'Pickup Code')}:': + order['id'].toString(), + '${FFLocalizations.of(context).getVariableText(ptText: 'Categoria', enText: 'Category')}:': + order['customCategory'], + '${FFLocalizations.of(context).getVariableText(ptText: 'Recebido em', enText: 'Received on')}:': + ValidatorUtil.toLocalDateTime( + 'yyyy-MM-dd HH:mm:ss', order['dtReceive']), if (order['isPending'] == false) - '${FFLocalizations.of(context).getVariableText(ptText: 'Retirado em', enText: 'Picked up on')}:': ValidatorUtil.toLocalDateTime('yyyy-MM-dd HH:mm:ss', order['dtPickUp']), + '${FFLocalizations.of(context).getVariableText(ptText: 'Retirado em', enText: 'Picked up on')}:': + ValidatorUtil.toLocalDateTime( + 'yyyy-MM-dd HH:mm:ss', order['dtPickUp']), }); } Map _labelsHashMapDialog(dynamic order) { return Map.from({ if (order['isPending'] == true) - '${FFLocalizations.of(context).getVariableText(ptText: 'Cód. Retirada', enText: 'Pickup Code')}:': order['id'].toString(), - - '${FFLocalizations.of(context).getVariableText(ptText: 'Categoria', enText: 'Category')}:': order['customCategory'], - + '${FFLocalizations.of(context).getVariableText(ptText: 'Cód. Retirada', enText: 'Pickup Code')}:': + order['id'].toString(), + '${FFLocalizations.of(context).getVariableText(ptText: 'Categoria', enText: 'Category')}:': + order['customCategory'], if (order['code'] != null) - '${FFLocalizations.of(context).getVariableText(ptText: 'Cód. Objeto', enText: 'Object Code')}:': order['code'], - - '${FFLocalizations.of(context).getVariableText(ptText: 'Entregue por', enText: 'Delivered by')}:': order['sendedBy'], - - '${FFLocalizations.of(context).getVariableText(ptText: 'Recebido por', enText: 'Received by')}:': order['receivedBy'], - '${FFLocalizations.of(context).getVariableText(ptText: 'Recebido em', enText: 'Received on')}:': ValidatorUtil.toLocalDateTime('yyyy-MM-dd HH:mm:ss', order['dtReceive']), - + '${FFLocalizations.of(context).getVariableText(ptText: 'Cód. Objeto', enText: 'Object Code')}:': + order['code'], + '${FFLocalizations.of(context).getVariableText(ptText: 'Entregue por', enText: 'Delivered by')}:': + order['sendedBy'], + '${FFLocalizations.of(context).getVariableText(ptText: 'Recebido por', enText: 'Received by')}:': + order['receivedBy'], + '${FFLocalizations.of(context).getVariableText(ptText: 'Recebido em', enText: 'Received on')}:': + ValidatorUtil.toLocalDateTime( + 'yyyy-MM-dd HH:mm:ss', order['dtReceive']), if (order['isPending'] == false) - '${FFLocalizations.of(context).getVariableText(ptText: 'Retirado por', enText: 'Picked up by')}:': order['pickedUpBy'], + '${FFLocalizations.of(context).getVariableText(ptText: 'Retirado por', enText: 'Picked up by')}:': + order['pickedUpBy'], if (order['isPending'] == false) - '${FFLocalizations.of(context).getVariableText(ptText: 'Retirado em', enText: 'Picked up on')}:': ValidatorUtil.toLocalDateTime('yyyy-MM-dd HH:mm:ss', order['dtPickUp']), - + '${FFLocalizations.of(context).getVariableText(ptText: 'Retirado em', enText: 'Picked up on')}:': + ValidatorUtil.toLocalDateTime( + 'yyyy-MM-dd HH:mm:ss', order['dtPickUp']), if (order['message'] != null) - '${FFLocalizations.of(context).getVariableText(ptText: 'Mensagem', enText: 'Message')}:': order['message'] + '${FFLocalizations.of(context).getVariableText(ptText: 'Mensagem', enText: 'Message')}:': + order['message'] }); } @@ -343,13 +354,16 @@ class _PackageOrderPage extends State { return [ if (order['isPending'] == true) Map.from({ - FFLocalizations.of(context).getVariableText(ptText: 'Aguardando Retirada', enText: 'Waiting Pick up'): FlutterFlowTheme.of(context).warning, + FFLocalizations.of(context).getVariableText( + ptText: 'Aguardando Retirada', + enText: 'Waiting Pick up'): FlutterFlowTheme.of(context).warning, }) else Map.from({ - FFLocalizations.of(context).getVariableText(ptText: 'Retirado', enText: 'Picked up'): FlutterFlowTheme.of(context).primary, + FFLocalizations.of(context).getVariableText( + ptText: 'Retirado', + enText: 'Picked up'): FlutterFlowTheme.of(context).primary, }), - if (order['adresseeType'] == 'PRO') Map.from({ FFLocalizations.of(context).getVariableText( @@ -369,34 +383,38 @@ class _PackageOrderPage extends State { Widget _item(BuildContext context, dynamic order) { return CardItemTemplateComponentWidget( - imagePath: _imagePath(order), - labelsHashMap: _labelsHashMap(order), - statusHashMap: _statusHashMap(order), - onTapCardItemAction: () async { - showDialog( - useSafeArea: true, - context: context, - builder: (context) { - return Dialog( - child: DetailsComponentWidget( - imagePath: _imagePath(order), - labelsHashMap: _labelsHashMapDialog(order), - statusHashMap: [ - if (order['isPending'] == true) - Map.from({ - FFLocalizations.of(context).getVariableText(ptText: 'Aguardando Retirada', enText: 'Waiting Pick up'): FlutterFlowTheme.of(context).warning, - }) - else - Map.from({ - FFLocalizations.of(context).getVariableText(ptText: 'Retirado', enText: 'Picked up'): FlutterFlowTheme.of(context).primary, - }), - ], - buttons: [], - ), - ); - } - ); - }, + imagePath: _imagePath(order), + labelsHashMap: _labelsHashMap(order), + statusHashMap: _statusHashMap(order), + onTapCardItemAction: () async { + showDialog( + useSafeArea: true, + context: context, + builder: (context) { + return Dialog( + child: DetailsComponentWidget( + imagePath: _imagePath(order), + labelsHashMap: _labelsHashMapDialog(order), + statusHashMap: [ + if (order['isPending'] == true) + Map.from({ + FFLocalizations.of(context).getVariableText( + ptText: 'Aguardando Retirada', + enText: 'Waiting Pick up'): + FlutterFlowTheme.of(context).warning, + }) + else + Map.from({ + FFLocalizations.of(context).getVariableText( + ptText: 'Retirado', enText: 'Picked up'): + FlutterFlowTheme.of(context).primary, + }), + ], + buttons: [], + ), + ); + }); + }, ); } @@ -407,4 +425,4 @@ class _PackageOrderPage extends State { body: _appBody(context), ); } -} \ No newline at end of file +} diff --git a/lib/pages/preferences_settings_page/preferences_settings_widget.dart b/lib/pages/preferences_settings_page/preferences_settings_widget.dart index c2bbe6cc..f9817091 100644 --- a/lib/pages/preferences_settings_page/preferences_settings_widget.dart +++ b/lib/pages/preferences_settings_page/preferences_settings_widget.dart @@ -42,8 +42,8 @@ class PreferencesPageWidget extends StatelessWidget { ), title: Text( FFLocalizations.of(context).getVariableText( - enText: 'Preferences', - ptText: 'Preferências', + enText: 'System Settings', + ptText: 'Opções do Sistema', ), style: FlutterFlowTheme.of(context).headlineMedium.override( fontFamily: 'Nunito', diff --git a/lib/pages/provisional_schedule_page/provisional_schedule_widget.dart b/lib/pages/provisional_schedule_page/provisional_schedule_widget.dart index a34d0397..0bb92f31 100644 --- a/lib/pages/provisional_schedule_page/provisional_schedule_widget.dart +++ b/lib/pages/provisional_schedule_page/provisional_schedule_widget.dart @@ -58,7 +58,7 @@ class _ProvisionalScheduleState extends State { ), title: Text( FFLocalizations.of(context).getVariableText( - enText: 'Provisional Schedule', + enText: 'Schedule Providers', ptText: 'Agendar Prestadores', ), style: FlutterFlowTheme.of(context).headlineMedium.override( diff --git a/lib/pages/reception_page/reception_page_widget.dart b/lib/pages/reception_page/reception_page_widget.dart index 82fe4d3f..97b6aeb9 100644 --- a/lib/pages/reception_page/reception_page_widget.dart +++ b/lib/pages/reception_page/reception_page_widget.dart @@ -1,11 +1,9 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:hub/app_state.dart'; import 'package:hub/components/atomic_components/shared_components_atoms/atom_image_svg_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/flutter_flow/flutter_flow_widgets.dart'; -import 'package:hub/flutter_flow/internationalization.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; import 'package:hub/pages/reception_page/reception_page_model.dart'; import 'package:provider/provider.dart'; @@ -120,8 +118,8 @@ class _ReceptionPageWidgetState extends State { .titleSmall .override( fontFamily: 'Nunito Sans', - color: FlutterFlowTheme.of(context) - .primaryBackground, + color: + FlutterFlowTheme.of(context).info, fontSize: 14.0, letterSpacing: 0.0, fontWeight: FontWeight.w500, 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 7b50d328..7da52036 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 @@ -3,8 +3,11 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; import 'package:flutter_spinkit/flutter_spinkit.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:google_fonts/google_fonts.dart'; +import 'package:hub/actions/actions.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/templates_components/details_component/details_component_widget.dart'; import 'package:hub/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart'; import 'package:hub/flutter_flow/custom_functions.dart'; @@ -1606,166 +1609,155 @@ Widget scheduleVisit(BuildContext context, ), onPressed: _model.isValid() ? () async { - await showDialog( - context: context, - builder: (context) { - return GestureDetector( - onTap: () => _model.unfocusNode.canRequestFocus - ? FocusScope.of(context) - .requestFocus(_model.unfocusNode) - : FocusScope.of(context).unfocus(), - child: Dialog( - alignment: Alignment.topCenter, - child: SizedBox( - // width: MediaQuery.of(context).size.width, - // height: MediaQuery.of(context).size.height * 0.7, - // child: VisitDetailsModalTemplateComponentWidget( - // visitStartDateStr: _model.textController1.text, - // visitEndDateStr: _model.textController2.text, - // visitReasonStr: _model.dropDownValue1, - // visitLevelStr: _model.dropDownValue2, - // visitTempStr: - // _model.switchValue == true ? 'Sim' : 'Não', - // visitObsStr: _model.textController3.text, - // visitorStrList: _model.visitorStrList, - // visitorJsonList: _model.visitorJsonList, - // updateToggleIdx: () async {}, - // repeatVisitSchedule: () async {}, - // ), - child: DetailsComponentWidget( - buttons: [ - FFButtonWidget( - text: FFLocalizations.of(context) - .getVariableText( - enText: 'Done', - ptText: 'Confirmar', - ), - icon: const Icon(Icons.done), - onPressed: () async { - showAlertDialog( - context, - FFLocalizations.of(context) - .getVariableText( - ptText: 'Ativar Visita', - enText: 'Activate Visit', - ), - FFLocalizations.of(context) - .getVariableText( - ptText: - 'Você tem certeza que deseja ativar essa visita?', - enText: - 'Are you sure you want to activate this visit?', - ), () async { - await PhpGroup.postScheduleVisitCall - .call( - devUUID: AppState().devUUID, - userUUID: AppState().userUUID, - atividade: 'putVisita', - devDesc: _model.textController3.text, - idVisitante: _model.visitorStrList, - dtInicio: _model.convertDateFormat( - _model.textController1.text ?? ''), - dtFim: _model.convertDateFormat( - _model.textController2.text ?? ''), - unica: _model.switchValue == true - ? 'Sim' - : 'Não', - idMotivo: extractIdToStr( - _model.dropDownValue1!), - idNAC: extractIdToStr( - _model.dropDownValue2!), - obs: _model.textController3.text, - cliID: AppState().cliUUID, - ) - .catchError((e) async { - await DialogUtil.errorDefault(context); - }).then((value) async { - if (PhpGroup.postScheduleVisitCall - .error( - (value.jsonBody ?? ''), - ) == - false) { - Navigator.pop(context); - Navigator.pop(context); - showSnackbar( - context, - FFLocalizations.of(context) - .getVariableText( - enText: - 'Success in scheduling visit', - ptText: - 'Succeso ao agendar a visita', - ), - false, - ); - } else { - await DialogUtil.errorDefault( - context); - Navigator.pop(context); - Navigator.pop(context); - } - }); + Future scheduleVisit() async { + await PhpGroup.postScheduleVisitCall + .call( + devUUID: AppState().devUUID, + userUUID: AppState().userUUID, + atividade: 'putVisita', + devDesc: _model.textController3.text, + idVisitante: _model.visitorStrList, + dtInicio: _model + .convertDateFormat(_model.textController1.text ?? ''), + dtFim: _model + .convertDateFormat(_model.textController2.text ?? ''), + unica: _model.switchValue == true ? 'Sim' : 'Não', + idMotivo: extractIdToStr(_model.dropDownValue1!), + idNAC: extractIdToStr(_model.dropDownValue2!), + obs: _model.textController3.text, + cliID: AppState().cliUUID, + ) + .catchError((e) async { + await DialogUtil.errorDefault(context); + }).then((value) async { + if (PhpGroup.postScheduleVisitCall.error( + (value.jsonBody ?? ''), + ) == + false) { + Navigator.pop(context); - safeSetState(() {}); - }); - }, - options: FFButtonOptions( - width: 130, - height: 40, - color: FlutterFlowTheme.of(context) - .primaryBackground, - elevation: 0, - textStyle: TextStyle( - color: FlutterFlowTheme.of(context) - .primaryText, + //MILESTONE + _model.dropDownValue1 = null; + _model.dropDownValue2 = null; + _model.dropDownValueController1 = + FormFieldController(''); + _model.dropDownValueController2 = + FormFieldController(''); + _model.visitorStrList = ''; + _model.visitorJsonList = []; + + ToastUtil.showToast( + message: FFLocalizations.of(context) + .getVariableText( + ptText: 'Visitante já adicionado!', + enText: 'Visitor already added!'), + gravity: ToastGravity.TOP, + backgroundColor: Colors.green); + + await showShare(value.jsonBody); + } else { + await DialogUtil.errorDefault(context); + Navigator.pop(context); + } + }); + + safeSetState(() {}); + } + + if (_model.visitorJsonList.length > 1) { + final title = FFLocalizations.of(context).getVariableText( + ptText: 'Cadastrar Múltiplos Visitantes', + enText: 'Register Multiple Visitors', + ); + final content = FFLocalizations.of(context).getVariableText( + ptText: + 'Você deseja agendar uma visita para ${_model.visitorJsonList.length} visitantes?', + enText: + 'Do you want to schedule a visit for ${_model.visitorJsonList.length} visitors?', + ); + + showAlertDialog(context, title, content, scheduleVisit); + } else { + await showDialog( + context: context, + builder: (context) { + return GestureDetector( + onTap: () => _model.unfocusNode.canRequestFocus + ? FocusScope.of(context) + .requestFocus(_model.unfocusNode) + : FocusScope.of(context).unfocus(), + child: Dialog( + alignment: Alignment.topCenter, + child: SizedBox( + child: DetailsComponentWidget( + buttons: [ + FFButtonWidget( + text: FFLocalizations.of(context) + .getVariableText( + enText: 'Done', + ptText: 'Confirmar', ), - borderSide: BorderSide( + icon: const Icon(Icons.done), + onPressed: scheduleVisit, + options: FFButtonOptions( + width: 130, + height: 40, color: FlutterFlowTheme.of(context) .primaryBackground, - width: 1, + elevation: 0, + textStyle: TextStyle( + color: FlutterFlowTheme.of(context) + .primaryText, + ), + borderSide: BorderSide( + color: FlutterFlowTheme.of(context) + .primaryBackground, + width: 1, + ), + // borderRadius: 12, ), - // borderRadius: 12, ), - ), - ], - imagePath: - 'https://freaccess.com.br/freaccess/getImage.php?cliID=${AppState().cliUUID}&atividade=getFoto&Documento=${_model.visitorJsonList[0]['VTE_DOCUMENTO'] ?? ''}&tipo=E', - labelsHashMap: { - 'Nome': _model.visitorJsonList[0]['VTE_NOME'], - 'Start': _model.textController1.text, - 'End': _model.textController2.text ?? '', - 'Reason': (RegExp(r'MOT_DESCRICAO:\s*([^,]+)') - .firstMatch( - _model.dropDownValue1.toString()) - ?.group(1) - .toString()) ?? - '', - 'Level': (RegExp(r'NAC_DESCRICAO:\s*([^,]+)') - .firstMatch( - _model.dropDownValue2.toString()) - ?.group(1) - .toString()) ?? - '', - 'Single Visit': - _model.switchValue == true ? 'Sim' : 'Não', - if (_model.textController3.text.isNotEmpty) - 'Observation': _model.textController3.text, - }, - statusHashMap: [ - Map.from({ - FFLocalizations.of(context).getVariableText( - ptText: 'Inativo', - enText: 'Inactive', - ): FlutterFlowTheme.of(context).warning, - }), - ], - onTapCardItemAction: () async {}, + ], + imagePath: + 'https://freaccess.com.br/freaccess/getImage.php?cliID=${AppState().cliUUID}&atividade=getFoto&Documento=${_model.visitorJsonList[0]['VTE_DOCUMENTO'] ?? ''}&tipo=E', + labelsHashMap: { + 'Nome': _model.visitorJsonList[0]['VTE_NOME'], + 'Start': _model.textController1.text, + 'End': _model.textController2.text ?? '', + 'Reason': (RegExp(r'MOT_DESCRICAO:\s*([^,]+)') + .firstMatch( + _model.dropDownValue1.toString()) + ?.group(1) + .toString()) ?? + '', + 'Level': (RegExp(r'NAC_DESCRICAO:\s*([^,]+)') + .firstMatch( + _model.dropDownValue2.toString()) + ?.group(1) + .toString()) ?? + '', + 'Single Visit': _model.switchValue == true + ? 'Sim' + : 'Não', + if (_model.textController3.text.isNotEmpty) + 'Observation': _model.textController3.text, + }, + statusHashMap: [ + Map.from({ + FFLocalizations.of(context).getVariableText( + ptText: 'Inativo', + enText: 'Inactive', + ): FlutterFlowTheme.of(context).warning, + }), + ], + onTapCardItemAction: () async {}, + ), ), ), - ), - ); - }, - ).then((value) => safeSetState(() {})); + ); + }, + ).then((value) => safeSetState(() {})); + } } : null, options: FFButtonOptions( diff --git a/lib/shared/widgets/drawer_widget/drawer_widget.dart b/lib/shared/widgets/drawer_widget/drawer_widget.dart index 839e5c65..3a0127c3 100644 --- a/lib/shared/widgets/drawer_widget/drawer_widget.dart +++ b/lib/shared/widgets/drawer_widget/drawer_widget.dart @@ -87,7 +87,6 @@ class CustomDrawer extends StatelessWidget { fontWeight: FontWeight.normal, ), ), - SizedBox(height: 5), Text( AppState().email, style: FlutterFlowTheme.of(context).bodySmall.override( diff --git a/pubspec.lock b/pubspec.lock index 49fbc8b6..60aaa29c 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -817,18 +817,18 @@ packages: dependency: transitive description: name: leak_tracker - sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" + sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" url: "https://pub.dev" source: hosted - version: "10.0.4" + version: "10.0.5" leak_tracker_flutter_testing: dependency: transitive description: name: leak_tracker_flutter_testing - sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" + sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" url: "https://pub.dev" source: hosted - version: "3.0.3" + version: "3.0.5" leak_tracker_testing: dependency: transitive description: @@ -905,10 +905,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec url: "https://pub.dev" source: hosted - version: "0.8.0" + version: "0.11.1" + material_symbols_icons: + dependency: "direct main" + description: + name: material_symbols_icons + sha256: b72bf7566d024d51627dce81b1b98539830a0e3ffbb5784989aa3e97c8493160 + url: "https://pub.dev" + source: hosted + version: "4.2784.0" maybe_just_nothing: dependency: transitive description: @@ -921,10 +929,10 @@ packages: dependency: transitive description: name: meta - sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 url: "https://pub.dev" source: hosted - version: "1.12.0" + version: "1.15.0" mime: dependency: transitive description: @@ -1342,10 +1350,10 @@ packages: dependency: transitive description: name: test_api - sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" + sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" url: "https://pub.dev" source: hosted - version: "0.7.0" + version: "0.7.2" timeago: dependency: "direct main" description: @@ -1510,10 +1518,10 @@ packages: dependency: transitive description: name: vm_service - sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc url: "https://pub.dev" source: hosted - version: "14.2.1" + version: "14.2.4" web: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 1f3c6a80..f14f3fd8 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -86,6 +86,7 @@ dependencies: video_player_avfoundation: 2.6.1 video_player_platform_interface: 6.2.2 video_player_web: 2.3.1 + material_symbols_icons: ^4.2784.0 fluttertoast: ^8.2.8 cupertino_icons: ^1.0.0 @@ -132,18 +133,18 @@ flutter: - assets/lottie_animations/ - assets/rive_animations/ - assets/pdfs/ - fonts: - - family: "SF Pro" - fonts: - - asset: assets/fonts/SFPRODISPLAYREGULAR.OTF - - asset: assets/fonts/SFPRODISPLAYMEDIUM.OTF - weight: 500 - - asset: assets/fonts/SFPRODISPLAYBOLD.OTF - weight: 700 +fonts: + - family: "SF Pro" + fonts: + - asset: assets/fonts/SFPRODISPLAYREGULAR.OTF + - asset: assets/fonts/SFPRODISPLAYMEDIUM.OTF + weight: 500 + - asset: assets/fonts/SFPRODISPLAYBOLD.OTF + weight: 700 - - family: Icons - fonts: - - asset: assets/fonts/icons.ttf - - family: Menu - fonts: - - asset: assets/fonts/menu.ttf + - family: Icons + fonts: + - asset: assets/fonts/icons.ttf + - family: Menu + fonts: + - asset: assets/fonts/menu.ttf