import 'package:flutter/material.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_widgets.dart'; import 'package:hub/flutter_flow/internationalization.dart'; import 'package:rxdart/rxdart.dart'; import 'package:share_plus/share_plus.dart'; bool? getStatus(dynamic data) { return data == 'A' ? true : data == 'F' || data == 'B' || data == 'C' || data == 'I' ? false : null; } Widget buildDetails( dynamic visitaWrapItem, BuildContext context, Future Function(BuildContext, String, String, String, String)? changeStatusAction) { return VisitRequestTemplateComponentWidget( vteName: 'Lorem Ipsus', vteReason: 'Lorem Ipsus', vawDate: 'Lorem Ipsus', vawStatus: 'Lorem Ipsus', vteMsg: 'Lorem Ipsus', vteUUID: 'Lorem Ipsus', cliUUID: FFAppState().cliUUID, msgUUID: 'Lorem Ipsus', vawDestino: 'Lorem Ipsus', vawUUID: 'Lorem Ipsus', vawName: 'Lorem Ipsus', vawRef: 'Lorem Ipsus', changeStatusAction: changeStatusAction, buttons: [ if (getStatus(visitaWrapItem['VAW_STATUS']) == null) // ACCEPT ACTION FlutterFlowIconButton( icon: const Icon(Icons.done), onPressed: () async { showDialog( context: context, builder: (context) { return AlertDialog( title: Text( FFLocalizations.of(context).getVariableText( ptText: 'Aprovar Visita', enText: 'Approve Visit', ), ), content: Text( FFLocalizations.of(context).getVariableText( ptText: 'Você tem certeza que deseja aprovar essa visita?', enText: 'Are you sure you want to approve this visit?', ), ), backgroundColor: FlutterFlowTheme.of(context).primaryBackground, actions: [ FFButtonWidget( text: FFLocalizations.of(context).getVariableText( enText: 'No', ptText: 'Não', ), onPressed: () { Navigator.pop(context); }, options: FFButtonOptions( width: 100, height: 40, color: FlutterFlowTheme.of(context).primaryBackground, textStyle: TextStyle( color: FlutterFlowTheme.of(context).primaryText, ), borderSide: BorderSide( color: FlutterFlowTheme.of(context) .primaryBackground, width: 1, ), borderRadius: BorderRadius.circular(10)), ), FFButtonWidget( text: FFLocalizations.of(context).getVariableText( enText: 'Yes', ptText: 'Sim', ), onPressed: () async { await changeStatusAction?.call( context, 'L', visitaWrapItem['VAW_REF'] ?? '', 'Mensagem', visitaWrapItem['VTE_ID'] ?? '', ); }, options: FFButtonOptions( width: 100, height: 40, color: FlutterFlowTheme.of(context).primaryBackground, textStyle: TextStyle( color: FlutterFlowTheme.of(context).primaryText, ), borderSide: BorderSide( color: FlutterFlowTheme.of(context).primaryBackground, width: 1, ), borderRadius: BorderRadius.circular(10), ), ), ], ); }); }, ), if (getStatus(visitaWrapItem['VAW_STATUS']) == null) // REJECT ACTION FlutterFlowIconButton( icon: const Icon(Icons.close), onPressed: () async { showDialog( context: context, builder: (context) { return AlertDialog( title: Text( FFLocalizations.of(context).getVariableText( ptText: 'Bloquear Visita', enText: 'Block Visit', ), ), content: Text( FFLocalizations.of(context).getVariableText( ptText: 'Você tem certeza que deseja bloquear essa visita?', enText: 'Are you sure you want to block this visit?', ), ), backgroundColor: FlutterFlowTheme.of(context).primaryBackground, actions: [ FFButtonWidget( text: FFLocalizations.of(context).getVariableText( enText: 'No', ptText: 'Não', ), onPressed: () { Navigator.pop(context); }, options: FFButtonOptions( width: 100, height: 40, color: FlutterFlowTheme.of(context).primaryBackground, textStyle: TextStyle( color: FlutterFlowTheme.of(context).primaryText, ), borderSide: BorderSide( color: FlutterFlowTheme.of(context) .primaryBackground, width: 1, ), borderRadius: BorderRadius.circular(10)), ), FFButtonWidget( text: FFLocalizations.of(context).getVariableText( enText: 'Yes', ptText: 'Sim', ), onPressed: () async { // await changeStatusAction?.call( // context, // 'B', // visitaWrapItem['VAW_REF'] ?? '', // 'Mensagem', // visitaWrapItem['VTE_ID'] ?? '', // ); }, options: FFButtonOptions( width: 100, height: 40, color: FlutterFlowTheme.of(context).primaryBackground, textStyle: TextStyle( color: FlutterFlowTheme.of(context).primaryText, ), borderSide: BorderSide( color: FlutterFlowTheme.of(context).primaryBackground, width: 1, ), borderRadius: BorderRadius.circular(10), ), ), ], ); }); }, ), if (getStatus(visitaWrapItem['VAW_STATUS']) == false) // RECALL ACTION FlutterFlowIconButton( icon: const Icon(Icons.refresh), onPressed: () async { showDialog( context: context, builder: (context) { return AlertDialog( title: Text( FFLocalizations.of(context).getVariableText( ptText: 'Bloquear Visita', enText: 'Block Visit', ), ), content: Text( FFLocalizations.of(context).getVariableText( ptText: 'Você tem certeza que deseja bloquear essa visita?', enText: 'Are you sure you want to block this visit?', ), ), backgroundColor: FlutterFlowTheme.of(context).primaryBackground, actions: [ FFButtonWidget( text: FFLocalizations.of(context).getVariableText( enText: 'No', ptText: 'Não', ), onPressed: () { Navigator.pop(context); }, options: FFButtonOptions( width: 100, height: 40, color: FlutterFlowTheme.of(context).primaryBackground, textStyle: TextStyle( color: FlutterFlowTheme.of(context).primaryText, ), borderSide: BorderSide( color: FlutterFlowTheme.of(context) .primaryBackground, width: 1, ), borderRadius: BorderRadius.circular(10)), ), FFButtonWidget( text: FFLocalizations.of(context).getVariableText( enText: 'Yes', ptText: 'Sim', ), onPressed: () async { // await changeStatusAction?.call( // context, // 'B', // visitaWrapItem['VAW_REF'] ?? '', // 'Mensagem', // visitaWrapItem['VTE_ID'] ?? '', // ); }, options: FFButtonOptions( width: 100, height: 40, color: FlutterFlowTheme.of(context).primaryBackground, textStyle: TextStyle( color: FlutterFlowTheme.of(context).primaryText, ), borderSide: BorderSide( color: FlutterFlowTheme.of(context).primaryBackground, width: 1, ), borderRadius: BorderRadius.circular(10), ), ), ], ); }); }, ), if (getStatus(visitaWrapItem['VAW_STATUS']) == false) // SHARE ACTION FlutterFlowIconButton( icon: const Icon(Icons.share), onPressed: () async { Share.share(r''' Olá ${visitaWrapItem['VTE_NOME']} Você foi convidado para ${visitaWrapItem['NAC_DESCRICAO']} Validade do Convite: visitaWrapItem['VAW_DTINICIO'] visitaWrapItem['VAW_DTFIM'] URL do Convite: https://visita.freaccess.com.br/${visitaWrapItem['VAW_ID']}/${visitaWrapItem['CLI_ID']}/${visitaWrapItem['VAW_CHAVE']} '''); }, ), // if (getStatus(visitaWrapItem['VAW_STATUS']) == null) // SEND ACTION // FlutterFlowIconButton( // icon: const Icon(Icons.send), // onPressed: () async { // showDialog( // context: context, // builder: (context) { // return AlertDialog( // title: Text( // FFLocalizations.of(context).getVariableText( // ptText: 'Bloquear Visita', // enText: 'Block Visit', // ), // ), // content: Text( // FFLocalizations.of(context).getVariableText( // ptText: // 'Você tem certeza que deseja bloquear essa visita?', // enText: 'Are you sure you want to block this visit?', // ), // ), // backgroundColor: // FlutterFlowTheme.of(context).primaryBackground, // actions: [ // FFButtonWidget( // text: FFLocalizations.of(context).getVariableText( // enText: 'No', // ptText: 'Não', // ), // onPressed: () { // Navigator.pop(context); // }, // options: FFButtonOptions( // width: 100, // height: 40, // color: // FlutterFlowTheme.of(context).primaryBackground, // textStyle: TextStyle( // color: FlutterFlowTheme.of(context).primaryText, // ), // borderSide: BorderSide( // color: FlutterFlowTheme.of(context) // .primaryBackground, // width: 1, // ), // borderRadius: BorderRadius.circular(10)), // ), // FFButtonWidget( // text: FFLocalizations.of(context).getVariableText( // enText: 'Yes', // ptText: 'Sim', // ), // onPressed: () async { // // await changeStatusAction?.call( // // context, // // 'B', // // visitaWrapItem['VAW_REF'] ?? '', // // 'Mensagem', // // visitaWrapItem['VTE_ID'] ?? '', // // ); // }, // options: FFButtonOptions( // width: 100, // height: 40, // color: FlutterFlowTheme.of(context).primaryBackground, // textStyle: TextStyle( // color: FlutterFlowTheme.of(context).primaryText, // ), // borderSide: BorderSide( // color: // FlutterFlowTheme.of(context).primaryBackground, // width: 1, // ), // borderRadius: BorderRadius.circular(10), // ), // ), // ], // ); // }); // }, // ), ], labelsHashMap: Map.from({ 'Nome': visitaWrapItem['VTE_NOME'] ?? '', 'Inicio': visitaWrapItem['VAW_DTINICIO'] ?? '', 'Fim': visitaWrapItem['VAW_DTFIM'] ?? '', }), imageHashMap: Map.from({ 'key': visitaWrapItem['VTE_DOCUMENTO'] ?? '', 'value': 'E', }), statusHashMap: [ getStatus(visitaWrapItem['VAW_STATUS']) == true ? Map.from({ FFLocalizations.of(context).getVariableText( ptText: 'Ativo', enText: 'Active', ): FlutterFlowTheme.of(context).success, }) : getStatus(visitaWrapItem['VAW_STATUS']) == null ? Map.from({ FFLocalizations.of(context).getVariableText( ptText: 'Pendente', enText: 'Pending', ): FlutterFlowTheme.of(context).warning, }) : Map.from({ FFLocalizations.of(context).getVariableText( ptText: 'Cancelado', enText: 'Canceled', ): FlutterFlowTheme.of(context).error, }), ], // vteDocument: liberationHistoryItem['VTE_DOCUMENTO'], ); }