Arrumado o bug de adicionar o mesmo visitante, no mesmo modal

This commit is contained in:
Lucas 2024-08-19 08:39:31 -03:00
parent 7e002981b0
commit 981c718e41
1 changed files with 37 additions and 40 deletions

View File

@ -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<FFAppState>();
@ -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) {
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,