Arrumado o bug de adicionar o mesmo visitante, no mesmo modal
This commit is contained in:
parent
7e002981b0
commit
981c718e41
|
@ -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) {
|
||||
_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,
|
||||
|
|
Loading…
Reference in New Issue