This commit is contained in:
jantunesmesias 2024-08-12 13:59:10 -03:00
parent 13b3c8f8ca
commit 092d122c3b
5 changed files with 143 additions and 76 deletions

View File

@ -1,3 +1,5 @@
import 'dart:developer';
import 'package:hub/components/molecular_components/visitor_not_found_component/visitor_not_found_component_model.dart';
import 'package:hub/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart';
import 'package:hub/flutter_flow/flutter_flow_icon_button.dart';
@ -9,8 +11,9 @@ import 'package:hub/flutter_flow/flutter_flow_util.dart';
import 'package:hub/flutter_flow/flutter_flow_widgets.dart';
class VisitorNotFoundComponentWidget extends StatefulWidget {
const VisitorNotFoundComponentWidget({super.key});
const VisitorNotFoundComponentWidget({this.doc, Key? key}) : super(key: key);
final String? doc;
@override
State<VisitorNotFoundComponentWidget> createState() =>
_VisitorNotFoundComponentWidgetState();
@ -42,7 +45,7 @@ class _VisitorNotFoundComponentWidgetState
@override
Widget build(BuildContext context) {
return Container(
width: MediaQuery.of(context).size.height * 0.5,
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height * 0.4,
decoration: BoxDecoration(
color: FlutterFlowTheme.of(context).primaryBackground,
@ -54,7 +57,6 @@ class _VisitorNotFoundComponentWidgetState
),
),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.start,
children: [
Align(
@ -113,12 +115,12 @@ class _VisitorNotFoundComponentWidgetState
),
),
),
Expanded(
Padding(
padding: const EdgeInsets.symmetric(vertical: 10),
child: Align(
alignment: const AlignmentDirectional(0.0, 1.0),
child: FFButtonWidget(
onPressed: () async {
Navigator.pop(context);
await showModalBottomSheet(
isScrollControlled: true,
backgroundColor: Colors.transparent,
@ -130,19 +132,20 @@ class _VisitorNotFoundComponentWidgetState
return Padding(
padding: MediaQuery.viewInsetsOf(context),
child: SizedBox(
width: double.infinity,
height: MediaQuery.of(context).size.height * 0.9,
child: const RegisiterVistorTemplateComponentWidget(
source: 'VisitorNotFoundComponent',
)),
width: double.infinity,
height: MediaQuery.of(context).size.height * 0.9,
child: RegisiterVistorTemplateComponentWidget(
source: 'VisitorNotFoundComponent',
doc: _model.widget?.doc,
),
),
);
},
).then((value) => safeSetState(() {}));
).then((value) => Navigator.pop(context, value));
},
text: FFLocalizations.of(context)
.getVariableText(enText: 'Add', ptText: 'Adicionar'),
options: FFButtonOptions(
width: double.infinity,
height: 30.0,
padding: const EdgeInsetsDirectional.fromSTEB(
24.0, 0.0, 24.0, 0.0),
@ -165,8 +168,8 @@ class _VisitorNotFoundComponentWidgetState
borderRadius: const BorderRadius.only(
bottomLeft: Radius.circular(25.0),
bottomRight: Radius.circular(25.0),
topLeft: Radius.circular(15.0),
topRight: Radius.circular(15.0),
topLeft: Radius.circular(25.0),
topRight: Radius.circular(25.0),
),
),
),

View File

@ -23,9 +23,10 @@ export 'regisiter_vistor_template_component_model.dart';
class RegisiterVistorTemplateComponentWidget extends StatefulWidget {
final String source;
final String? doc;
const RegisiterVistorTemplateComponentWidget(
{super.key, required this.source});
{super.key, required this.source, this.doc});
@override
State<RegisiterVistorTemplateComponentWidget> createState() =>
@ -53,6 +54,7 @@ class _RegisiterVistorTemplateComponentWidgetState
_model.textController1 ??= TextEditingController();
_model.textFieldFocusNode1 ??= FocusNode();
log('doc: ${widget.doc}');
_model.textController2 ??= TextEditingController();
_model.textFieldFocusNode2 ??= FocusNode();
_model.textController2?.addListener(_onTextChanged);
@ -62,6 +64,10 @@ class _RegisiterVistorTemplateComponentWidgetState
_model.textController4 ??= TextEditingController();
_model.textFieldFocusNode4 ??= FocusNode();
WidgetsBinding.instance?.addPostFrameCallback((timeStamp) {
_model.textController2.text = widget.doc ?? '';
});
}
@override
@ -882,7 +888,7 @@ class _RegisiterVistorTemplateComponentWidgetState
);
if (widget.source ==
'VisitorNotFoundComponent') {
Navigator.pop(context);
Navigator.pop(context, true);
}
});
} else {

View File

@ -1,3 +1,7 @@
import 'dart:developer';
import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:flutter/services.dart';
import 'package:hub/backend/api_requests/api_calls.dart';
import 'package:hub/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart';
import 'package:hub/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
@ -11,6 +15,7 @@ import 'package:hub/flutter_flow/internationalization.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:hub/shared/utils/dialog_util.dart';
import 'package:provider/provider.dart';
class VisitorSearchModalTemplateComponentWidget extends StatefulWidget {
@ -84,50 +89,7 @@ class _VisitorSearchModalTemplateComponentWidgetState
controller: _model.textController,
focusNode: _model.textFieldFocusNode,
onFieldSubmitted: (_) async {
setState(() {
_model.textController?.text = _model.textController.text;
_model.textController?.selection = TextSelection.collapsed(
offset: _model.textController!.text.length);
});
_model.getVisitorByDoc =
await PhpGroup.getVisitorByDocCall.call(
devUUID: FFAppState().devUUID,
userUUID: FFAppState().userUUID,
cliID: FFAppState().cliUUID,
atividade: 'getVisitante',
documento: _model.textController.text,
);
if (PhpGroup.getVisitorByDocCall.vistanteId(
(_model.getVisitorByDoc?.jsonBody ?? ''),
) !=
'0') {
_model.addToVisitors(PhpGroup.getVisitorByDocCall.visitante(
(_model.getVisitorByDoc?.jsonBody ?? ''),
));
setState(() {});
_model.addToDocs(_model.textController.text);
setState(() {});
} else {
await showAdaptiveDialog(
useSafeArea: true,
context: context,
builder: (context) {
return Dialog(
child: Padding(
padding: MediaQuery.viewInsetsOf(context),
child: Container(
color: Colors.transparent,
// width: MediaQuery.of(context).size.height * 0.1,
// height:
// MediaQuery.of(context).size.height * 0.4,
child: const VisitorNotFoundComponentWidget()),
),
);
},
).then((value) => safeSetState(() {}));
}
await addVisitor(context);
setState(() {});
},
autofocus: false,
@ -146,9 +108,6 @@ class _VisitorSearchModalTemplateComponentWidgetState
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
hintText: FFLocalizations.of(context).getText(
'8i1qszba' /* test */,
),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(
color: FlutterFlowTheme.of(context).accent1,
@ -212,6 +171,9 @@ class _VisitorSearchModalTemplateComponentWidgetState
),
keyboardType: TextInputType.number,
validator: _model.textControllerValidator.asValidator(context),
inputFormatters: [
FilteringTextInputFormatter.allow(RegExp('[0-9]')),
],
),
),
if (_model.visitors.isNotEmpty && _model.visitors.length > 0)
@ -427,19 +389,24 @@ class _VisitorSearchModalTemplateComponentWidgetState
mainAxisSize: MainAxisSize.max,
children: [
FFButtonWidget(
onPressed: () async {
await widget.getVisitors?.call(
_model.visitors,
);
await widget.getDocs?.call(
_model.docs,
);
Navigator.pop(context);
},
text: FFLocalizations.of(context).getVariableText(
enText: 'Add',
ptText: 'Adicionar',
),
onPressed: MediaQuery.of(context).viewInsets.bottom > 0
? () async {
await addVisitor(context);
setState(() {});
}
: () async {
await sendVisitors(context);
},
text: MediaQuery.of(context).viewInsets.bottom > 0
? FFLocalizations.of(context).getVariableText(
enText: 'Add',
ptText: 'Adicionar',
)
: FFLocalizations.of(context).getVariableText(
enText: 'Submit',
ptText: 'Enviar',
),
options: FFButtonOptions(
width: MediaQuery.of(context).size.width * 0.3,
height: MediaQuery.of(context).size.width * 0.1,
@ -479,4 +446,70 @@ class _VisitorSearchModalTemplateComponentWidgetState
),
);
}
Future<void> sendVisitors(BuildContext context) async {
await widget.getVisitors?.call(
_model.visitors,
);
await widget.getDocs?.call(
_model.docs,
);
Navigator.pop(context);
}
Future<void> addVisitor(BuildContext context) async {
setState(() {
_model.textController?.text = _model.textController.text;
_model.textController?.selection =
TextSelection.collapsed(offset: _model.textController!.text.length);
});
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.none) {
DialogUtil.error(context, 'Sem conexão com a internet');
return;
}
_model.getVisitorByDoc = await PhpGroup.getVisitorByDocCall.call(
devUUID: FFAppState().devUUID,
userUUID: FFAppState().userUUID,
cliID: FFAppState().cliUUID,
atividade: 'getVisitante',
documento: _model.textController.text,
);
if (PhpGroup.getVisitorByDocCall.vistanteId(
(_model.getVisitorByDoc?.jsonBody ?? ''),
) !=
'0') {
_model.addToVisitors(PhpGroup.getVisitorByDocCall.visitante(
(_model.getVisitorByDoc?.jsonBody ?? ''),
));
setState(() {});
_model.addToDocs(_model.textController.text);
setState(() {});
} else {
await showAdaptiveDialog(
useSafeArea: true,
context: context,
builder: (context) {
return Dialog(
child: Padding(
padding: MediaQuery.viewInsetsOf(context),
child: Container(
color: Colors.transparent,
child: VisitorNotFoundComponentWidget(
doc: _model.textController.text,
)),
),
);
},
).then((value) => safeSetState(() {
log('value: $value');
if (value != null) {
addVisitor(context);
}
}));
}
}
}

View File

@ -137,6 +137,22 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.18.0"
connectivity_plus:
dependency: "direct main"
description:
name: connectivity_plus
sha256: "2056db5241f96cdc0126bd94459fc4cdc13876753768fc7a31c425e50a7177d0"
url: "https://pub.dev"
source: hosted
version: "6.0.5"
connectivity_plus_platform_interface:
dependency: transitive
description:
name: connectivity_plus_platform_interface
sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204"
url: "https://pub.dev"
source: hosted
version: "2.0.1"
crop_your_image:
dependency: "direct main"
description:
@ -941,6 +957,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.0.0"
nm:
dependency: transitive
description:
name: nm
sha256: "2c9aae4127bdc8993206464fcc063611e0e36e72018696cd9631023a31b24254"
url: "https://pub.dev"
source: hosted
version: "0.5.0"
octo_image:
dependency: transitive
description:

View File

@ -48,6 +48,7 @@ dependencies:
flutter_cache_manager: 3.3.2
flutter_plugin_android_lifecycle: 2.0.20
share_plus: ^9.0.0
connectivity_plus: ^6.0.5
flutter_secure_storage: 9.2.2
flutter_secure_storage_linux: 1.2.1
flutter_secure_storage_macos: 3.1.2