Merge branch 'flutterflow' into feature/pushNotification
This commit is contained in:
commit
691612a723
|
@ -44,8 +44,8 @@
|
||||||
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
|
||||||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||||
6436409927A31CD100820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
6436409C27A31CD100820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
6436409627A31CD200820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
6436409227A31CD300820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
@ -225,8 +225,8 @@
|
||||||
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
|
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
6436409927A31CD100820AF7 /* pt */,
|
6436409C27A31CD100820AF7 /* pt */,
|
||||||
6436409627A31CD200820AF7 /* en */,
|
6436409227A31CD300820AF7 /* en */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
|
|
@ -287,15 +287,7 @@ Future forgotPasswdAction(
|
||||||
(forgotPasswd.jsonBody ?? ''),
|
(forgotPasswd.jsonBody ?? ''),
|
||||||
) ==
|
) ==
|
||||||
false) {
|
false) {
|
||||||
context.pushNamed(
|
context.pushNamed('null');
|
||||||
'LoginPage',
|
|
||||||
queryParameters: {
|
|
||||||
'device': serializeParam(
|
|
||||||
FFAppState().device,
|
|
||||||
ParamType.String,
|
|
||||||
),
|
|
||||||
}.withoutNulls,
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -692,8 +692,8 @@ class _SignInTemplateComponentWidgetState
|
||||||
0.0, 16.0),
|
0.0, 16.0),
|
||||||
child: FFButtonWidget(
|
child: FFButtonWidget(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
context.pushNamed(
|
context
|
||||||
'RegisterPage');
|
.pushNamed('null');
|
||||||
},
|
},
|
||||||
text: FFLocalizations.of(
|
text: FFLocalizations.of(
|
||||||
context)
|
context)
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
import '/flutter_flow/flutter_flow_util.dart';
|
||||||
|
import 'visit_request_template_component_widget.dart'
|
||||||
|
show VisitRequestTemplateComponentWidget;
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
class VisitRequestTemplateComponentModel
|
||||||
|
extends FlutterFlowModel<VisitRequestTemplateComponentWidget> {
|
||||||
|
/// State fields for stateful widgets in this component.
|
||||||
|
|
||||||
|
// State field(s) for TextField widget.
|
||||||
|
FocusNode? textFieldFocusNode1;
|
||||||
|
TextEditingController? textController1;
|
||||||
|
String? Function(BuildContext, String?)? textController1Validator;
|
||||||
|
// State field(s) for TextField widget.
|
||||||
|
FocusNode? textFieldFocusNode2;
|
||||||
|
TextEditingController? textController2;
|
||||||
|
String? Function(BuildContext, String?)? textController2Validator;
|
||||||
|
// State field(s) for TextField widget.
|
||||||
|
FocusNode? textFieldFocusNode3;
|
||||||
|
TextEditingController? textController3;
|
||||||
|
String? Function(BuildContext, String?)? textController3Validator;
|
||||||
|
// State field(s) for TextField widget.
|
||||||
|
FocusNode? textFieldFocusNode4;
|
||||||
|
TextEditingController? textController4;
|
||||||
|
String? Function(BuildContext, String?)? textController4Validator;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState(BuildContext context) {}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
textFieldFocusNode1?.dispose();
|
||||||
|
textController1?.dispose();
|
||||||
|
|
||||||
|
textFieldFocusNode2?.dispose();
|
||||||
|
textController2?.dispose();
|
||||||
|
|
||||||
|
textFieldFocusNode3?.dispose();
|
||||||
|
textController3?.dispose();
|
||||||
|
|
||||||
|
textFieldFocusNode4?.dispose();
|
||||||
|
textController4?.dispose();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,535 @@
|
||||||
|
import '/flutter_flow/flutter_flow_theme.dart';
|
||||||
|
import '/flutter_flow/flutter_flow_util.dart';
|
||||||
|
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||||
|
import 'package:cached_network_image/cached_network_image.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
|
import 'visit_request_template_component_model.dart';
|
||||||
|
export 'visit_request_template_component_model.dart';
|
||||||
|
|
||||||
|
class VisitRequestTemplateComponentWidget extends StatefulWidget {
|
||||||
|
const VisitRequestTemplateComponentWidget({
|
||||||
|
super.key,
|
||||||
|
required this.name,
|
||||||
|
required this.reason,
|
||||||
|
required this.message,
|
||||||
|
required this.image,
|
||||||
|
});
|
||||||
|
|
||||||
|
final String? name;
|
||||||
|
final String? reason;
|
||||||
|
final String? message;
|
||||||
|
final String? image;
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<VisitRequestTemplateComponentWidget> createState() =>
|
||||||
|
_VisitRequestTemplateComponentWidgetState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _VisitRequestTemplateComponentWidgetState
|
||||||
|
extends State<VisitRequestTemplateComponentWidget> {
|
||||||
|
late VisitRequestTemplateComponentModel _model;
|
||||||
|
|
||||||
|
@override
|
||||||
|
void setState(VoidCallback callback) {
|
||||||
|
super.setState(callback);
|
||||||
|
_model.onUpdate();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
_model = createModel(context, () => VisitRequestTemplateComponentModel());
|
||||||
|
|
||||||
|
_model.textController1 ??= TextEditingController(text: widget.name);
|
||||||
|
_model.textFieldFocusNode1 ??= FocusNode();
|
||||||
|
|
||||||
|
_model.textController2 ??= TextEditingController(text: widget.reason);
|
||||||
|
_model.textFieldFocusNode2 ??= FocusNode();
|
||||||
|
|
||||||
|
_model.textController3 ??= TextEditingController(text: widget.message);
|
||||||
|
_model.textFieldFocusNode3 ??= FocusNode();
|
||||||
|
|
||||||
|
_model.textController4 ??= TextEditingController();
|
||||||
|
_model.textFieldFocusNode4 ??= FocusNode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
_model.maybeDispose();
|
||||||
|
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Align(
|
||||||
|
alignment: const AlignmentDirectional(0.0, 0.0),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsetsDirectional.fromSTEB(10.0, 0.0, 10.0, 0.0),
|
||||||
|
child: Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
color: FlutterFlowTheme.of(context).primaryBackground,
|
||||||
|
borderRadius: const BorderRadius.only(
|
||||||
|
bottomLeft: Radius.circular(25.0),
|
||||||
|
bottomRight: Radius.circular(25.0),
|
||||||
|
topLeft: Radius.circular(25.0),
|
||||||
|
topRight: Radius.circular(25.0),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
child: SingleChildScrollView(
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
Row(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
width: 200.0,
|
||||||
|
height: 200.0,
|
||||||
|
clipBehavior: Clip.antiAlias,
|
||||||
|
decoration: const BoxDecoration(
|
||||||
|
shape: BoxShape.circle,
|
||||||
|
),
|
||||||
|
child: CachedNetworkImage(
|
||||||
|
fadeInDuration: const Duration(milliseconds: 500),
|
||||||
|
fadeOutDuration: const Duration(milliseconds: 500),
|
||||||
|
imageUrl: widget.image!,
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Expanded(
|
||||||
|
child: Column(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsetsDirectional.fromSTEB(
|
||||||
|
24.0, 0.0, 24.0, 0.0),
|
||||||
|
child: TextFormField(
|
||||||
|
controller: _model.textController1,
|
||||||
|
focusNode: _model.textFieldFocusNode1,
|
||||||
|
autofocus: false,
|
||||||
|
textInputAction: TextInputAction.next,
|
||||||
|
readOnly: true,
|
||||||
|
obscureText: false,
|
||||||
|
decoration: InputDecoration(
|
||||||
|
labelText: FFLocalizations.of(context).getText(
|
||||||
|
'ivfw4j04' /* Nome */,
|
||||||
|
),
|
||||||
|
labelStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
|
fontFamily: FlutterFlowTheme.of(context)
|
||||||
|
.labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context)
|
||||||
|
.primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap()
|
||||||
|
.containsKey(
|
||||||
|
FlutterFlowTheme.of(context)
|
||||||
|
.labelMediumFamily),
|
||||||
|
),
|
||||||
|
hintStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
|
fontFamily: FlutterFlowTheme.of(context)
|
||||||
|
.labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context)
|
||||||
|
.primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap()
|
||||||
|
.containsKey(
|
||||||
|
FlutterFlowTheme.of(context)
|
||||||
|
.labelMediumFamily),
|
||||||
|
),
|
||||||
|
enabledBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).accent1,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
focusedBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).primary,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
errorBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
focusedErrorBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
suffixIcon: Icon(
|
||||||
|
Icons.person,
|
||||||
|
color: FlutterFlowTheme.of(context).accent1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
style: FlutterFlowTheme.of(context)
|
||||||
|
.bodyMedium
|
||||||
|
.override(
|
||||||
|
fontFamily: FlutterFlowTheme.of(context)
|
||||||
|
.bodyMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context)
|
||||||
|
.primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap()
|
||||||
|
.containsKey(
|
||||||
|
FlutterFlowTheme.of(context)
|
||||||
|
.bodyMediumFamily),
|
||||||
|
),
|
||||||
|
maxLines: null,
|
||||||
|
keyboardType: TextInputType.name,
|
||||||
|
validator: _model.textController1Validator
|
||||||
|
.asValidator(context),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsetsDirectional.fromSTEB(
|
||||||
|
24.0, 0.0, 24.0, 0.0),
|
||||||
|
child: TextFormField(
|
||||||
|
controller: _model.textController2,
|
||||||
|
focusNode: _model.textFieldFocusNode2,
|
||||||
|
autofocus: false,
|
||||||
|
textInputAction: TextInputAction.next,
|
||||||
|
readOnly: true,
|
||||||
|
obscureText: false,
|
||||||
|
decoration: InputDecoration(
|
||||||
|
labelText: FFLocalizations.of(context).getText(
|
||||||
|
'ndzkqehm' /* Motivo */,
|
||||||
|
),
|
||||||
|
labelStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
|
fontFamily: FlutterFlowTheme.of(context)
|
||||||
|
.labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context)
|
||||||
|
.primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap()
|
||||||
|
.containsKey(
|
||||||
|
FlutterFlowTheme.of(context)
|
||||||
|
.labelMediumFamily),
|
||||||
|
),
|
||||||
|
hintStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
|
fontFamily: FlutterFlowTheme.of(context)
|
||||||
|
.labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context)
|
||||||
|
.primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap()
|
||||||
|
.containsKey(
|
||||||
|
FlutterFlowTheme.of(context)
|
||||||
|
.labelMediumFamily),
|
||||||
|
),
|
||||||
|
enabledBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).accent1,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
focusedBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).primary,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
errorBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
focusedErrorBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
suffixIcon: Icon(
|
||||||
|
Icons.history_edu,
|
||||||
|
color: FlutterFlowTheme.of(context).accent1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
style: FlutterFlowTheme.of(context)
|
||||||
|
.bodyMedium
|
||||||
|
.override(
|
||||||
|
fontFamily: FlutterFlowTheme.of(context)
|
||||||
|
.bodyMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context)
|
||||||
|
.primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap()
|
||||||
|
.containsKey(
|
||||||
|
FlutterFlowTheme.of(context)
|
||||||
|
.bodyMediumFamily),
|
||||||
|
),
|
||||||
|
maxLines: null,
|
||||||
|
keyboardType: TextInputType.name,
|
||||||
|
validator: _model.textController2Validator
|
||||||
|
.asValidator(context),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
].divide(const SizedBox(height: 20.0)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
.addToStart(const SizedBox(width: 10.0))
|
||||||
|
.addToEnd(const SizedBox(width: 10.0)),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
|
||||||
|
child: TextFormField(
|
||||||
|
controller: _model.textController3,
|
||||||
|
focusNode: _model.textFieldFocusNode3,
|
||||||
|
autofocus: false,
|
||||||
|
textCapitalization: TextCapitalization.none,
|
||||||
|
textInputAction: TextInputAction.next,
|
||||||
|
readOnly: true,
|
||||||
|
obscureText: false,
|
||||||
|
decoration: InputDecoration(
|
||||||
|
labelText: FFLocalizations.of(context).getText(
|
||||||
|
'kt87omsz' /* Mensagem */,
|
||||||
|
),
|
||||||
|
labelStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
|
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||||
|
),
|
||||||
|
hintStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
|
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||||
|
),
|
||||||
|
enabledBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).accent1,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
focusedBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).primary,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
errorBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
focusedErrorBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
suffixIcon: Icon(
|
||||||
|
Icons.message,
|
||||||
|
color: FlutterFlowTheme.of(context).accent1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
|
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||||
|
),
|
||||||
|
validator:
|
||||||
|
_model.textController3Validator.asValidator(context),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
|
||||||
|
child: TextFormField(
|
||||||
|
controller: _model.textController4,
|
||||||
|
focusNode: _model.textFieldFocusNode4,
|
||||||
|
autofocus: false,
|
||||||
|
textInputAction: TextInputAction.next,
|
||||||
|
obscureText: false,
|
||||||
|
decoration: InputDecoration(
|
||||||
|
labelText: FFLocalizations.of(context).getText(
|
||||||
|
'ssz899es' /* Pergunta */,
|
||||||
|
),
|
||||||
|
labelStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
|
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||||
|
),
|
||||||
|
hintStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
|
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||||
|
),
|
||||||
|
enabledBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).accent1,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
focusedBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).primary,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
errorBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
focusedErrorBorder: OutlineInputBorder(
|
||||||
|
borderSide: BorderSide(
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
width: 0.5,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(10.0),
|
||||||
|
),
|
||||||
|
suffixIcon: Icon(
|
||||||
|
Icons.question_answer,
|
||||||
|
color: FlutterFlowTheme.of(context).accent1,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
|
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||||
|
),
|
||||||
|
validator:
|
||||||
|
_model.textController4Validator.asValidator(context),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
Row(
|
||||||
|
mainAxisSize: MainAxisSize.max,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
FFButtonWidget(
|
||||||
|
onPressed: () {
|
||||||
|
print('Button pressed ...');
|
||||||
|
},
|
||||||
|
text: FFLocalizations.of(context).getText(
|
||||||
|
'tg5rb52p' /* Aprovar */,
|
||||||
|
),
|
||||||
|
options: FFButtonOptions(
|
||||||
|
height: 40.0,
|
||||||
|
padding: const EdgeInsetsDirectional.fromSTEB(
|
||||||
|
24.0, 0.0, 24.0, 0.0),
|
||||||
|
iconPadding:
|
||||||
|
const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
||||||
|
color: FlutterFlowTheme.of(context).success,
|
||||||
|
textStyle: FlutterFlowTheme.of(context)
|
||||||
|
.titleSmall
|
||||||
|
.override(
|
||||||
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).titleSmallFamily,
|
||||||
|
color: Colors.white,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
|
FlutterFlowTheme.of(context)
|
||||||
|
.titleSmallFamily),
|
||||||
|
),
|
||||||
|
elevation: 3.0,
|
||||||
|
borderSide: const BorderSide(
|
||||||
|
color: Colors.transparent,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(8.0),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
FFButtonWidget(
|
||||||
|
onPressed: () {
|
||||||
|
print('Button pressed ...');
|
||||||
|
},
|
||||||
|
text: FFLocalizations.of(context).getText(
|
||||||
|
'zz1jjh5j' /* Reprovar */,
|
||||||
|
),
|
||||||
|
options: FFButtonOptions(
|
||||||
|
width: 100.0,
|
||||||
|
height: 40.0,
|
||||||
|
padding: const EdgeInsetsDirectional.fromSTEB(
|
||||||
|
24.0, 0.0, 24.0, 0.0),
|
||||||
|
iconPadding:
|
||||||
|
const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
||||||
|
color: FlutterFlowTheme.of(context).error,
|
||||||
|
textStyle: FlutterFlowTheme.of(context)
|
||||||
|
.titleSmall
|
||||||
|
.override(
|
||||||
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).titleSmallFamily,
|
||||||
|
color: Colors.white,
|
||||||
|
letterSpacing: 0.0,
|
||||||
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
|
FlutterFlowTheme.of(context)
|
||||||
|
.titleSmallFamily),
|
||||||
|
),
|
||||||
|
elevation: 3.0,
|
||||||
|
borderSide: const BorderSide(
|
||||||
|
color: Colors.transparent,
|
||||||
|
width: 1.0,
|
||||||
|
),
|
||||||
|
borderRadius: BorderRadius.circular(8.0),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
].divide(const SizedBox(width: 20.0)),
|
||||||
|
),
|
||||||
|
]
|
||||||
|
.divide(const SizedBox(height: 20.0))
|
||||||
|
.addToStart(const SizedBox(height: 20.0))
|
||||||
|
.addToEnd(const SizedBox(height: 20.0)),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -331,15 +331,7 @@ class _WelcomeTemplateComponentWidgetState
|
||||||
0.0, 0.0, 0.0, 16.0),
|
0.0, 0.0, 0.0, 16.0),
|
||||||
child: FFButtonWidget(
|
child: FFButtonWidget(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
context.pushNamed(
|
context.pushNamed('null');
|
||||||
'LoginPage',
|
|
||||||
queryParameters: {
|
|
||||||
'device': serializeParam(
|
|
||||||
'',
|
|
||||||
ParamType.String,
|
|
||||||
),
|
|
||||||
}.withoutNulls,
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
text: FFLocalizations.of(context)
|
text: FFLocalizations.of(context)
|
||||||
.getText(
|
.getText(
|
||||||
|
@ -391,7 +383,7 @@ class _WelcomeTemplateComponentWidgetState
|
||||||
0.0, 0.0, 0.0, 16.0),
|
0.0, 0.0, 0.0, 16.0),
|
||||||
child: FFButtonWidget(
|
child: FFButtonWidget(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
context.pushNamed('RegisterPage');
|
context.pushNamed('null');
|
||||||
},
|
},
|
||||||
text: FFLocalizations.of(context)
|
text: FFLocalizations.of(context)
|
||||||
.getText(
|
.getText(
|
||||||
|
|
|
@ -105,82 +105,6 @@ Locale createLocale(String language) => language.contains('_')
|
||||||
: Locale(language);
|
: Locale(language);
|
||||||
|
|
||||||
final kTranslationsMap = <Map<String, Map<String, String>>>[
|
final kTranslationsMap = <Map<String, Map<String, String>>>[
|
||||||
// LoginPage
|
|
||||||
{
|
|
||||||
'0113wf5c': {
|
|
||||||
'pt': 'VAMOS LA! ENTRE COM A SUA CONTA',
|
|
||||||
'en': 'LET\'S GO! SIGN IN WITH YOUR ACCOUNT',
|
|
||||||
},
|
|
||||||
'f2go5a71': {
|
|
||||||
'pt': 'Email',
|
|
||||||
'en': 'Email',
|
|
||||||
},
|
|
||||||
'paon3y0v': {
|
|
||||||
'pt': 'Senha',
|
|
||||||
'en': 'Password',
|
|
||||||
},
|
|
||||||
'wmbzwstw': {
|
|
||||||
'pt': 'Entrar',
|
|
||||||
'en': 'Sign-In',
|
|
||||||
},
|
|
||||||
'j8567afe': {
|
|
||||||
'pt': 'Cadastrar',
|
|
||||||
'en': 'Sign-Up',
|
|
||||||
},
|
|
||||||
'y3wd9q18': {
|
|
||||||
'pt': 'Entrar',
|
|
||||||
'en': 'Sign-In',
|
|
||||||
},
|
|
||||||
'j6ufb6sq': {
|
|
||||||
'pt': 'Cadastrar',
|
|
||||||
'en': 'Sign-Up',
|
|
||||||
},
|
|
||||||
'h85112qs': {
|
|
||||||
'pt': 'Você esqueceu a sua senha?',
|
|
||||||
'en': 'Have you forgotten your password?',
|
|
||||||
},
|
|
||||||
'di48hdaj': {
|
|
||||||
'pt': ' Recupere aqui',
|
|
||||||
'en': 'recover here',
|
|
||||||
},
|
|
||||||
'gx2fp6zq': {
|
|
||||||
'pt': 'Termo de Uso',
|
|
||||||
'en': 'Terms of use',
|
|
||||||
},
|
|
||||||
'ef5lm94r': {
|
|
||||||
'pt': 'Home',
|
|
||||||
'en': '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
// ForgotPasswordPage
|
|
||||||
{
|
|
||||||
'gfvplb0h': {
|
|
||||||
'pt': 'ESQUECEU SUA SENHA?',
|
|
||||||
'en': 'FORGOT YOUR PASSWORD?',
|
|
||||||
},
|
|
||||||
'azssgpdi': {
|
|
||||||
'pt':
|
|
||||||
'Não se preucupe nós vamos te ajudar, digite o email cadastrado no aplicativo e clique em enviar.',
|
|
||||||
'en':
|
|
||||||
'Don\'t worry, we will help you, enter the email registered in the application and click send.',
|
|
||||||
},
|
|
||||||
'0o139961': {
|
|
||||||
'pt': 'Email',
|
|
||||||
'en': 'Email',
|
|
||||||
},
|
|
||||||
'aanw1fp3': {
|
|
||||||
'pt': 'digite o seu email.....',
|
|
||||||
'en': 'enter your email.....',
|
|
||||||
},
|
|
||||||
'e7hdgc4q': {
|
|
||||||
'pt': 'Enviar',
|
|
||||||
'en': 'To send',
|
|
||||||
},
|
|
||||||
'3xnxor0t': {
|
|
||||||
'pt': 'Home',
|
|
||||||
'en': '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
// homePage
|
// homePage
|
||||||
{
|
{
|
||||||
'lyiat6s2': {
|
'lyiat6s2': {
|
||||||
|
@ -232,80 +156,6 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
|
||||||
'en': '',
|
'en': '',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// RegisterPage
|
|
||||||
{
|
|
||||||
'2d8uulm3': {
|
|
||||||
'pt': 'INSIRA SEU EMAIL E SENHA, VAMOS TE CADASTRAR!',
|
|
||||||
'en': 'ENTER YOUR EMAIL AND PASSWORD, LET\'S REGISTER YOU!',
|
|
||||||
},
|
|
||||||
'8kjhi406': {
|
|
||||||
'pt': 'Nome',
|
|
||||||
'en': 'Name',
|
|
||||||
},
|
|
||||||
'ro4zkkxp': {
|
|
||||||
'pt': 'Email',
|
|
||||||
'en': 'Email',
|
|
||||||
},
|
|
||||||
'j5yny8ee': {
|
|
||||||
'pt': '',
|
|
||||||
'en': '',
|
|
||||||
},
|
|
||||||
'lzgobioa': {
|
|
||||||
'pt': 'Senha',
|
|
||||||
'en': 'Password',
|
|
||||||
},
|
|
||||||
'c7sfyeh8': {
|
|
||||||
'pt': 'Cadastrar-se',
|
|
||||||
'en': 'Sign-Up',
|
|
||||||
},
|
|
||||||
'jglpa1tr': {
|
|
||||||
'pt': 'Você já tem uma conta? ',
|
|
||||||
'en': 'You already have an account?',
|
|
||||||
},
|
|
||||||
'hfcm0td9': {
|
|
||||||
'pt': 'Clique aqui',
|
|
||||||
'en': 'Click here',
|
|
||||||
},
|
|
||||||
'c3kno4t9': {
|
|
||||||
'pt': 'Termo de Uso',
|
|
||||||
'en': '',
|
|
||||||
},
|
|
||||||
'tzy6n0n4': {
|
|
||||||
'pt': 'Home',
|
|
||||||
'en': '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
// WelcomePage
|
|
||||||
{
|
|
||||||
'xflxvs9y': {
|
|
||||||
'pt': 'UMA EXPERIÊCIA COMPLETA',
|
|
||||||
'en': 'A COMPLETE EXPERIENCE',
|
|
||||||
},
|
|
||||||
'5a86wzd1': {
|
|
||||||
'pt': 'COM CONFORTO ONDE VOCÊ ESTIVER.',
|
|
||||||
'en': 'WITH COMFORT WHEREVER YOU ARE.',
|
|
||||||
},
|
|
||||||
'65nuva6j': {
|
|
||||||
'pt': 'Entrar',
|
|
||||||
'en': 'Sign-In',
|
|
||||||
},
|
|
||||||
'9u6oaw01': {
|
|
||||||
'pt': 'Cadastrar',
|
|
||||||
'en': 'Sign-Up',
|
|
||||||
},
|
|
||||||
'd1qem43w': {
|
|
||||||
'pt': 'Entrar',
|
|
||||||
'en': 'Sign-In',
|
|
||||||
},
|
|
||||||
'bhowzv2u': {
|
|
||||||
'pt': 'Cadastrar',
|
|
||||||
'en': 'Sign-Up',
|
|
||||||
},
|
|
||||||
'qls72pio': {
|
|
||||||
'pt': 'Home',
|
|
||||||
'en': '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
// registerVisitorPage
|
// registerVisitorPage
|
||||||
{
|
{
|
||||||
'q8cct5lk': {
|
'q8cct5lk': {
|
||||||
|
@ -553,13 +403,6 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
|
||||||
'en': '',
|
'en': '',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// test
|
|
||||||
{
|
|
||||||
'ah1ah1j6': {
|
|
||||||
'pt': 'Home',
|
|
||||||
'en': '',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
// peopleOnThePropertyPage
|
// peopleOnThePropertyPage
|
||||||
{
|
{
|
||||||
'nsu13r5d': {
|
'nsu13r5d': {
|
||||||
|
@ -1000,15 +843,39 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
|
||||||
'en': 'To send',
|
'en': 'To send',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// selectHeaderComponent
|
// visitRequestTemplateComponent
|
||||||
{
|
{
|
||||||
'1gr8ztd5': {
|
'ivfw4j04': {
|
||||||
'pt': 'Criar Agendamento',
|
'pt': 'Nome',
|
||||||
'en': 'Create Schedule',
|
'en': 'Name',
|
||||||
},
|
},
|
||||||
'xjahsbjw': {
|
'ndzkqehm': {
|
||||||
'pt': 'Histórico de Visitas',
|
'pt': 'Motivo',
|
||||||
'en': 'Visit History',
|
'en': 'Reason',
|
||||||
|
},
|
||||||
|
'kt87omsz': {
|
||||||
|
'pt': 'Mensagem',
|
||||||
|
'en': 'Message',
|
||||||
|
},
|
||||||
|
'cx6sviir': {
|
||||||
|
'pt': '',
|
||||||
|
'en': '',
|
||||||
|
},
|
||||||
|
'ssz899es': {
|
||||||
|
'pt': 'Pergunta',
|
||||||
|
'en': 'Answer',
|
||||||
|
},
|
||||||
|
'nw059ym1': {
|
||||||
|
'pt': '',
|
||||||
|
'en': '',
|
||||||
|
},
|
||||||
|
'tg5rb52p': {
|
||||||
|
'pt': 'Aprovar',
|
||||||
|
'en': 'Allow',
|
||||||
|
},
|
||||||
|
'zz1jjh5j': {
|
||||||
|
'pt': 'Reprovar',
|
||||||
|
'en': 'Block',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
|
|
|
@ -42,7 +42,7 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) => GoRouter(
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: const OnBoardingPageWidget(),
|
: const PeopleOnThePropertyPageWidget(),
|
||||||
routes: [
|
routes: [
|
||||||
// FFRoute(
|
// FFRoute(
|
||||||
// name: '_initialize',
|
// name: '_initialize',
|
||||||
|
@ -89,16 +89,6 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) => GoRouter(
|
||||||
path: '/homePage',
|
path: '/homePage',
|
||||||
builder: (context, params) => const HomePageWidget(),
|
builder: (context, params) => const HomePageWidget(),
|
||||||
),
|
),
|
||||||
FFRoute(
|
|
||||||
name: 'RegisterPage',
|
|
||||||
path: '/registerPage',
|
|
||||||
builder: (context, params) => const RegisterPageWidget(),
|
|
||||||
),
|
|
||||||
FFRoute(
|
|
||||||
name: 'WelcomePage',
|
|
||||||
path: '/welcomePage',
|
|
||||||
builder: (context, params) => const WelcomePageWidget(),
|
|
||||||
),
|
|
||||||
FFRoute(
|
FFRoute(
|
||||||
name: 'registerVisitorPage',
|
name: 'registerVisitorPage',
|
||||||
path: '/registerVisitorPage',
|
path: '/registerVisitorPage',
|
||||||
|
@ -159,11 +149,6 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) => GoRouter(
|
||||||
path: '/fastPassPage',
|
path: '/fastPassPage',
|
||||||
builder: (context, params) => /*const*/ FastPassPageWidget(),
|
builder: (context, params) => /*const*/ FastPassPageWidget(),
|
||||||
),
|
),
|
||||||
FFRoute(
|
|
||||||
name: 'test',
|
|
||||||
path: '/test',
|
|
||||||
builder: (context, params) => const TestWidget(),
|
|
||||||
),
|
|
||||||
FFRoute(
|
FFRoute(
|
||||||
name: 'peopleOnThePropertyPage',
|
name: 'peopleOnThePropertyPage',
|
||||||
path: '/peopleOnThePropertyPage',
|
path: '/peopleOnThePropertyPage',
|
||||||
|
|
|
@ -1,13 +1,5 @@
|
||||||
// Export pages
|
// Export pages
|
||||||
export '/legacy/on_boarding_legacy/login_page/login_page_widget.dart'
|
|
||||||
show LoginPageWidget;
|
|
||||||
export '/legacy/on_boarding_legacy/forgot_password_page/forgot_password_page_widget.dart'
|
|
||||||
show ForgotPasswordPageWidget;
|
|
||||||
export '/pages/home_page/home_page_widget.dart' show HomePageWidget;
|
export '/pages/home_page/home_page_widget.dart' show HomePageWidget;
|
||||||
export '/legacy/on_boarding_legacy/register_page/register_page_widget.dart'
|
|
||||||
show RegisterPageWidget;
|
|
||||||
export '/legacy/on_boarding_legacy/welcome_page/welcome_page_widget.dart'
|
|
||||||
show WelcomePageWidget;
|
|
||||||
export '/pages/register_visitor_page/register_visitor_page_widget.dart'
|
export '/pages/register_visitor_page/register_visitor_page_widget.dart'
|
||||||
show RegisterVisitorPageWidget;
|
show RegisterVisitorPageWidget;
|
||||||
export '/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart'
|
export '/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart'
|
||||||
|
@ -18,6 +10,5 @@ export '/pages/on_boarding_page/on_boarding_page_widget.dart'
|
||||||
show OnBoardingPageWidget;
|
show OnBoardingPageWidget;
|
||||||
export '/pages/fast_pass_page/fast_pass_page_widget.dart'
|
export '/pages/fast_pass_page/fast_pass_page_widget.dart'
|
||||||
show FastPassPageWidget;
|
show FastPassPageWidget;
|
||||||
export '/legacy/test/test_widget.dart' show TestWidget;
|
|
||||||
export '/pages/people_on_the_property_page/people_on_the_property_page_widget.dart'
|
export '/pages/people_on_the_property_page/people_on_the_property_page_widget.dart'
|
||||||
show PeopleOnThePropertyPageWidget;
|
show PeopleOnThePropertyPageWidget;
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'image_cropper_widget.dart' show ImageCropperWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class ImageCropperModel extends FlutterFlowModel<ImageCropperWidget> {
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {}
|
|
||||||
}
|
|
|
@ -1,64 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import '/custom_code/widgets/index.dart' as custom_widgets;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'image_cropper_model.dart';
|
|
||||||
export 'image_cropper_model.dart';
|
|
||||||
|
|
||||||
class ImageCropperWidget extends StatefulWidget {
|
|
||||||
const ImageCropperWidget({
|
|
||||||
super.key,
|
|
||||||
required this.uploadImageFile,
|
|
||||||
});
|
|
||||||
|
|
||||||
final FFUploadedFile? uploadImageFile;
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<ImageCropperWidget> createState() => _ImageCropperWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ImageCropperWidgetState extends State<ImageCropperWidget> {
|
|
||||||
late ImageCropperModel _model;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void setState(VoidCallback callback) {
|
|
||||||
super.setState(callback);
|
|
||||||
_model.onUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => ImageCropperModel());
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.maybeDispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Container(
|
|
||||||
width: 500.0,
|
|
||||||
height: 500.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
|
||||||
),
|
|
||||||
child: SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
height: double.infinity,
|
|
||||||
child: custom_widgets.ImageCropper(
|
|
||||||
width: double.infinity,
|
|
||||||
height: double.infinity,
|
|
||||||
imageFile: widget.uploadImageFile,
|
|
||||||
callBackAction: (url) async {
|
|
||||||
Navigator.pop(context, url);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'legacy_local_component_widget.dart' show LegacyLocalComponentWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class LegacyLocalComponentModel
|
|
||||||
extends FlutterFlowModel<LegacyLocalComponentWidget> {
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {}
|
|
||||||
}
|
|
|
@ -1,167 +0,0 @@
|
||||||
import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import '/flutter_flow/custom_functions.dart' as functions;
|
|
||||||
import '/flutter_flow/random_data_util.dart' as random_data;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'legacy_local_component_model.dart';
|
|
||||||
export 'legacy_local_component_model.dart';
|
|
||||||
|
|
||||||
class LegacyLocalComponentWidget extends StatefulWidget {
|
|
||||||
const LegacyLocalComponentWidget({super.key});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<LegacyLocalComponentWidget> createState() =>
|
|
||||||
_LegacyLocalComponentWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _LegacyLocalComponentWidgetState
|
|
||||||
extends State<LegacyLocalComponentWidget> {
|
|
||||||
late LegacyLocalComponentModel _model;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void setState(VoidCallback callback) {
|
|
||||||
super.setState(callback);
|
|
||||||
_model.onUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => LegacyLocalComponentModel());
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.maybeDispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
context.watch<FFAppState>();
|
|
||||||
|
|
||||||
return Visibility(
|
|
||||||
visible: random_data.randomInteger(0, 10) != null,
|
|
||||||
child: Container(
|
|
||||||
height: 284.0,
|
|
||||||
decoration: const BoxDecoration(),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Stack(
|
|
||||||
children: [
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Material(
|
|
||||||
color: Colors.transparent,
|
|
||||||
elevation: 0.0,
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 119.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: const Color(0xFF1AAB5F),
|
|
||||||
border: Border.all(
|
|
||||||
color: const Color(0xFF1AAB5F),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(24.0),
|
|
||||||
child: Container(
|
|
||||||
width: 200.0,
|
|
||||||
height: 200.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
shape: BoxShape.circle,
|
|
||||||
),
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(2.0),
|
|
||||||
child: InkWell(
|
|
||||||
splashColor: Colors.transparent,
|
|
||||||
focusColor: Colors.transparent,
|
|
||||||
hoverColor: Colors.transparent,
|
|
||||||
highlightColor: Colors.transparent,
|
|
||||||
onTap: () async {
|
|
||||||
showModalBottomSheet(
|
|
||||||
isScrollControlled: true,
|
|
||||||
backgroundColor: const Color(0x00FFFFFF),
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return Padding(
|
|
||||||
padding: MediaQuery.viewInsetsOf(context),
|
|
||||||
child: const SizedBox(
|
|
||||||
height: double.infinity,
|
|
||||||
child:
|
|
||||||
BottomArrowLinkedLocalsComponentWidget(),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
).then((value) => safeSetState(() {}));
|
|
||||||
},
|
|
||||||
child: ClipRRect(
|
|
||||||
borderRadius: BorderRadius.circular(200.0),
|
|
||||||
child: Image.network(
|
|
||||||
valueOrDefault<String>(
|
|
||||||
'https://freaccess.com.br/freaccess/Images/Clients/${FFAppState().cliUUID}.png',
|
|
||||||
'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/7ftdetkzc3s0/360_F_64676383_LdbmhiNM6Ypzb3FM4PPuFP9rHe7ri8Ju.jpg',
|
|
||||||
),
|
|
||||||
width: 300.0,
|
|
||||||
height: 200.0,
|
|
||||||
fit: BoxFit.cover,
|
|
||||||
alignment: const Alignment(0.0, 0.0),
|
|
||||||
errorBuilder: (context, error, stackTrace) =>
|
|
||||||
Image.asset(
|
|
||||||
'assets/images/error_image.svg',
|
|
||||||
width: 300.0,
|
|
||||||
height: 200.0,
|
|
||||||
fit: BoxFit.cover,
|
|
||||||
alignment: const Alignment(0.0, 0.0),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
valueOrDefault<String>(
|
|
||||||
functions.convertToUppercase(FFAppState().local),
|
|
||||||
'NOME DO LOCAL',
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(context).labelMedium.override(
|
|
||||||
fontFamily: 'Nunito',
|
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
|
||||||
fontSize: 20.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts.asMap().containsKey('Nunito'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
import '/backend/api_requests/api_calls.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'forgot_password_page_widget.dart' show ForgotPasswordPageWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class ForgotPasswordPageModel
|
|
||||||
extends FlutterFlowModel<ForgotPasswordPageWidget> {
|
|
||||||
/// Local state fields for this page.
|
|
||||||
|
|
||||||
String? email;
|
|
||||||
|
|
||||||
/// State fields for stateful widgets in this page.
|
|
||||||
|
|
||||||
// State field(s) for emailAddress widget.
|
|
||||||
FocusNode? emailAddressFocusNode;
|
|
||||||
TextEditingController? emailAddressTextController;
|
|
||||||
String? Function(BuildContext, String?)? emailAddressTextControllerValidator;
|
|
||||||
// Stores action output result for [Backend Call - API (forgotPassword)] action in Button-Login widget.
|
|
||||||
ApiCallResponse? req;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
emailAddressFocusNode?.dispose();
|
|
||||||
emailAddressTextController?.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,335 +0,0 @@
|
||||||
import '/backend/api_requests/api_calls.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_icon_button.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
|
||||||
import 'forgot_password_page_model.dart';
|
|
||||||
export 'forgot_password_page_model.dart';
|
|
||||||
|
|
||||||
class ForgotPasswordPageWidget extends StatefulWidget {
|
|
||||||
const ForgotPasswordPageWidget({super.key});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<ForgotPasswordPageWidget> createState() =>
|
|
||||||
_ForgotPasswordPageWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ForgotPasswordPageWidgetState extends State<ForgotPasswordPageWidget> {
|
|
||||||
late ForgotPasswordPageModel _model;
|
|
||||||
|
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => ForgotPasswordPageModel());
|
|
||||||
|
|
||||||
_model.emailAddressTextController ??= TextEditingController();
|
|
||||||
_model.emailAddressFocusNode ??= FocusNode();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.dispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
key: scaffoldKey,
|
|
||||||
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
appBar: AppBar(
|
|
||||||
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
automaticallyImplyLeading: false,
|
|
||||||
actions: const [],
|
|
||||||
flexibleSpace: FlexibleSpaceBar(
|
|
||||||
title: Row(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
if (isWeb == false)
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(-1.0, 1.0),
|
|
||||||
child: FlutterFlowIconButton(
|
|
||||||
borderColor: Colors.transparent,
|
|
||||||
borderRadius: 30.0,
|
|
||||||
borderWidth: 1.0,
|
|
||||||
buttonSize: 60.0,
|
|
||||||
icon: Icon(
|
|
||||||
Icons.arrow_back_rounded,
|
|
||||||
color: FlutterFlowTheme.of(context).customColor1,
|
|
||||||
size: 30.0,
|
|
||||||
),
|
|
||||||
onPressed: () async {
|
|
||||||
context.pop();
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
centerTitle: true,
|
|
||||||
expandedTitleScale: 1.0,
|
|
||||||
),
|
|
||||||
elevation: 0.0,
|
|
||||||
),
|
|
||||||
body: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, -1.0),
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
constraints: const BoxConstraints(
|
|
||||||
maxWidth: 570.0,
|
|
||||||
),
|
|
||||||
decoration: const BoxDecoration(),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: [
|
|
||||||
// This row exists for when the "app bar" is hidden on desktop, having a way back for the user can work well.
|
|
||||||
if (responsiveVisibility(
|
|
||||||
context: context,
|
|
||||||
phone: false,
|
|
||||||
tablet: false,
|
|
||||||
))
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 16.0, 8.0),
|
|
||||||
child: InkWell(
|
|
||||||
splashColor: Colors.transparent,
|
|
||||||
focusColor: Colors.transparent,
|
|
||||||
hoverColor: Colors.transparent,
|
|
||||||
highlightColor: Colors.transparent,
|
|
||||||
onTap: () async {
|
|
||||||
context.safePop();
|
|
||||||
},
|
|
||||||
child: Row(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
const Padding(
|
|
||||||
padding: EdgeInsetsDirectional.fromSTEB(
|
|
||||||
0.0, 12.0, 0.0, 12.0),
|
|
||||||
child: Icon(
|
|
||||||
Icons.arrow_back_rounded,
|
|
||||||
color: Color(0xFF15161E),
|
|
||||||
size: 24.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(
|
|
||||||
12.0, 0.0, 0.0, 0.0),
|
|
||||||
child: Text(
|
|
||||||
'',
|
|
||||||
style: FlutterFlowTheme.of(context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Plus Jakarta Sans',
|
|
||||||
color: const Color(0xFF15161E),
|
|
||||||
fontSize: 14.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0),
|
|
||||||
child: Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'gfvplb0h' /* ESQUECEU SUA SENHA? */,
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(context).headlineMedium.override(
|
|
||||||
fontFamily: 'Outfit',
|
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
|
||||||
fontSize: 24.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts.asMap().containsKey('Outfit'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(16.0, 4.0, 16.0, 4.0),
|
|
||||||
child: Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'azssgpdi' /* Não se preucupe nós vamos te a... */,
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(context).labelMedium.override(
|
|
||||||
fontFamily: 'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
|
||||||
fontSize: 14.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 0.0),
|
|
||||||
child: SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
child: TextFormField(
|
|
||||||
controller: _model.emailAddressTextController,
|
|
||||||
focusNode: _model.emailAddressFocusNode,
|
|
||||||
autofillHints: const [AutofillHints.email],
|
|
||||||
obscureText: false,
|
|
||||||
decoration: InputDecoration(
|
|
||||||
labelText: FFLocalizations.of(context).getText(
|
|
||||||
'0o139961' /* Email */,
|
|
||||||
),
|
|
||||||
labelStyle:
|
|
||||||
FlutterFlowTheme.of(context).labelMedium.override(
|
|
||||||
fontFamily: 'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(context).accent1,
|
|
||||||
fontSize: 14.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
hintText: FFLocalizations.of(context).getText(
|
|
||||||
'aanw1fp3' /* digite o seu email..... */,
|
|
||||||
),
|
|
||||||
hintStyle:
|
|
||||||
FlutterFlowTheme.of(context).labelMedium.override(
|
|
||||||
fontFamily: 'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
|
||||||
fontSize: 14.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
enabledBorder: OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme.of(context).accent1,
|
|
||||||
width: 2.0,
|
|
||||||
),
|
|
||||||
borderRadius: BorderRadius.circular(12.0),
|
|
||||||
),
|
|
||||||
focusedBorder: OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme.of(context).accent3,
|
|
||||||
width: 2.0,
|
|
||||||
),
|
|
||||||
borderRadius: BorderRadius.circular(12.0),
|
|
||||||
),
|
|
||||||
errorBorder: OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme.of(context).error,
|
|
||||||
width: 2.0,
|
|
||||||
),
|
|
||||||
borderRadius: BorderRadius.circular(12.0),
|
|
||||||
),
|
|
||||||
focusedErrorBorder: OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme.of(context).error,
|
|
||||||
width: 2.0,
|
|
||||||
),
|
|
||||||
borderRadius: BorderRadius.circular(12.0),
|
|
||||||
),
|
|
||||||
filled: true,
|
|
||||||
fillColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
contentPadding: const EdgeInsetsDirectional.fromSTEB(
|
|
||||||
24.0, 24.0, 20.0, 24.0),
|
|
||||||
suffixIcon: Icon(
|
|
||||||
Icons.email,
|
|
||||||
color: FlutterFlowTheme.of(context).accent1,
|
|
||||||
size: 22.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
|
||||||
fontFamily: 'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(context).secondaryText,
|
|
||||||
fontSize: 14.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
maxLines: null,
|
|
||||||
keyboardType: TextInputType.emailAddress,
|
|
||||||
cursorColor: const Color(0xFF6F61EF),
|
|
||||||
validator: _model.emailAddressTextControllerValidator
|
|
||||||
.asValidator(context),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 0.0),
|
|
||||||
child: FFButtonWidget(
|
|
||||||
onPressed: () async {
|
|
||||||
var shouldSetState = false;
|
|
||||||
_model.email = _model.emailAddressTextController.text;
|
|
||||||
setState(() {});
|
|
||||||
_model.req = await PhpGroup.forgotPasswordCall.call(
|
|
||||||
email: _model.email,
|
|
||||||
);
|
|
||||||
shouldSetState = true;
|
|
||||||
if (PhpGroup.forgotPasswordCall.error(
|
|
||||||
(_model.req?.jsonBody ?? ''),
|
|
||||||
) ==
|
|
||||||
false) {
|
|
||||||
context.pushNamed(
|
|
||||||
'LoginPage',
|
|
||||||
queryParameters: {
|
|
||||||
'device': serializeParam(
|
|
||||||
'',
|
|
||||||
ParamType.String,
|
|
||||||
),
|
|
||||||
}.withoutNulls,
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
if (shouldSetState) setState(() {});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (shouldSetState) setState(() {});
|
|
||||||
},
|
|
||||||
text: FFLocalizations.of(context).getText(
|
|
||||||
'e7hdgc4q' /* Enviar */,
|
|
||||||
),
|
|
||||||
options: FFButtonOptions(
|
|
||||||
width: 270.0,
|
|
||||||
height: 50.0,
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
|
||||||
color: const Color(0xFF1AAB5F),
|
|
||||||
textStyle:
|
|
||||||
FlutterFlowTheme.of(context).titleSmall.override(
|
|
||||||
fontFamily: 'Plus Jakarta Sans',
|
|
||||||
color: Colors.white,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color: Colors.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
showLoadingIndicator: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,127 +0,0 @@
|
||||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
|
||||||
|
|
||||||
import '/backend/api_requests/api_calls.dart';
|
|
||||||
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import '/custom_code/actions/index.dart' as actions;
|
|
||||||
import 'login_page_widget.dart' show LoginPageWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class LoginPageModel extends FlutterFlowModel<LoginPageWidget> {
|
|
||||||
/// State fields for stateful widgets in this page.
|
|
||||||
|
|
||||||
final unfocusNode = FocusNode();
|
|
||||||
// State field(s) for emailAddress widget.
|
|
||||||
FocusNode? emailAddressFocusNode;
|
|
||||||
TextEditingController? emailAddressTextController;
|
|
||||||
String? Function(BuildContext, String?)? emailAddressTextControllerValidator;
|
|
||||||
// State field(s) for password widget.
|
|
||||||
FocusNode? passwordFocusNode;
|
|
||||||
TextEditingController? passwordTextController;
|
|
||||||
late bool passwordVisibility;
|
|
||||||
String? Function(BuildContext, String?)? passwordTextControllerValidator;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {
|
|
||||||
passwordVisibility = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
unfocusNode.dispose();
|
|
||||||
emailAddressFocusNode?.dispose();
|
|
||||||
emailAddressTextController?.dispose();
|
|
||||||
|
|
||||||
passwordFocusNode?.dispose();
|
|
||||||
passwordTextController?.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Action blocks.
|
|
||||||
Future signInActionPage(
|
|
||||||
BuildContext context, {
|
|
||||||
required String? emailAdress,
|
|
||||||
required String? passwd,
|
|
||||||
}) async {
|
|
||||||
String? devUUID;
|
|
||||||
ApiCallResponse? loginCall;
|
|
||||||
|
|
||||||
await Future.wait([
|
|
||||||
Future(() async {
|
|
||||||
FFAppState().email = emailAdress!;
|
|
||||||
}),
|
|
||||||
Future(() async {
|
|
||||||
FFAppState().passwd = passwd!;
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
if ((FFAppState().email != '') && (FFAppState().passwd != '')) {
|
|
||||||
devUUID = await actions.getDevUUID();
|
|
||||||
FFAppState().devUUID = devUUID!;
|
|
||||||
loginCall = await PhpGroup.loginCall.call(
|
|
||||||
email: FFAppState().email,
|
|
||||||
password: FFAppState().passwd,
|
|
||||||
uuid: FFAppState().devUUID,
|
|
||||||
type: FFAppState().device,
|
|
||||||
description: '',
|
|
||||||
);
|
|
||||||
FFAppState().userUUID = FFAppState().userUUID;
|
|
||||||
if (PhpGroup.loginCall.error(
|
|
||||||
(loginCall.jsonBody ?? ''),
|
|
||||||
) ==
|
|
||||||
false) {
|
|
||||||
FFAppState().isLogged = true;
|
|
||||||
context.goNamed(
|
|
||||||
'homePage',
|
|
||||||
extra: <String, dynamic>{
|
|
||||||
kTransitionInfoKey: const TransitionInfo(
|
|
||||||
hasTransition: true,
|
|
||||||
transitionType: PageTransitionType.fade,
|
|
||||||
),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
// ApiCallResponse? updToken;
|
|
||||||
// updToken = await PhpGroup.updToken.call(
|
|
||||||
// devToken: await FirebaseMessaging.instance.getToken(),
|
|
||||||
// devUUID: FFAppState().devUUID,
|
|
||||||
// userUUID: FFAppState().userUUID,
|
|
||||||
// );
|
|
||||||
|
|
||||||
await showModalBottomSheet(
|
|
||||||
isScrollControlled: true,
|
|
||||||
backgroundColor: Colors.transparent,
|
|
||||||
enableDrag: false,
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return GestureDetector(
|
|
||||||
onTap: () => unfocusNode.canRequestFocus
|
|
||||||
? FocusScope.of(context).requestFocus(unfocusNode)
|
|
||||||
: FocusScope.of(context).unfocus(),
|
|
||||||
child: Padding(
|
|
||||||
padding: MediaQuery.viewInsetsOf(context),
|
|
||||||
child: ThrowExceptionWidget(
|
|
||||||
msg: PhpGroup.loginCall.msg(
|
|
||||||
(loginCall?.jsonBody ?? ''),
|
|
||||||
)!,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
FFAppState().deleteEmail();
|
|
||||||
FFAppState().email = '';
|
|
||||||
|
|
||||||
FFAppState().deletePasswd();
|
|
||||||
FFAppState().passwd = '';
|
|
||||||
|
|
||||||
FFAppState().update(() {});
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
FFAppState().deleteEmail();
|
|
||||||
FFAppState().email = '';
|
|
||||||
|
|
||||||
FFAppState().deletePasswd();
|
|
||||||
FFAppState().passwd = '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,971 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_animations.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
|
||||||
import '/actions/actions.dart' as action_blocks;
|
|
||||||
import 'package:flutter/gestures.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_animate/flutter_animate.dart';
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
|
||||||
import 'login_page_model.dart';
|
|
||||||
export 'login_page_model.dart';
|
|
||||||
|
|
||||||
class LoginPageWidget extends StatefulWidget {
|
|
||||||
const LoginPageWidget({
|
|
||||||
super.key,
|
|
||||||
required this.device,
|
|
||||||
});
|
|
||||||
|
|
||||||
final String? device;
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<LoginPageWidget> createState() => _LoginPageWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _LoginPageWidgetState extends State<LoginPageWidget>
|
|
||||||
with TickerProviderStateMixin {
|
|
||||||
late LoginPageModel _model;
|
|
||||||
|
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
||||||
|
|
||||||
final animationsMap = <String, AnimationInfo>{};
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => LoginPageModel());
|
|
||||||
|
|
||||||
_model.emailAddressTextController ??= TextEditingController();
|
|
||||||
_model.emailAddressFocusNode ??= FocusNode();
|
|
||||||
|
|
||||||
_model.passwordTextController ??= TextEditingController();
|
|
||||||
_model.passwordFocusNode ??= FocusNode();
|
|
||||||
|
|
||||||
animationsMap.addAll({
|
|
||||||
'containerOnPageLoadAnimation': AnimationInfo(
|
|
||||||
trigger: AnimationTrigger.onPageLoad,
|
|
||||||
effectsBuilder: () => [
|
|
||||||
VisibilityEffect(duration: 1.ms),
|
|
||||||
FadeEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: 0.0,
|
|
||||||
end: 1.0,
|
|
||||||
),
|
|
||||||
MoveEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(0.0, 140.0),
|
|
||||||
end: const Offset(0.0, 0.0),
|
|
||||||
),
|
|
||||||
ScaleEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(0.9, 0.9),
|
|
||||||
end: const Offset(1.0, 1.0),
|
|
||||||
),
|
|
||||||
TiltEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(-0.349, 0),
|
|
||||||
end: const Offset(0, 0),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.dispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return GestureDetector(
|
|
||||||
onTap: () => _model.unfocusNode.canRequestFocus
|
|
||||||
? FocusScope.of(context).requestFocus(_model.unfocusNode)
|
|
||||||
: FocusScope.of(context).unfocus(),
|
|
||||||
child: WillPopScope(
|
|
||||||
onWillPop: () async => false,
|
|
||||||
child: Scaffold(
|
|
||||||
key: scaffoldKey,
|
|
||||||
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
body: SafeArea(
|
|
||||||
top: true,
|
|
||||||
child: Row(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
flex: 6,
|
|
||||||
child: Container(
|
|
||||||
width: 100.0,
|
|
||||||
height: double.infinity,
|
|
||||||
decoration: const BoxDecoration(),
|
|
||||||
alignment: const AlignmentDirectional(0.0, -1.0),
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: SingleChildScrollView(
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(
|
|
||||||
0.0, 35.0, 0.0, 35.0),
|
|
||||||
child: Container(
|
|
||||||
width: 548.0,
|
|
||||||
height: 112.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.circular(16.0),
|
|
||||||
),
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(20.0),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Align(
|
|
||||||
alignment:
|
|
||||||
const AlignmentDirectional(0.0, 1.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(3.0),
|
|
||||||
child: Text(
|
|
||||||
FFLocalizations.of(context)
|
|
||||||
.getText(
|
|
||||||
'0113wf5c' /* VAMOS LA! ENTRE COM A SUA CONT... */,
|
|
||||||
),
|
|
||||||
textAlign: TextAlign.start,
|
|
||||||
style: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.displaySmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 24.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Container(
|
|
||||||
width: 291.0,
|
|
||||||
height: 167.0,
|
|
||||||
decoration: const BoxDecoration(),
|
|
||||||
child: ClipRRect(
|
|
||||||
borderRadius: BorderRadius.circular(8.0),
|
|
||||||
child: Image.network(
|
|
||||||
'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/sr43ucngg4a4/Vector.png',
|
|
||||||
width: 603.0,
|
|
||||||
height: 155.0,
|
|
||||||
fit: BoxFit.contain,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(
|
|
||||||
34.0, 0.0, 34.0, 0.0),
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
constraints: const BoxConstraints(
|
|
||||||
maxWidth: 570.0,
|
|
||||||
),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.primaryBackground,
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(12.0),
|
|
||||||
shape: BoxShape.rectangle,
|
|
||||||
),
|
|
||||||
child: Align(
|
|
||||||
alignment:
|
|
||||||
const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(32.0),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
crossAxisAlignment:
|
|
||||||
CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
child: TextFormField(
|
|
||||||
controller: _model
|
|
||||||
.emailAddressTextController,
|
|
||||||
focusNode: _model
|
|
||||||
.emailAddressFocusNode,
|
|
||||||
autofocus: false,
|
|
||||||
textCapitalization:
|
|
||||||
TextCapitalization.none,
|
|
||||||
textInputAction:
|
|
||||||
TextInputAction.next,
|
|
||||||
obscureText: false,
|
|
||||||
decoration: InputDecoration(
|
|
||||||
labelText:
|
|
||||||
FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'f2go5a71' /* Email */,
|
|
||||||
),
|
|
||||||
labelStyle:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight
|
|
||||||
.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
enabledBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.customColor1,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(12.0),
|
|
||||||
),
|
|
||||||
focusedBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.success,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(12.0),
|
|
||||||
),
|
|
||||||
errorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.error,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(12.0),
|
|
||||||
),
|
|
||||||
focusedErrorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.error,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(12.0),
|
|
||||||
),
|
|
||||||
suffixIcon: Icon(
|
|
||||||
Icons.email,
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.accent1,
|
|
||||||
size: 22.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
keyboardType: TextInputType
|
|
||||||
.emailAddress,
|
|
||||||
validator: _model
|
|
||||||
.emailAddressTextControllerValidator
|
|
||||||
.asValidator(context),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
child: TextFormField(
|
|
||||||
controller: _model
|
|
||||||
.passwordTextController,
|
|
||||||
focusNode: _model
|
|
||||||
.passwordFocusNode,
|
|
||||||
autofocus: false,
|
|
||||||
textInputAction:
|
|
||||||
TextInputAction.send,
|
|
||||||
obscureText: !_model
|
|
||||||
.passwordVisibility,
|
|
||||||
decoration: InputDecoration(
|
|
||||||
labelText:
|
|
||||||
FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'paon3y0v' /* Senha */,
|
|
||||||
),
|
|
||||||
labelStyle:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight
|
|
||||||
.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
enabledBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.customColor1,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(12.0),
|
|
||||||
),
|
|
||||||
focusedBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color:
|
|
||||||
Color(0xFF1AAB5F),
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(12.0),
|
|
||||||
),
|
|
||||||
errorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color:
|
|
||||||
Color(0xFFFF5963),
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(12.0),
|
|
||||||
),
|
|
||||||
focusedErrorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color:
|
|
||||||
Color(0xFFFF5963),
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(12.0),
|
|
||||||
),
|
|
||||||
filled: true,
|
|
||||||
fillColor:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryBackground,
|
|
||||||
suffixIcon: InkWell(
|
|
||||||
onTap: () => setState(
|
|
||||||
() => _model
|
|
||||||
.passwordVisibility =
|
|
||||||
!_model
|
|
||||||
.passwordVisibility,
|
|
||||||
),
|
|
||||||
focusNode: FocusNode(
|
|
||||||
skipTraversal:
|
|
||||||
true),
|
|
||||||
child: Icon(
|
|
||||||
_model.passwordVisibility
|
|
||||||
? Icons
|
|
||||||
.visibility_outlined
|
|
||||||
: Icons
|
|
||||||
.visibility_off_outlined,
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.accent1,
|
|
||||||
size: 24.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
validator: _model
|
|
||||||
.passwordTextControllerValidator
|
|
||||||
.asValidator(context),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Builder(
|
|
||||||
builder: (context) {
|
|
||||||
if (MediaQuery.sizeOf(context)
|
|
||||||
.width <
|
|
||||||
kBreakpointSmall
|
|
||||||
? true
|
|
||||||
: false) {
|
|
||||||
return Column(
|
|
||||||
mainAxisSize:
|
|
||||||
MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
16.0),
|
|
||||||
child: FFButtonWidget(
|
|
||||||
onPressed:
|
|
||||||
() async {
|
|
||||||
await action_blocks
|
|
||||||
.singInActionApp(
|
|
||||||
context,
|
|
||||||
emailAdress: _model
|
|
||||||
.emailAddressTextController
|
|
||||||
.text,
|
|
||||||
password: _model
|
|
||||||
.passwordTextController
|
|
||||||
.text,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
text: FFLocalizations
|
|
||||||
.of(context)
|
|
||||||
.getText(
|
|
||||||
'wmbzwstw' /* Entrar */,
|
|
||||||
),
|
|
||||||
options:
|
|
||||||
FFButtonOptions(
|
|
||||||
width: double
|
|
||||||
.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0),
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.primary,
|
|
||||||
textStyle:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.info,
|
|
||||||
fontSize:
|
|
||||||
16.0,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts.asMap().containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide:
|
|
||||||
const BorderSide(
|
|
||||||
color: Colors
|
|
||||||
.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator:
|
|
||||||
false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
16.0),
|
|
||||||
child: FFButtonWidget(
|
|
||||||
onPressed:
|
|
||||||
() async {
|
|
||||||
context.pushNamed(
|
|
||||||
'RegisterPage');
|
|
||||||
},
|
|
||||||
text: FFLocalizations
|
|
||||||
.of(context)
|
|
||||||
.getText(
|
|
||||||
'j8567afe' /* Cadastrar */,
|
|
||||||
),
|
|
||||||
options:
|
|
||||||
FFButtonOptions(
|
|
||||||
width: double
|
|
||||||
.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0),
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.customColor1,
|
|
||||||
textStyle:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.secondaryText,
|
|
||||||
fontSize:
|
|
||||||
16.0,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts.asMap().containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide:
|
|
||||||
const BorderSide(
|
|
||||||
color: Colors
|
|
||||||
.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator:
|
|
||||||
false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return Row(
|
|
||||||
mainAxisSize:
|
|
||||||
MainAxisSize.max,
|
|
||||||
mainAxisAlignment:
|
|
||||||
MainAxisAlignment
|
|
||||||
.spaceEvenly,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
16.0),
|
|
||||||
child:
|
|
||||||
FFButtonWidget(
|
|
||||||
onPressed: () {
|
|
||||||
print(
|
|
||||||
'signInButtonLoginForm pressed ...');
|
|
||||||
},
|
|
||||||
text: FFLocalizations
|
|
||||||
.of(context)
|
|
||||||
.getText(
|
|
||||||
'y3wd9q18' /* Entrar */,
|
|
||||||
),
|
|
||||||
options:
|
|
||||||
FFButtonOptions(
|
|
||||||
width: double
|
|
||||||
.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0),
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.accent1,
|
|
||||||
textStyle: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.secondaryText,
|
|
||||||
fontSize:
|
|
||||||
16.0,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight
|
|
||||||
.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide:
|
|
||||||
const BorderSide(
|
|
||||||
color: Colors
|
|
||||||
.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator:
|
|
||||||
false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
16.0),
|
|
||||||
child:
|
|
||||||
FFButtonWidget(
|
|
||||||
onPressed:
|
|
||||||
() async {
|
|
||||||
context.pushNamed(
|
|
||||||
'RegisterPage');
|
|
||||||
},
|
|
||||||
text: FFLocalizations
|
|
||||||
.of(context)
|
|
||||||
.getText(
|
|
||||||
'j6ufb6sq' /* Cadastrar */,
|
|
||||||
),
|
|
||||||
options:
|
|
||||||
FFButtonOptions(
|
|
||||||
width: double
|
|
||||||
.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
0.0),
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.customColor1,
|
|
||||||
textStyle: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.secondaryText,
|
|
||||||
fontSize:
|
|
||||||
16.0,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight
|
|
||||||
.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide:
|
|
||||||
const BorderSide(
|
|
||||||
color: Colors
|
|
||||||
.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius
|
|
||||||
.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator:
|
|
||||||
false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
].divide(
|
|
||||||
const SizedBox(width: 7.0)),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
|
|
||||||
// You will have to add an action on this rich text to go to your login page.
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 12.0, 0.0, 12.0),
|
|
||||||
child: InkWell(
|
|
||||||
splashColor:
|
|
||||||
Colors.transparent,
|
|
||||||
focusColor:
|
|
||||||
Colors.transparent,
|
|
||||||
hoverColor:
|
|
||||||
Colors.transparent,
|
|
||||||
highlightColor:
|
|
||||||
Colors.transparent,
|
|
||||||
onTap: () async {
|
|
||||||
context.pushNamed(
|
|
||||||
'ForgotPasswordPage');
|
|
||||||
},
|
|
||||||
child: RichText(
|
|
||||||
textScaler:
|
|
||||||
MediaQuery.of(context)
|
|
||||||
.textScaler,
|
|
||||||
text: TextSpan(
|
|
||||||
children: [
|
|
||||||
TextSpan(
|
|
||||||
text: FFLocalizations
|
|
||||||
.of(context)
|
|
||||||
.getText(
|
|
||||||
'h85112qs' /* Você esqueceu a sua senha? */,
|
|
||||||
),
|
|
||||||
style: TextStyle(
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.primaryText,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
TextSpan(
|
|
||||||
text: FFLocalizations
|
|
||||||
.of(context)
|
|
||||||
.getText(
|
|
||||||
'di48hdaj' /* Recupere aqui */,
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primary,
|
|
||||||
fontSize: 14.0,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight
|
|
||||||
.normal,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
mouseCursor:
|
|
||||||
SystemMouseCursors
|
|
||||||
.click,
|
|
||||||
recognizer:
|
|
||||||
TapGestureRecognizer()
|
|
||||||
..onTap =
|
|
||||||
() async {
|
|
||||||
context.pushNamed(
|
|
||||||
'ForgotPasswordPage');
|
|
||||||
},
|
|
||||||
)
|
|
||||||
],
|
|
||||||
style:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyMediumFamily,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
).animateOnPageLoad(animationsMap[
|
|
||||||
'containerOnPageLoadAnimation']!),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'gx2fp6zq' /* Termo de Uso */,
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily: FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily,
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 14.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey(
|
|
||||||
FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'register_page_widget.dart' show RegisterPageWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class RegisterPageModel extends FlutterFlowModel<RegisterPageWidget> {
|
|
||||||
/// Local state fields for this page.
|
|
||||||
|
|
||||||
String? email = 'danielsan@confia.com';
|
|
||||||
|
|
||||||
String? passwd = '12345678';
|
|
||||||
|
|
||||||
String? device = 'android';
|
|
||||||
|
|
||||||
String? name = 'Daniel-San';
|
|
||||||
|
|
||||||
/// State fields for stateful widgets in this page.
|
|
||||||
|
|
||||||
final unfocusNode = FocusNode();
|
|
||||||
// State field(s) for nameRegisterForm widget.
|
|
||||||
FocusNode? nameRegisterFormFocusNode;
|
|
||||||
TextEditingController? nameRegisterFormTextController;
|
|
||||||
String? Function(BuildContext, String?)?
|
|
||||||
nameRegisterFormTextControllerValidator;
|
|
||||||
// State field(s) for emailRegisterForm widget.
|
|
||||||
FocusNode? emailRegisterFormFocusNode;
|
|
||||||
TextEditingController? emailRegisterFormTextController;
|
|
||||||
String? Function(BuildContext, String?)?
|
|
||||||
emailRegisterFormTextControllerValidator;
|
|
||||||
// State field(s) for passwordRegisterForm widget.
|
|
||||||
FocusNode? passwordRegisterFormFocusNode;
|
|
||||||
TextEditingController? passwordRegisterFormTextController;
|
|
||||||
late bool passwordRegisterFormVisibility;
|
|
||||||
String? Function(BuildContext, String?)?
|
|
||||||
passwordRegisterFormTextControllerValidator;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {
|
|
||||||
passwordRegisterFormVisibility = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
unfocusNode.dispose();
|
|
||||||
nameRegisterFormFocusNode?.dispose();
|
|
||||||
nameRegisterFormTextController?.dispose();
|
|
||||||
|
|
||||||
emailRegisterFormFocusNode?.dispose();
|
|
||||||
emailRegisterFormTextController?.dispose();
|
|
||||||
|
|
||||||
passwordRegisterFormFocusNode?.dispose();
|
|
||||||
passwordRegisterFormTextController?.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,867 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_animations.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
|
||||||
import '/actions/actions.dart' as action_blocks;
|
|
||||||
import 'package:easy_debounce/easy_debounce.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter/scheduler.dart';
|
|
||||||
import 'package:flutter_animate/flutter_animate.dart';
|
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'register_page_model.dart';
|
|
||||||
export 'register_page_model.dart';
|
|
||||||
|
|
||||||
class RegisterPageWidget extends StatefulWidget {
|
|
||||||
const RegisterPageWidget({super.key});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<RegisterPageWidget> createState() => _RegisterPageWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _RegisterPageWidgetState extends State<RegisterPageWidget>
|
|
||||||
with TickerProviderStateMixin {
|
|
||||||
late RegisterPageModel _model;
|
|
||||||
|
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
||||||
|
|
||||||
final animationsMap = <String, AnimationInfo>{};
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => RegisterPageModel());
|
|
||||||
|
|
||||||
// On page load action.
|
|
||||||
SchedulerBinding.instance.addPostFrameCallback((_) async {
|
|
||||||
await Future.wait([
|
|
||||||
Future(() async {}),
|
|
||||||
Future(() async {
|
|
||||||
if (isAndroid == true) {
|
|
||||||
_model.device = 'android';
|
|
||||||
setState(() {});
|
|
||||||
} else if (isiOS == true) {
|
|
||||||
_model.device = 'ios';
|
|
||||||
setState(() {});
|
|
||||||
} else {
|
|
||||||
_model.device = 'web';
|
|
||||||
setState(() {});
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
]);
|
|
||||||
});
|
|
||||||
|
|
||||||
_model.nameRegisterFormTextController ??= TextEditingController();
|
|
||||||
_model.nameRegisterFormFocusNode ??= FocusNode();
|
|
||||||
_model.nameRegisterFormFocusNode!.addListener(() => setState(() {}));
|
|
||||||
_model.emailRegisterFormTextController ??= TextEditingController();
|
|
||||||
_model.emailRegisterFormFocusNode ??= FocusNode();
|
|
||||||
_model.emailRegisterFormFocusNode!.addListener(() => setState(() {}));
|
|
||||||
_model.passwordRegisterFormTextController ??= TextEditingController();
|
|
||||||
_model.passwordRegisterFormFocusNode ??= FocusNode();
|
|
||||||
_model.passwordRegisterFormFocusNode!.addListener(() => setState(() {}));
|
|
||||||
animationsMap.addAll({
|
|
||||||
'containerOnPageLoadAnimation': AnimationInfo(
|
|
||||||
trigger: AnimationTrigger.onPageLoad,
|
|
||||||
effectsBuilder: () => [
|
|
||||||
VisibilityEffect(duration: 1.ms),
|
|
||||||
FadeEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: 0.0,
|
|
||||||
end: 1.0,
|
|
||||||
),
|
|
||||||
MoveEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(0.0, 140.0),
|
|
||||||
end: const Offset(0.0, 0.0),
|
|
||||||
),
|
|
||||||
ScaleEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(0.9, 0.9),
|
|
||||||
end: const Offset(1.0, 1.0),
|
|
||||||
),
|
|
||||||
TiltEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(-0.349, 0),
|
|
||||||
end: const Offset(0, 0),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.dispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
context.watch<FFAppState>();
|
|
||||||
|
|
||||||
return GestureDetector(
|
|
||||||
onTap: () => _model.unfocusNode.canRequestFocus
|
|
||||||
? FocusScope.of(context).requestFocus(_model.unfocusNode)
|
|
||||||
: FocusScope.of(context).unfocus(),
|
|
||||||
child: Scaffold(
|
|
||||||
key: scaffoldKey,
|
|
||||||
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
body: SafeArea(
|
|
||||||
top: true,
|
|
||||||
child: Row(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
flex: 6,
|
|
||||||
child: Container(
|
|
||||||
width: 100.0,
|
|
||||||
height: double.infinity,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
),
|
|
||||||
alignment: const AlignmentDirectional(0.0, -1.0),
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: SingleChildScrollView(
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsets.all(4.0),
|
|
||||||
child: Container(
|
|
||||||
width: 669.0,
|
|
||||||
height: 112.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.circular(16.0),
|
|
||||||
),
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(20.0),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Align(
|
|
||||||
alignment:
|
|
||||||
const AlignmentDirectional(0.0, -1.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(4.0),
|
|
||||||
child: Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'2d8uulm3' /* INSIRA SEU EMAIL E SENHA, VAMO... */,
|
|
||||||
),
|
|
||||||
textAlign: TextAlign.start,
|
|
||||||
style: FlutterFlowTheme.of(context)
|
|
||||||
.displaySmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 24.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Container(
|
|
||||||
width: 291.0,
|
|
||||||
height: 167.0,
|
|
||||||
decoration: const BoxDecoration(),
|
|
||||||
child: ClipRRect(
|
|
||||||
borderRadius: BorderRadius.circular(8.0),
|
|
||||||
child: SvgPicture.network(
|
|
||||||
'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/ug2zlyhca2sh/Frame_5.svg',
|
|
||||||
width: 603.0,
|
|
||||||
height: 155.0,
|
|
||||||
fit: BoxFit.contain,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(34.0),
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
constraints: const BoxConstraints(
|
|
||||||
maxWidth: 570.0,
|
|
||||||
),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.primaryBackground,
|
|
||||||
borderRadius: BorderRadius.circular(12.0),
|
|
||||||
),
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(32.0),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
crossAxisAlignment:
|
|
||||||
CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
child: TextFormField(
|
|
||||||
controller: _model
|
|
||||||
.nameRegisterFormTextController,
|
|
||||||
focusNode: _model
|
|
||||||
.nameRegisterFormFocusNode,
|
|
||||||
onChanged: (_) =>
|
|
||||||
EasyDebounce.debounce(
|
|
||||||
'_model.nameRegisterFormTextController',
|
|
||||||
const Duration(
|
|
||||||
milliseconds: 2000),
|
|
||||||
() => setState(() {}),
|
|
||||||
),
|
|
||||||
autofocus: false,
|
|
||||||
autofillHints: const [
|
|
||||||
AutofillHints.name
|
|
||||||
],
|
|
||||||
obscureText: false,
|
|
||||||
decoration: InputDecoration(
|
|
||||||
labelText:
|
|
||||||
FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'8kjhi406' /* Nome */,
|
|
||||||
),
|
|
||||||
labelStyle: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
enabledBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.customColor1,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
focusedBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.success,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
errorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.error,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
focusedErrorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.error,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
filled: true,
|
|
||||||
fillColor:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryBackground,
|
|
||||||
suffixIcon: Icon(
|
|
||||||
Icons.person,
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.accent1,
|
|
||||||
size: 22.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
keyboardType:
|
|
||||||
TextInputType.name,
|
|
||||||
validator: _model
|
|
||||||
.nameRegisterFormTextControllerValidator
|
|
||||||
.asValidator(context),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
child: TextFormField(
|
|
||||||
controller: _model
|
|
||||||
.emailRegisterFormTextController,
|
|
||||||
focusNode: _model
|
|
||||||
.emailRegisterFormFocusNode,
|
|
||||||
onChanged: (_) =>
|
|
||||||
EasyDebounce.debounce(
|
|
||||||
'_model.emailRegisterFormTextController',
|
|
||||||
const Duration(
|
|
||||||
milliseconds: 2000),
|
|
||||||
() => setState(() {}),
|
|
||||||
),
|
|
||||||
autofocus: false,
|
|
||||||
autofillHints: const [
|
|
||||||
AutofillHints.email
|
|
||||||
],
|
|
||||||
obscureText: false,
|
|
||||||
decoration: InputDecoration(
|
|
||||||
labelText:
|
|
||||||
FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'ro4zkkxp' /* Email */,
|
|
||||||
),
|
|
||||||
labelStyle: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
enabledBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryText,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
focusedBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.success,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
errorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.error,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
focusedErrorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.error,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
filled: true,
|
|
||||||
fillColor:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryBackground,
|
|
||||||
suffixIcon: Icon(
|
|
||||||
Icons.email,
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.accent1,
|
|
||||||
size: 22.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.customColor1,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
keyboardType: TextInputType
|
|
||||||
.emailAddress,
|
|
||||||
validator: _model
|
|
||||||
.emailRegisterFormTextControllerValidator
|
|
||||||
.asValidator(context),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: SizedBox(
|
|
||||||
width: double.infinity,
|
|
||||||
child: TextFormField(
|
|
||||||
controller: _model
|
|
||||||
.passwordRegisterFormTextController,
|
|
||||||
focusNode: _model
|
|
||||||
.passwordRegisterFormFocusNode,
|
|
||||||
onChanged: (_) =>
|
|
||||||
EasyDebounce.debounce(
|
|
||||||
'_model.passwordRegisterFormTextController',
|
|
||||||
const Duration(
|
|
||||||
milliseconds: 2000),
|
|
||||||
() => setState(() {}),
|
|
||||||
),
|
|
||||||
autofocus: false,
|
|
||||||
autofillHints: const [
|
|
||||||
AutofillHints.password
|
|
||||||
],
|
|
||||||
obscureText: !_model
|
|
||||||
.passwordRegisterFormVisibility,
|
|
||||||
decoration: InputDecoration(
|
|
||||||
labelText:
|
|
||||||
FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'lzgobioa' /* Senha */,
|
|
||||||
),
|
|
||||||
labelStyle: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.labelLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
enabledBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: BorderSide(
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.customColor1,
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
focusedBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color:
|
|
||||||
Color(0xFF1AAB5F),
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
errorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color:
|
|
||||||
Color(0xFFFF5963),
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
focusedErrorBorder:
|
|
||||||
OutlineInputBorder(
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color:
|
|
||||||
Color(0xFFFF5963),
|
|
||||||
width: 0.5,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
filled: true,
|
|
||||||
fillColor:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryBackground,
|
|
||||||
suffixIcon: InkWell(
|
|
||||||
onTap: () => setState(
|
|
||||||
() => _model
|
|
||||||
.passwordRegisterFormVisibility =
|
|
||||||
!_model
|
|
||||||
.passwordRegisterFormVisibility,
|
|
||||||
),
|
|
||||||
focusNode: FocusNode(
|
|
||||||
skipTraversal: true),
|
|
||||||
child: Icon(
|
|
||||||
_model.passwordRegisterFormVisibility
|
|
||||||
? Icons
|
|
||||||
.visibility_outlined
|
|
||||||
: Icons
|
|
||||||
.visibility_off_outlined,
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.accent1,
|
|
||||||
size: 24.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyLarge
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
validator: _model
|
|
||||||
.passwordRegisterFormTextControllerValidator
|
|
||||||
.asValidator(context),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: FFButtonWidget(
|
|
||||||
onPressed: () async {
|
|
||||||
await action_blocks
|
|
||||||
.signUpActionApp(
|
|
||||||
context,
|
|
||||||
name: _model
|
|
||||||
.nameRegisterFormTextController
|
|
||||||
.text,
|
|
||||||
passwd: _model
|
|
||||||
.passwordRegisterFormTextController
|
|
||||||
.text,
|
|
||||||
email: _model
|
|
||||||
.emailRegisterFormTextController
|
|
||||||
.text,
|
|
||||||
device: FFAppState().device,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
text:
|
|
||||||
FFLocalizations.of(context)
|
|
||||||
.getText(
|
|
||||||
'c7sfyeh8' /* Cadastrar-se */,
|
|
||||||
),
|
|
||||||
options: FFButtonOptions(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(0.0, 0.0,
|
|
||||||
0.0, 0.0),
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.accent1,
|
|
||||||
textStyle: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.secondaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color: Colors.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
|
|
||||||
// You will have to add an action on this rich text to go to your login page.
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 12.0, 0.0, 12.0),
|
|
||||||
child: InkWell(
|
|
||||||
splashColor: Colors.transparent,
|
|
||||||
focusColor: Colors.transparent,
|
|
||||||
hoverColor: Colors.transparent,
|
|
||||||
highlightColor:
|
|
||||||
Colors.transparent,
|
|
||||||
onTap: () async {
|
|
||||||
context.pushNamed(
|
|
||||||
'LoginPage',
|
|
||||||
queryParameters: {
|
|
||||||
'device': serializeParam(
|
|
||||||
'',
|
|
||||||
ParamType.String,
|
|
||||||
),
|
|
||||||
}.withoutNulls,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
child: RichText(
|
|
||||||
textScaler:
|
|
||||||
MediaQuery.of(context)
|
|
||||||
.textScaler,
|
|
||||||
text: TextSpan(
|
|
||||||
children: [
|
|
||||||
TextSpan(
|
|
||||||
text:
|
|
||||||
FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'jglpa1tr' /* Você já tem uma conta? */,
|
|
||||||
),
|
|
||||||
style: TextStyle(
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.primaryText,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
TextSpan(
|
|
||||||
text:
|
|
||||||
FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'hfcm0td9' /* Clique aqui */,
|
|
||||||
),
|
|
||||||
style:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primary,
|
|
||||||
fontSize:
|
|
||||||
14.0,
|
|
||||||
letterSpacing:
|
|
||||||
0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight
|
|
||||||
.w600,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
style: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyMediumFamily,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.bodyMediumFamily),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
).animateOnPageLoad(animationsMap[
|
|
||||||
'containerOnPageLoadAnimation']!),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'c3kno4t9' /* Termo de Uso */,
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily: FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily,
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.secondaryText,
|
|
||||||
fontSize: 14.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey(FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'welcome_page_widget.dart' show WelcomePageWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class WelcomePageModel extends FlutterFlowModel<WelcomePageWidget> {
|
|
||||||
/// Local state fields for this page.
|
|
||||||
|
|
||||||
String? device;
|
|
||||||
|
|
||||||
/// State fields for stateful widgets in this page.
|
|
||||||
|
|
||||||
final unfocusNode = FocusNode();
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
unfocusNode.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,529 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_animations.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter/scheduler.dart';
|
|
||||||
import 'package:flutter_animate/flutter_animate.dart';
|
|
||||||
import 'package:flutter_svg/flutter_svg.dart';
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'welcome_page_model.dart';
|
|
||||||
export 'welcome_page_model.dart';
|
|
||||||
|
|
||||||
class WelcomePageWidget extends StatefulWidget {
|
|
||||||
const WelcomePageWidget({super.key});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<WelcomePageWidget> createState() => _WelcomePageWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _WelcomePageWidgetState extends State<WelcomePageWidget>
|
|
||||||
with TickerProviderStateMixin {
|
|
||||||
late WelcomePageModel _model;
|
|
||||||
|
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
||||||
|
|
||||||
final animationsMap = <String, AnimationInfo>{};
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => WelcomePageModel());
|
|
||||||
|
|
||||||
// On page load action.
|
|
||||||
SchedulerBinding.instance.addPostFrameCallback((_) async {
|
|
||||||
if (FFAppState().isLogged == true) {
|
|
||||||
context.pushNamed(
|
|
||||||
'homePage',
|
|
||||||
extra: <String, dynamic>{
|
|
||||||
kTransitionInfoKey: const TransitionInfo(
|
|
||||||
hasTransition: true,
|
|
||||||
transitionType: PageTransitionType.fade,
|
|
||||||
duration: Duration(milliseconds: 0),
|
|
||||||
),
|
|
||||||
},
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
if (isAndroid == true) {
|
|
||||||
FFAppState().device = 'Android';
|
|
||||||
setState(() {});
|
|
||||||
} else if (isiOS == true) {
|
|
||||||
FFAppState().device = 'iOS';
|
|
||||||
setState(() {});
|
|
||||||
} else {
|
|
||||||
FFAppState().device = 'Web';
|
|
||||||
setState(() {});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
animationsMap.addAll({
|
|
||||||
'containerOnPageLoadAnimation': AnimationInfo(
|
|
||||||
trigger: AnimationTrigger.onPageLoad,
|
|
||||||
effectsBuilder: () => [
|
|
||||||
VisibilityEffect(duration: 1.ms),
|
|
||||||
FadeEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: 0.0,
|
|
||||||
end: 1.0,
|
|
||||||
),
|
|
||||||
MoveEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(0.0, 140.0),
|
|
||||||
end: const Offset(0.0, 0.0),
|
|
||||||
),
|
|
||||||
ScaleEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(0.9, 0.9),
|
|
||||||
end: const Offset(1.0, 1.0),
|
|
||||||
),
|
|
||||||
TiltEffect(
|
|
||||||
curve: Curves.easeInOut,
|
|
||||||
delay: 0.0.ms,
|
|
||||||
duration: 300.0.ms,
|
|
||||||
begin: const Offset(-0.349, 0),
|
|
||||||
end: const Offset(0, 0),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.dispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
context.watch<FFAppState>();
|
|
||||||
|
|
||||||
return GestureDetector(
|
|
||||||
onTap: () => _model.unfocusNode.canRequestFocus
|
|
||||||
? FocusScope.of(context).requestFocus(_model.unfocusNode)
|
|
||||||
: FocusScope.of(context).unfocus(),
|
|
||||||
child: WillPopScope(
|
|
||||||
onWillPop: () async => false,
|
|
||||||
child: Scaffold(
|
|
||||||
key: scaffoldKey,
|
|
||||||
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
body: SafeArea(
|
|
||||||
top: true,
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: SingleChildScrollView(
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
|
||||||
children: [
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: SafeArea(
|
|
||||||
child: Container(
|
|
||||||
width: 648.0,
|
|
||||||
height: 208.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.circular(16.0),
|
|
||||||
),
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(14.0),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: [
|
|
||||||
Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'xflxvs9y' /* UMA EXPERIÊCIA COMPLETA */,
|
|
||||||
),
|
|
||||||
textAlign: TextAlign.start,
|
|
||||||
style: FlutterFlowTheme.of(context)
|
|
||||||
.displaySmall
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.accent1,
|
|
||||||
fontSize: 24.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey('Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, -1.0),
|
|
||||||
child: Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'5a86wzd1' /* COM CONFORTO ONDE VOCÊ ESTIVER... */,
|
|
||||||
),
|
|
||||||
textAlign: TextAlign.start,
|
|
||||||
style: FlutterFlowTheme.of(context)
|
|
||||||
.displaySmall
|
|
||||||
.override(
|
|
||||||
fontFamily: 'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.primaryText,
|
|
||||||
fontSize: 15.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight: FontWeight.w600,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Container(
|
|
||||||
width: 284.0,
|
|
||||||
height: 200.0,
|
|
||||||
decoration: const BoxDecoration(),
|
|
||||||
child: ClipRRect(
|
|
||||||
borderRadius: BorderRadius.circular(0.0),
|
|
||||||
child: SvgPicture.network(
|
|
||||||
'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/lv1waa0etd3j/undraw_appreciate_it_re_yc8h_(1)_1.svg',
|
|
||||||
width: 603.0,
|
|
||||||
height: double.infinity,
|
|
||||||
fit: BoxFit.contain,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(34.0),
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
constraints: const BoxConstraints(
|
|
||||||
maxWidth: 570.0,
|
|
||||||
),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
boxShadow: const [
|
|
||||||
BoxShadow(
|
|
||||||
blurRadius: 0.0,
|
|
||||||
color: Colors.transparent,
|
|
||||||
offset: Offset(
|
|
||||||
0.0,
|
|
||||||
0.0,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
],
|
|
||||||
borderRadius: BorderRadius.circular(12.0),
|
|
||||||
),
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(32.0),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.center,
|
|
||||||
children: [
|
|
||||||
Builder(
|
|
||||||
builder: (context) {
|
|
||||||
if (MediaQuery.sizeOf(context).width <
|
|
||||||
kBreakpointSmall
|
|
||||||
? true
|
|
||||||
: false) {
|
|
||||||
return Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: FFButtonWidget(
|
|
||||||
onPressed: () async {
|
|
||||||
context.pushNamed(
|
|
||||||
'LoginPage',
|
|
||||||
queryParameters: {
|
|
||||||
'device': serializeParam(
|
|
||||||
'',
|
|
||||||
ParamType.String,
|
|
||||||
),
|
|
||||||
}.withoutNulls,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
text:
|
|
||||||
FFLocalizations.of(context)
|
|
||||||
.getText(
|
|
||||||
'65nuva6j' /* Entrar */,
|
|
||||||
),
|
|
||||||
options: FFButtonOptions(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(0.0, 0.0,
|
|
||||||
0.0, 0.0),
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primary,
|
|
||||||
textStyle: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.info,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color: Colors.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: FFButtonWidget(
|
|
||||||
onPressed: () async {
|
|
||||||
context.pushNamed(
|
|
||||||
'RegisterPage');
|
|
||||||
},
|
|
||||||
text:
|
|
||||||
FFLocalizations.of(context)
|
|
||||||
.getText(
|
|
||||||
'9u6oaw01' /* Cadastrar */,
|
|
||||||
),
|
|
||||||
options: FFButtonOptions(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(0.0, 0.0,
|
|
||||||
0.0, 0.0),
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.customColor1,
|
|
||||||
textStyle: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color:
|
|
||||||
FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.customColor3,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts: GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color: Colors.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
return Row(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment:
|
|
||||||
MainAxisAlignment.spaceEvenly,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: FFButtonWidget(
|
|
||||||
onPressed: () async {
|
|
||||||
context.pushNamed(
|
|
||||||
'LoginPage',
|
|
||||||
queryParameters: {
|
|
||||||
'device':
|
|
||||||
serializeParam(
|
|
||||||
'',
|
|
||||||
ParamType.String,
|
|
||||||
),
|
|
||||||
}.withoutNulls,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
text: FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'd1qem43w' /* Entrar */,
|
|
||||||
),
|
|
||||||
options: FFButtonOptions(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(0.0, 0.0,
|
|
||||||
0.0, 0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(0.0, 0.0,
|
|
||||||
0.0, 0.0),
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primary,
|
|
||||||
textStyle: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.secondaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color: Colors.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(
|
|
||||||
0.0, 0.0, 0.0, 16.0),
|
|
||||||
child: FFButtonWidget(
|
|
||||||
onPressed: () async {
|
|
||||||
context.pushNamed(
|
|
||||||
'RegisterPage');
|
|
||||||
},
|
|
||||||
text: FFLocalizations.of(
|
|
||||||
context)
|
|
||||||
.getText(
|
|
||||||
'bhowzv2u' /* Cadastrar */,
|
|
||||||
),
|
|
||||||
options: FFButtonOptions(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 44.0,
|
|
||||||
padding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(0.0, 0.0,
|
|
||||||
0.0, 0.0),
|
|
||||||
iconPadding:
|
|
||||||
const EdgeInsetsDirectional
|
|
||||||
.fromSTEB(0.0, 0.0,
|
|
||||||
0.0, 0.0),
|
|
||||||
color: FlutterFlowTheme.of(
|
|
||||||
context)
|
|
||||||
.primary,
|
|
||||||
textStyle: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.titleSmall
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
'Plus Jakarta Sans',
|
|
||||||
color: FlutterFlowTheme
|
|
||||||
.of(context)
|
|
||||||
.secondaryText,
|
|
||||||
fontSize: 16.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
fontWeight:
|
|
||||||
FontWeight.w500,
|
|
||||||
useGoogleFonts:
|
|
||||||
GoogleFonts
|
|
||||||
.asMap()
|
|
||||||
.containsKey(
|
|
||||||
'Plus Jakarta Sans'),
|
|
||||||
),
|
|
||||||
elevation: 3.0,
|
|
||||||
borderSide: const BorderSide(
|
|
||||||
color: Colors.transparent,
|
|
||||||
width: 1.0,
|
|
||||||
),
|
|
||||||
borderRadius:
|
|
||||||
BorderRadius.circular(
|
|
||||||
12.0),
|
|
||||||
),
|
|
||||||
showLoadingIndicator: false,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
].divide(const SizedBox(width: 7.0)),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
).animateOnPageLoad(
|
|
||||||
animationsMap['containerOnPageLoadAnimation']!),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'select_header_component_widget.dart' show SelectHeaderComponentWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class SelectHeaderComponentModel
|
|
||||||
extends FlutterFlowModel<SelectHeaderComponentWidget> {
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {}
|
|
||||||
}
|
|
|
@ -1,185 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
|
||||||
import 'select_header_component_model.dart';
|
|
||||||
export 'select_header_component_model.dart';
|
|
||||||
|
|
||||||
class SelectHeaderComponentWidget extends StatefulWidget {
|
|
||||||
const SelectHeaderComponentWidget({
|
|
||||||
super.key,
|
|
||||||
required this.selectToggle,
|
|
||||||
bool? toggleIndexValue,
|
|
||||||
}) : toggleIndexValue = toggleIndexValue ?? true;
|
|
||||||
|
|
||||||
final Future Function(bool toggleIndex)? selectToggle;
|
|
||||||
final bool toggleIndexValue;
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<SelectHeaderComponentWidget> createState() =>
|
|
||||||
_SelectHeaderComponentWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _SelectHeaderComponentWidgetState
|
|
||||||
extends State<SelectHeaderComponentWidget> {
|
|
||||||
late SelectHeaderComponentModel _model;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void setState(VoidCallback callback) {
|
|
||||||
super.setState(callback);
|
|
||||||
_model.onUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => SelectHeaderComponentModel());
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.maybeDispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Row(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
||||||
children: [
|
|
||||||
Expanded(
|
|
||||||
child: Container(
|
|
||||||
height: 55.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
InkWell(
|
|
||||||
splashColor: Colors.transparent,
|
|
||||||
focusColor: Colors.transparent,
|
|
||||||
hoverColor: Colors.transparent,
|
|
||||||
highlightColor: Colors.transparent,
|
|
||||||
onTap: () async {
|
|
||||||
await widget.selectToggle?.call(
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 50.0,
|
|
||||||
decoration: const BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.only(
|
|
||||||
bottomLeft: Radius.circular(0.0),
|
|
||||||
bottomRight: Radius.circular(0.0),
|
|
||||||
topLeft: Radius.circular(0.0),
|
|
||||||
topRight: Radius.circular(0.0),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'1gr8ztd5' /* Criar Agendamento */,
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
|
||||||
fontFamily:
|
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
|
||||||
FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
if (widget.toggleIndexValue == true)
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 2.0, 0.0, 0.0),
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 2.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
|
||||||
borderRadius: BorderRadius.circular(100.0),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: Container(
|
|
||||||
height: 55.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
InkWell(
|
|
||||||
splashColor: Colors.transparent,
|
|
||||||
focusColor: Colors.transparent,
|
|
||||||
hoverColor: Colors.transparent,
|
|
||||||
highlightColor: Colors.transparent,
|
|
||||||
onTap: () async {
|
|
||||||
await widget.selectToggle?.call(
|
|
||||||
false,
|
|
||||||
);
|
|
||||||
},
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 50.0,
|
|
||||||
decoration: const BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.only(
|
|
||||||
bottomLeft: Radius.circular(0.0),
|
|
||||||
bottomRight: Radius.circular(0.0),
|
|
||||||
topLeft: Radius.circular(0.0),
|
|
||||||
topRight: Radius.circular(0.0),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
child: Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'xjahsbjw' /* Histórico de Visitas */,
|
|
||||||
),
|
|
||||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
|
||||||
fontFamily:
|
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
|
||||||
color: FlutterFlowTheme.of(context).primaryText,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
|
||||||
FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
if (widget.toggleIndexValue == false)
|
|
||||||
Padding(
|
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 2.0, 0.0, 0.0),
|
|
||||||
child: Container(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 2.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
|
||||||
borderRadius: BorderRadius.circular(100.0),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'test_widget.dart' show TestWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class TestModel extends FlutterFlowModel<TestWidget> {
|
|
||||||
/// State fields for stateful widgets in this page.
|
|
||||||
|
|
||||||
final unfocusNode = FocusNode();
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
unfocusNode.dispose();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'test_model.dart';
|
|
||||||
export 'test_model.dart';
|
|
||||||
|
|
||||||
class TestWidget extends StatefulWidget {
|
|
||||||
const TestWidget({super.key});
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<TestWidget> createState() => _TestWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _TestWidgetState extends State<TestWidget> {
|
|
||||||
late TestModel _model;
|
|
||||||
|
|
||||||
final scaffoldKey = GlobalKey<ScaffoldState>();
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => TestModel());
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.dispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return GestureDetector(
|
|
||||||
onTap: () => _model.unfocusNode.canRequestFocus
|
|
||||||
? FocusScope.of(context).requestFocus(_model.unfocusNode)
|
|
||||||
: FocusScope.of(context).unfocus(),
|
|
||||||
child: Scaffold(
|
|
||||||
key: scaffoldKey,
|
|
||||||
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import 'visit_history_template_component_widget.dart'
|
|
||||||
show VisitHistoryTemplateComponentWidget;
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
|
|
||||||
class VisitHistoryTemplateComponentModel
|
|
||||||
extends FlutterFlowModel<VisitHistoryTemplateComponentWidget> {
|
|
||||||
@override
|
|
||||||
void initState(BuildContext context) {}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {}
|
|
||||||
}
|
|
|
@ -1,389 +0,0 @@
|
||||||
import '/backend/api_requests/api_calls.dart';
|
|
||||||
import '/components/molecular_components/opt_modal/opt_modal_widget.dart';
|
|
||||||
import '/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_icon_button.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_theme.dart';
|
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
|
||||||
import '/flutter_flow/custom_functions.dart' as functions;
|
|
||||||
import 'package:cached_network_image/cached_network_image.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:flutter_spinkit/flutter_spinkit.dart';
|
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
|
||||||
import 'visit_history_template_component_model.dart';
|
|
||||||
export 'visit_history_template_component_model.dart';
|
|
||||||
|
|
||||||
class VisitHistoryTemplateComponentWidget extends StatefulWidget {
|
|
||||||
const VisitHistoryTemplateComponentWidget({
|
|
||||||
super.key,
|
|
||||||
this.parameter1,
|
|
||||||
});
|
|
||||||
|
|
||||||
final FFUploadedFile? parameter1;
|
|
||||||
|
|
||||||
@override
|
|
||||||
State<VisitHistoryTemplateComponentWidget> createState() =>
|
|
||||||
_VisitHistoryTemplateComponentWidgetState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _VisitHistoryTemplateComponentWidgetState
|
|
||||||
extends State<VisitHistoryTemplateComponentWidget> {
|
|
||||||
late VisitHistoryTemplateComponentModel _model;
|
|
||||||
|
|
||||||
@override
|
|
||||||
void setState(VoidCallback callback) {
|
|
||||||
super.setState(callback);
|
|
||||||
_model.onUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
_model = createModel(context, () => VisitHistoryTemplateComponentModel());
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
void dispose() {
|
|
||||||
_model.maybeDispose();
|
|
||||||
|
|
||||||
super.dispose();
|
|
||||||
}
|
|
||||||
|
|
||||||
@override
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
context.watch<FFAppState>();
|
|
||||||
|
|
||||||
return Container(
|
|
||||||
width: double.infinity,
|
|
||||||
height: 900.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
children: [
|
|
||||||
Row(
|
|
||||||
mainAxisSize: MainAxisSize.max,
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
|
||||||
children: [
|
|
||||||
FlutterFlowIconButton(
|
|
||||||
borderColor: Colors.transparent,
|
|
||||||
borderRadius: 20.0,
|
|
||||||
borderWidth: 1.0,
|
|
||||||
buttonSize: 40.0,
|
|
||||||
icon: Icon(
|
|
||||||
Icons.settings_sharp,
|
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
|
||||||
size: 24.0,
|
|
||||||
),
|
|
||||||
onPressed: () async {
|
|
||||||
await showModalBottomSheet(
|
|
||||||
isScrollControlled: true,
|
|
||||||
backgroundColor: Colors.transparent,
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return Padding(
|
|
||||||
padding: MediaQuery.viewInsetsOf(context),
|
|
||||||
child: const OptModalWidget(),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
).then((value) => safeSetState(() {}));
|
|
||||||
},
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
Expanded(
|
|
||||||
child: Padding(
|
|
||||||
padding: const EdgeInsets.all(14.0),
|
|
||||||
child: FutureBuilder<ApiCallResponse>(
|
|
||||||
future: PhpGroup.getVisitsCall.call(
|
|
||||||
devUUID: FFAppState().devUUID,
|
|
||||||
userUUID: FFAppState().userUUID,
|
|
||||||
cliID: FFAppState().cliUUID,
|
|
||||||
atividade: 'getVisitas',
|
|
||||||
),
|
|
||||||
builder: (context, snapshot) {
|
|
||||||
// Customize what your widget looks like when it's loading.
|
|
||||||
if (!snapshot.hasData) {
|
|
||||||
return Center(
|
|
||||||
child: SizedBox(
|
|
||||||
width: 50.0,
|
|
||||||
height: 50.0,
|
|
||||||
child: SpinKitCircle(
|
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
|
||||||
size: 50.0,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
final gridViewGetVisitsResponse = snapshot.data!;
|
|
||||||
return Builder(
|
|
||||||
builder: (context) {
|
|
||||||
final visitHistory = (PhpGroup.getVisitsCall
|
|
||||||
.visitasList(
|
|
||||||
gridViewGetVisitsResponse.jsonBody,
|
|
||||||
)
|
|
||||||
?.toList() ??
|
|
||||||
[])
|
|
||||||
.take(10)
|
|
||||||
.toList();
|
|
||||||
return GridView.builder(
|
|
||||||
padding: EdgeInsets.zero,
|
|
||||||
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
|
|
||||||
crossAxisCount: 3,
|
|
||||||
crossAxisSpacing: 10.0,
|
|
||||||
mainAxisSpacing: 10.0,
|
|
||||||
childAspectRatio: 1.0,
|
|
||||||
),
|
|
||||||
scrollDirection: Axis.vertical,
|
|
||||||
itemCount: visitHistory.length,
|
|
||||||
itemBuilder: (context, visitHistoryIndex) {
|
|
||||||
final visitHistoryItem =
|
|
||||||
visitHistory[visitHistoryIndex];
|
|
||||||
return Container(
|
|
||||||
width: double.infinity,
|
|
||||||
height: double.infinity,
|
|
||||||
decoration: const BoxDecoration(
|
|
||||||
borderRadius: BorderRadius.only(
|
|
||||||
bottomLeft: Radius.circular(50.0),
|
|
||||||
bottomRight: Radius.circular(50.0),
|
|
||||||
topLeft: Radius.circular(25.0),
|
|
||||||
topRight: Radius.circular(25.0),
|
|
||||||
),
|
|
||||||
shape: BoxShape.rectangle,
|
|
||||||
),
|
|
||||||
child: Stack(
|
|
||||||
children: [
|
|
||||||
Container(
|
|
||||||
width: double.infinity,
|
|
||||||
height: double.infinity,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: valueOrDefault<Color>(
|
|
||||||
() {
|
|
||||||
if (functions.jsonToStr(getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_STATUS''',
|
|
||||||
)) ==
|
|
||||||
'\"A\"') {
|
|
||||||
return FlutterFlowTheme.of(context)
|
|
||||||
.success;
|
|
||||||
} else if (functions
|
|
||||||
.jsonToStr(getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_STATUS''',
|
|
||||||
)) ==
|
|
||||||
'\"C\"') {
|
|
||||||
return FlutterFlowTheme.of(context)
|
|
||||||
.error;
|
|
||||||
} else if (functions
|
|
||||||
.jsonToStr(getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_STATUS''',
|
|
||||||
)) ==
|
|
||||||
'\"I\"') {
|
|
||||||
return FlutterFlowTheme.of(context)
|
|
||||||
.warning;
|
|
||||||
} else {
|
|
||||||
return FlutterFlowTheme.of(context)
|
|
||||||
.primary;
|
|
||||||
}
|
|
||||||
}(),
|
|
||||||
FlutterFlowTheme.of(context).primary,
|
|
||||||
),
|
|
||||||
borderRadius: const BorderRadius.only(
|
|
||||||
bottomLeft: Radius.circular(10.0),
|
|
||||||
bottomRight: Radius.circular(10.0),
|
|
||||||
topLeft: Radius.circular(25.0),
|
|
||||||
topRight: Radius.circular(25.0),
|
|
||||||
),
|
|
||||||
shape: BoxShape.rectangle,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
splashColor: Colors.transparent,
|
|
||||||
focusColor: Colors.transparent,
|
|
||||||
hoverColor: Colors.transparent,
|
|
||||||
highlightColor: Colors.transparent,
|
|
||||||
onTap: () async {
|
|
||||||
await showModalBottomSheet(
|
|
||||||
isScrollControlled: true,
|
|
||||||
backgroundColor: Colors.transparent,
|
|
||||||
enableDrag: false,
|
|
||||||
useSafeArea: true,
|
|
||||||
context: context,
|
|
||||||
builder: (context) {
|
|
||||||
return Padding(
|
|
||||||
padding:
|
|
||||||
MediaQuery.viewInsetsOf(context),
|
|
||||||
child:
|
|
||||||
VisitDetailsModalTemplateComponentWidget(
|
|
||||||
visitStatusStr: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_STATUS
''',
|
|
||||||
).toString(),
|
|
||||||
visitStartDateStr: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_DTINICIO''',
|
|
||||||
).toString(),
|
|
||||||
visitEndDateStr: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_DTFIM''',
|
|
||||||
).toString(),
|
|
||||||
visitReasonStr: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.MOT_DESCRICAO''',
|
|
||||||
).toString(),
|
|
||||||
visitLevelStr: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.NAC_DESCRICAO''',
|
|
||||||
).toString(),
|
|
||||||
visitTempStr: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VTE_UNICA
''',
|
|
||||||
).toString(),
|
|
||||||
visitObsStr: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_OBS''',
|
|
||||||
).toString(),
|
|
||||||
visitorImgPath:
|
|
||||||
valueOrDefault<String>(
|
|
||||||
'https://freaccess.com.br/freaccess/getImage.php?devUUID=${FFAppState().devUUID}&userUUID=${FFAppState().userUUID}&cliID=${FFAppState().cliUUID}&atividade=getFoto&Documento=${getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VTE_DOCUMENTO''',
|
|
||||||
).toString()}&tipo=E',
|
|
||||||
'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/7ftdetkzc3s0/360_F_64676383_LdbmhiNM6Ypzb3FM4PPuFP9rHe7ri8Ju.jpg',
|
|
||||||
),
|
|
||||||
visitorStrList: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VTE_DOCUMENTO''',
|
|
||||||
).toString(),
|
|
||||||
visitIdStr: getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_ID''',
|
|
||||||
).toString(),
|
|
||||||
visitorJsonList: PhpGroup
|
|
||||||
.getVisitsCall
|
|
||||||
.visitasList(
|
|
||||||
gridViewGetVisitsResponse
|
|
||||||
.jsonBody,
|
|
||||||
),
|
|
||||||
updateToggleIdx: () async {
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
repeatVisitSchedule: () async {},
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
).then((value) => safeSetState(() {}));
|
|
||||||
},
|
|
||||||
child: ClipRRect(
|
|
||||||
borderRadius: const BorderRadius.only(
|
|
||||||
bottomLeft: Radius.circular(25.0),
|
|
||||||
bottomRight: Radius.circular(25.0),
|
|
||||||
topLeft: Radius.circular(25.0),
|
|
||||||
topRight: Radius.circular(25.0),
|
|
||||||
),
|
|
||||||
child: CachedNetworkImage(
|
|
||||||
fadeInDuration:
|
|
||||||
const Duration(milliseconds: 500),
|
|
||||||
fadeOutDuration:
|
|
||||||
const Duration(milliseconds: 500),
|
|
||||||
imageUrl: valueOrDefault<String>(
|
|
||||||
'https://freaccess.com.br/freaccess/getImage.php?devUUID=${FFAppState().devUUID}&userUUID=${FFAppState().userUUID}&cliID=${FFAppState().cliUUID}&atividade=getFoto&Documento=${getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VTE_DOCUMENTO''',
|
|
||||||
).toString()}&tipo=E',
|
|
||||||
'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/7ftdetkzc3s0/360_F_64676383_LdbmhiNM6Ypzb3FM4PPuFP9rHe7ri8Ju.jpg',
|
|
||||||
),
|
|
||||||
width: double.infinity,
|
|
||||||
height: double.infinity,
|
|
||||||
fit: BoxFit.cover,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Align(
|
|
||||||
alignment: const AlignmentDirectional(0.0, -1.0),
|
|
||||||
child: Container(
|
|
||||||
width: 200.0,
|
|
||||||
height: 20.0,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: valueOrDefault<Color>(
|
|
||||||
() {
|
|
||||||
if (functions.jsonToStr(getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_STATUS''',
|
|
||||||
)) ==
|
|
||||||
'\"A\"') {
|
|
||||||
return FlutterFlowTheme.of(context)
|
|
||||||
.success;
|
|
||||||
} else if (functions
|
|
||||||
.jsonToStr(getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_STATUS''',
|
|
||||||
)) ==
|
|
||||||
'\"C\"') {
|
|
||||||
return FlutterFlowTheme.of(context)
|
|
||||||
.error;
|
|
||||||
} else if (functions
|
|
||||||
.jsonToStr(getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VAW_STATUS''',
|
|
||||||
)) ==
|
|
||||||
'\"I\"') {
|
|
||||||
return FlutterFlowTheme.of(context)
|
|
||||||
.warning;
|
|
||||||
} else {
|
|
||||||
return FlutterFlowTheme.of(context)
|
|
||||||
.primary;
|
|
||||||
}
|
|
||||||
}(),
|
|
||||||
FlutterFlowTheme.of(context).primary,
|
|
||||||
),
|
|
||||||
borderRadius: const BorderRadius.only(
|
|
||||||
bottomLeft: Radius.circular(0.0),
|
|
||||||
bottomRight: Radius.circular(0.0),
|
|
||||||
topLeft: Radius.circular(25.0),
|
|
||||||
topRight: Radius.circular(25.0),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
|
||||||
child: Text(
|
|
||||||
getJsonField(
|
|
||||||
visitHistoryItem,
|
|
||||||
r'''$.VTE_NOME''',
|
|
||||||
).toString(),
|
|
||||||
textAlign: TextAlign.center,
|
|
||||||
style: FlutterFlowTheme.of(context)
|
|
||||||
.bodyMedium
|
|
||||||
.override(
|
|
||||||
fontFamily:
|
|
||||||
FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily,
|
|
||||||
color: FlutterFlowTheme.of(context)
|
|
||||||
.info,
|
|
||||||
fontSize: 12.0,
|
|
||||||
letterSpacing: 0.0,
|
|
||||||
useGoogleFonts: GoogleFonts.asMap()
|
|
||||||
.containsKey(
|
|
||||||
FlutterFlowTheme.of(context)
|
|
||||||
.bodyMediumFamily),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
},
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue