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 2e245c77..0f2d28ba 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 @@ -59,6 +59,26 @@ class _VisitorSearchModalTemplateComponentWidgetState super.dispose(); } + void _showErrorSnackbar(BuildContext context) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + FFLocalizations.of(context).getVariableText( + ptText: "Visitante já adicionado.", + enText: "Visitor already added."), + ), + duration: const Duration(seconds: 3), + backgroundColor: FlutterFlowTheme.of(context).error, + dismissDirection: DismissDirection.up, + behavior: SnackBarBehavior.floating, + margin: EdgeInsets.only( + bottom: MediaQuery.of(context).size.height - 150, + left: 10, + right: 10), + ), + ); + } + @override Widget build(BuildContext context) { context.watch(); @@ -68,7 +88,7 @@ class _VisitorSearchModalTemplateComponentWidgetState child: Container( width: MediaQuery.of(context).size.width, decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, + color: Colors.transparent, borderRadius: const BorderRadius.only( bottomLeft: Radius.circular(0.0), bottomRight: Radius.circular(0.0), @@ -90,7 +110,7 @@ class _VisitorSearchModalTemplateComponentWidgetState ), Padding( padding: - const EdgeInsetsDirectional.fromSTEB(16.0, 10.0, 16.0, 0.0), + const EdgeInsetsDirectional.fromSTEB(16.0, 15.0, 16.0, 0.0), child: TextFormField( controller: _model.textController, focusNode: _model.textFieldFocusNode, @@ -231,12 +251,14 @@ class _VisitorSearchModalTemplateComponentWidgetState builder: (context) { final visitor = _model.visitors.map((e) => e).toList(); + final doc = _model.docs.map((e) => e).toList(); return ListView.builder( padding: EdgeInsets.zero, scrollDirection: Axis.vertical, itemCount: visitor.length, itemBuilder: (context, visitorIndex) { final visitorItem = visitor[visitorIndex]; + final docItem = doc[visitorIndex]; return Padding( padding: const EdgeInsetsDirectional.fromSTEB( 0.0, 0.0, 0.0, 1.0), @@ -245,38 +267,6 @@ class _VisitorSearchModalTemplateComponentWidgetState focusColor: Colors.transparent, hoverColor: Colors.transparent, highlightColor: Colors.transparent, - onTap: () async { - // await showModalBottomSheet( - // isScrollControlled: true, - // enableDrag: true, - // isDismissible: true, - // context: context, - // builder: (context) { - // return Padding( - // padding: - // MediaQuery.viewInsetsOf(context), - // child: SizedBox( - // height: 610.0, - // child: - // VisitorDetailsModalTemplateComponentWidget( - // visitorImageURL: - // "https://freaccess.com.br/freaccess/getImage.php?devUUID=${FFAppState().devUUID}&userUUID=${FFAppState().userUUID}&cliID=${FFAppState().cliUUID}&atividade=getFoto&Documento=${getJsonField( - // visitorItem, - // r'''$.VTE_DOCUMENTO''', - // ).toString()}&tipo=E", - // visitorEmail: '', - // visitorName: getJsonField( - // visitorItem, - // r'''$.VTE_NOME''', - // )?.toString(), - // visitorPhone: '', - // visitorType: '', - // ), - // ), - // ); - // }, - // ).then((value) => safeSetState(() {})); - }, child: Container( width: 100.0, decoration: BoxDecoration( @@ -364,6 +354,7 @@ class _VisitorSearchModalTemplateComponentWidgetState onPressed: () async { _model.removeFromVisitors( visitorItem); + _model.removeFromDocs(docItem); safeSetState(() {}); }, ), @@ -487,12 +478,18 @@ class _VisitorSearchModalTemplateComponentWidgetState PhpGroup.getVisitorByDocCall .vistanteId((_model.getVisitorByDoc?.jsonBody ?? '')) != null) { - _model.addToVisitors(PhpGroup.getVisitorByDocCall.visitante( - (_model.getVisitorByDoc?.jsonBody ?? ''), - )); - safeSetState(() {}); - _model.addToDocs(_model.textController.text); - safeSetState(() {}); + String newDoc = _model.textController.text; + bool existDoc = _model.docs.contains(newDoc); + if (existDoc == false) { + _model.addToVisitors(PhpGroup.getVisitorByDocCall.visitante( + (_model.getVisitorByDoc?.jsonBody ?? ''), + )); + safeSetState(() {}); + _model.addToDocs(_model.textController.text); + safeSetState(() {}); + } else if (existDoc == true) { + _showErrorSnackbar(context); + } } else { await showAdaptiveDialog( useSafeArea: true,