This commit is contained in:
FlutterFlow 2024-07-26 19:14:10 +00:00
parent 54ee3ebda0
commit dadbaff7a0
80 changed files with 5924 additions and 6079 deletions

View File

@ -44,8 +44,8 @@
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>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
6436409B27A31CDD00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409227A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409127A31CDF00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409E27A31CD200820AF7 /* 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>"; };
/* End PBXFileReference section */
@ -225,8 +225,8 @@
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
6436409B27A31CDD00820AF7 /* pt */,
6436409227A31CD500820AF7 /* en */,
6436409127A31CDF00820AF7 /* pt */,
6436409E27A31CD200820AF7 /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";

View File

@ -1,7 +1,7 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/modals/throw_exception/throw_exception_widget.dart';
import '/actions/actions.dart' as action_blocks;
import '/custom_code/actions/index.dart' as actions;
import '/flutter_flow/random_data_util.dart' as random_data;

View File

@ -1,12 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'local_profile_component_widget.dart' show LocalProfileComponentWidget;
import 'package:flutter/material.dart';
class LocalProfileComponentModel
extends FlutterFlowModel<LocalProfileComponentWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@ -1,151 +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 'local_profile_component_model.dart';
export 'local_profile_component_model.dart';
class LocalProfileComponentWidget extends StatefulWidget {
const LocalProfileComponentWidget({super.key});
@override
State<LocalProfileComponentWidget> createState() =>
_LocalProfileComponentWidgetState();
}
class _LocalProfileComponentWidgetState
extends State<LocalProfileComponentWidget> {
late LocalProfileComponentModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => LocalProfileComponentModel());
}
@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(
decoration: const BoxDecoration(),
child: Align(
alignment: const AlignmentDirectional(0.0, -1.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),
),
),
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Align(
alignment: const AlignmentDirectional(-1.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: 80.0,
height: 80.0,
fit: BoxFit.cover,
alignment: const Alignment(0.0, 0.0),
errorBuilder: (context, error, stackTrace) =>
Image.asset(
'assets/images/error_image.svg',
width: 80.0,
height: 80.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).info,
fontSize: 14.0,
letterSpacing: 0.0,
fontWeight: FontWeight.w500,
useGoogleFonts:
GoogleFonts.asMap().containsKey('Nunito'),
),
),
],
),
]
.divide(const SizedBox(width: 20.0))
.addToStart(const SizedBox(width: 20.0))
.addToEnd(const SizedBox(width: 20.0)),
),
),
),
),
),
);
}
}

View File

@ -1,117 +0,0 @@
import '/components/molecular_components/option_selection_modal/option_selection_modal_widget.dart';
import '/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart';
import '/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'menu_component_widget.dart' show MenuComponentWidget;
import 'package:flutter/material.dart';
class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
/// Local state fields for this component.
bool isGrid = false;
/// State fields for stateful widgets in this component.
// Model for menuListViewComponent.
late MenuListViewComponentModel menuListViewComponentModel;
// Model for menuStaggeredViewComponent.
late MenuStaggeredViewComponentModel menuStaggeredViewComponentModel;
@override
void initState(BuildContext context) {
menuListViewComponentModel =
createModel(context, () => MenuListViewComponentModel());
menuStaggeredViewComponentModel =
createModel(context, () => MenuStaggeredViewComponentModel());
}
@override
void dispose() {
menuListViewComponentModel.dispose();
menuStaggeredViewComponentModel.dispose();
}
/// Action blocks.
Future changeMenuStyle(BuildContext context) async {
isGrid = !isGrid;
}
Future scheduleVisitOptAction(BuildContext context) async {
await showModalBottomSheet(
isScrollControlled: true,
backgroundColor: Colors.transparent,
enableDrag: false,
context: context,
builder: (context) {
return Padding(
padding: MediaQuery.viewInsetsOf(context),
child: const OptionSelectionModalWidget(),
);
},
);
}
Future registerVisitorOptAction(BuildContext context) async {
context.pushNamed(
'registerVisitorPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
Future peopleOnThePropertyAction(BuildContext context) async {
context.pushNamed(
'peopleOnThePropertyPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.fade,
),
},
);
}
Future acessHistoryOptAction(BuildContext context) async {
context.pushNamed(
'acessHistoryPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
Future liberationHistoryOptAction(BuildContext context) async {
context.pushNamed(
'liberationHistory',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
Future accessQRCodeOptAction(BuildContext context) async {
context.pushNamed(
'qrCodePage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
}

View File

@ -1,120 +0,0 @@
import '/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart';
import '/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'package:flutter/material.dart';
import 'menu_component_model.dart';
export 'menu_component_model.dart';
class MenuComponentWidget extends StatefulWidget {
const MenuComponentWidget({super.key});
@override
State<MenuComponentWidget> createState() => _MenuComponentWidgetState();
}
class _MenuComponentWidgetState extends State<MenuComponentWidget> {
late MenuComponentModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => MenuComponentModel());
}
@override
void dispose() {
_model.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
child: Builder(
builder: (context) {
if (_model.isGrid == true) {
return wrapWithModel(
model: _model.menuListViewComponentModel,
updateCallback: () => setState(() {}),
updateOnChange: true,
child: MenuListViewComponentWidget(
changeMenuStyle: () async {
await _model.changeMenuStyle(context);
setState(() {});
},
registerVisitorOptAction: () async {
await _model.registerVisitorOptAction(context);
setState(() {});
},
scheduleVisitOptAction: () async {
await _model.scheduleVisitOptAction(context);
setState(() {});
},
peopleOnThePropertyOptAction: () async {
await _model.peopleOnThePropertyAction(context);
setState(() {});
},
acessHistoryOptAction: () async {
await _model.acessHistoryOptAction(context);
setState(() {});
},
liberationHistoryOptAction: () async {
await _model.liberationHistoryOptAction(context);
setState(() {});
},
accessQRCodeOptAction: () async {
await _model.accessQRCodeOptAction(context);
setState(() {});
},
),
);
} else {
return wrapWithModel(
model: _model.menuStaggeredViewComponentModel,
updateCallback: () => setState(() {}),
updateOnChange: true,
child: MenuStaggeredViewComponentWidget(
changeMenuStyleAction: () async {
await _model.changeMenuStyle(context);
setState(() {});
},
registerVisitorOptAction: () async {
await _model.registerVisitorOptAction(context);
setState(() {});
},
scheduleVisitOptAction: () async {
await _model.scheduleVisitOptAction(context);
setState(() {});
},
peopleOnThePropertyOptAction: () async {
await _model.peopleOnThePropertyAction(context);
setState(() {});
},
accessHistoryOptAction: () async {
await _model.acessHistoryOptAction(context);
setState(() {});
},
liberationHistoryOptAction: () async {
await _model.liberationHistoryOptAction(context);
setState(() {});
},
accessQRCodeOptAction: () async {
await _model.accessQRCodeOptAction(context);
setState(() {});
},
),
);
}
},
),
);
}
}

View File

@ -1,12 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'menu_list_view_component_widget.dart' show MenuListViewComponentWidget;
import 'package:flutter/material.dart';
class MenuListViewComponentModel
extends FlutterFlowModel<MenuListViewComponentWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@ -1,13 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'menu_staggered_view_component_widget.dart'
show MenuStaggeredViewComponentWidget;
import 'package:flutter/material.dart';
class MenuStaggeredViewComponentModel
extends FlutterFlowModel<MenuStaggeredViewComponentWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@ -1,12 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'message_well_component_widget.dart' show MessageWellComponentWidget;
import 'package:flutter/material.dart';
class MessageWellComponentModel
extends FlutterFlowModel<MessageWellComponentWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@ -1,125 +0,0 @@
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 'message_well_component_model.dart';
export 'message_well_component_model.dart';
class MessageWellComponentWidget extends StatefulWidget {
const MessageWellComponentWidget({super.key});
@override
State<MessageWellComponentWidget> createState() =>
_MessageWellComponentWidgetState();
}
class _MessageWellComponentWidgetState
extends State<MessageWellComponentWidget> {
late MessageWellComponentModel _model;
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => MessageWellComponentModel());
}
@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(0.0, 40.0, 0.0, 0.0),
child: Container(
width: double.infinity,
height: 167.0,
decoration: const BoxDecoration(),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.end,
children: [
Text(
FFLocalizations.of(context).getText(
'8fworxmb' /* Mural de Mensagens */,
),
style: FlutterFlowTheme.of(context).bodyMedium.override(
fontFamily: 'Nunito Sans',
letterSpacing: 0.0,
useGoogleFonts:
GoogleFonts.asMap().containsKey('Nunito Sans'),
),
),
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 5.0, 0.0, 0.0),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context).getText(
'yikill36' /* Todos */,
),
options: FFButtonOptions(
width: 260.0,
height: 20.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: const Color(0xFF1AAB5F),
textStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
color: FlutterFlowTheme.of(context).customColor4,
letterSpacing: 0.0,
fontWeight: FontWeight.normal,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
),
elevation: 3.0,
borderSide: const BorderSide(
color: Colors.transparent,
width: 1.0,
),
borderRadius: BorderRadius.circular(8.0),
),
),
),
Expanded(
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
child: Container(
width: 464.0,
height: 127.0,
decoration: const BoxDecoration(
shape: BoxShape.rectangle,
),
child: ListView(
padding: EdgeInsets.zero,
scrollDirection: Axis.vertical,
children: const [],
),
),
),
),
],
),
),
),
);
}
}

View File

@ -1,61 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'sign_in_template_component_widget.dart'
show SignInTemplateComponentWidget;
import 'package:flutter/material.dart';
class SignInTemplateComponentModel
extends FlutterFlowModel<SignInTemplateComponentWidget> {
/// State fields for stateful widgets in this component.
final formKey = GlobalKey<FormState>();
// State field(s) for emailAddress widget.
FocusNode? emailAddressFocusNode;
TextEditingController? emailAddressTextController;
String? Function(BuildContext, String?)? emailAddressTextControllerValidator;
String? _emailAddressTextControllerValidator(
BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'xhnawzcb' /* Campo é necessário */,
);
}
if (!RegExp(kTextValidatorEmailRegex).hasMatch(val)) {
return FFLocalizations.of(context).getText(
's3j1hjqx' /* E-mail Inv */,
);
}
return null;
}
// State field(s) for password widget.
FocusNode? passwordFocusNode;
TextEditingController? passwordTextController;
late bool passwordVisibility;
String? Function(BuildContext, String?)? passwordTextControllerValidator;
String? _passwordTextControllerValidator(BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'9cs5wlmc' /* Campo é necessário */,
);
}
return null;
}
@override
void initState(BuildContext context) {
emailAddressTextControllerValidator = _emailAddressTextControllerValidator;
passwordVisibility = false;
passwordTextControllerValidator = _passwordTextControllerValidator;
}
@override
void dispose() {
emailAddressFocusNode?.dispose();
emailAddressTextController?.dispose();
passwordFocusNode?.dispose();
passwordTextController?.dispose();
}
}

View File

@ -1,91 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'sign_up_template_component_widget.dart'
show SignUpTemplateComponentWidget;
import 'package:flutter/material.dart';
class SignUpTemplateComponentModel
extends FlutterFlowModel<SignUpTemplateComponentWidget> {
/// State fields for stateful widgets in this component.
final formKey = GlobalKey<FormState>();
// State field(s) for nameRegisterForm widget.
FocusNode? nameRegisterFormFocusNode;
TextEditingController? nameRegisterFormTextController;
String? Function(BuildContext, String?)?
nameRegisterFormTextControllerValidator;
String? _nameRegisterFormTextControllerValidator(
BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'3bs10dfq' /* Campo é necessário */,
);
}
if (!RegExp(kTextValidatorUsernameRegex).hasMatch(val)) {
return 'Must start with a letter and can only contain letters, digits and - or _.';
}
return null;
}
// State field(s) for emailRegisterForm widget.
FocusNode? emailRegisterFormFocusNode;
TextEditingController? emailRegisterFormTextController;
String? Function(BuildContext, String?)?
emailRegisterFormTextControllerValidator;
String? _emailRegisterFormTextControllerValidator(
BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'mlvw63yj' /* Campo é necessário */,
);
}
if (!RegExp(kTextValidatorEmailRegex).hasMatch(val)) {
return 'Has to be a valid email address.';
}
return null;
}
// State field(s) for passwordRegisterForm widget.
FocusNode? passwordRegisterFormFocusNode;
TextEditingController? passwordRegisterFormTextController;
late bool passwordRegisterFormVisibility;
String? Function(BuildContext, String?)?
passwordRegisterFormTextControllerValidator;
String? _passwordRegisterFormTextControllerValidator(
BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'6nn79lmh' /* Campo é necessário */,
);
}
return null;
}
// Stores action output result for [Action Block - signUpRegisterAction] action in SignUpButtonRegisterForm widget.
bool? signUp;
@override
void initState(BuildContext context) {
nameRegisterFormTextControllerValidator =
_nameRegisterFormTextControllerValidator;
emailRegisterFormTextControllerValidator =
_emailRegisterFormTextControllerValidator;
passwordRegisterFormVisibility = false;
passwordRegisterFormTextControllerValidator =
_passwordRegisterFormTextControllerValidator;
}
@override
void dispose() {
nameRegisterFormFocusNode?.dispose();
nameRegisterFormTextController?.dispose();
emailRegisterFormFocusNode?.dispose();
emailRegisterFormTextController?.dispose();
passwordRegisterFormFocusNode?.dispose();
passwordRegisterFormTextController?.dispose();
}
}

View File

@ -1,866 +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_animate/flutter_animate.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'sign_up_template_component_model.dart';
export 'sign_up_template_component_model.dart';
class SignUpTemplateComponentWidget extends StatefulWidget {
const SignUpTemplateComponentWidget({
super.key,
required this.toggleSignInPage,
});
final Future Function()? toggleSignInPage;
@override
State<SignUpTemplateComponentWidget> createState() =>
_SignUpTemplateComponentWidgetState();
}
class _SignUpTemplateComponentWidgetState
extends State<SignUpTemplateComponentWidget> with TickerProviderStateMixin {
late SignUpTemplateComponentModel _model;
final animationsMap = <String, AnimationInfo>{};
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => SignUpTemplateComponentModel());
_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.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return 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(
'49609olv' /* 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: [
Form(
key: _model.formKey,
autovalidateMode:
AutovalidateMode.disabled,
child: Column(
mainAxisSize: MainAxisSize.max,
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(
isDense: true,
labelText:
FFLocalizations.of(
context)
.getText(
'3corpwhd' /* 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.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
focusedBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterFlowTheme.of(
context)
.success,
width: 0.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
errorBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterFlowTheme.of(
context)
.error,
width: 0.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterFlowTheme.of(
context)
.error,
width: 0.25,
),
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(
isDense: true,
labelText:
FFLocalizations.of(
context)
.getText(
'80wonb69' /* 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.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
focusedBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterFlowTheme.of(
context)
.success,
width: 0.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
errorBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterFlowTheme.of(
context)
.error,
width: 0.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide: BorderSide(
color:
FlutterFlowTheme.of(
context)
.error,
width: 0.25,
),
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(
isDense: true,
labelText:
FFLocalizations.of(
context)
.getText(
'0firji8l' /* 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.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
focusedBorder:
OutlineInputBorder(
borderSide: const BorderSide(
color:
Color(0xFF1AAB5F),
width: 0.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
errorBorder:
OutlineInputBorder(
borderSide: const BorderSide(
color:
Color(0xFFFF5963),
width: 0.25,
),
borderRadius:
BorderRadius.circular(
12.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide: const BorderSide(
color:
Color(0xFFFF5963),
width: 0.25,
),
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: (((_model.nameRegisterFormTextController
.text !=
'') ||
((_model.nameRegisterFormFocusNode?.hasFocus ??
false) !=
null)) &&
((_model.emailRegisterFormTextController
.text !=
'') ||
((_model.emailRegisterFormFocusNode
?.hasFocus ??
false) !=
null)) &&
((_model.passwordRegisterFormTextController
.text !=
'') ||
((_model.passwordRegisterFormFocusNode
?.hasFocus ??
false) !=
null)))
? null
: () async {
var shouldSetState = false;
_model.signUp =
await action_blocks
.signUpRegisterAction(
context,
name: _model
.nameRegisterFormTextController
.text,
passwd: _model
.passwordRegisterFormTextController
.text,
email: _model
.emailRegisterFormTextController
.text,
device: FFAppState().device,
);
shouldSetState = true;
if (_model.signUp == true) {
await widget
.toggleSignInPage
?.call();
} else {
if (shouldSetState) {
setState(() {});
}
return;
}
if (shouldSetState) {
setState(() {});
}
},
text: FFLocalizations.of(context)
.getText(
'rnvdwzei' /* 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 {
await widget.toggleSignInPage
?.call();
},
child: RichText(
textScaler: MediaQuery.of(context)
.textScaler,
text: TextSpan(
children: [
TextSpan(
text: FFLocalizations.of(
context)
.getText(
'a9smhn5b' /* Você já tem uma conta? */,
),
style: TextStyle(
color: FlutterFlowTheme.of(
context)
.primaryText,
),
),
TextSpan(
text: FFLocalizations.of(
context)
.getText(
'09xv5ctc' /* 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(
'huygnka2' /* 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),
),
),
],
),
),
),
),
),
],
);
}
}

View File

@ -1,13 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'welcome_template_component_widget.dart'
show WelcomeTemplateComponentWidget;
import 'package:flutter/material.dart';
class WelcomeTemplateComponentModel
extends FlutterFlowModel<WelcomeTemplateComponentWidget> {
@override
void initState(BuildContext context) {}
@override
void dispose() {}
}

View File

@ -1,445 +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_animate/flutter_animate.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'welcome_template_component_model.dart';
export 'welcome_template_component_model.dart';
class WelcomeTemplateComponentWidget extends StatefulWidget {
const WelcomeTemplateComponentWidget({
super.key,
required this.toggleSignUpPage,
required this.toggleSignInPage,
});
final Future Function()? toggleSignUpPage;
final Future Function()? toggleSignInPage;
@override
State<WelcomeTemplateComponentWidget> createState() =>
_WelcomeTemplateComponentWidgetState();
}
class _WelcomeTemplateComponentWidgetState
extends State<WelcomeTemplateComponentWidget>
with TickerProviderStateMixin {
late WelcomeTemplateComponentModel _model;
final animationsMap = <String, AnimationInfo>{};
@override
void setState(VoidCallback callback) {
super.setState(callback);
_model.onUpdate();
}
@override
void initState() {
super.initState();
_model = createModel(context, () => WelcomeTemplateComponentModel());
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.maybeDispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return 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(
'dsc9tuc8' /* 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(
'5bgqn16z' /* 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 {
await widget.toggleSignInPage?.call();
},
text:
FFLocalizations.of(context).getText(
'dynet730' /* 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 {
await widget.toggleSignUpPage?.call();
},
text:
FFLocalizations.of(context).getText(
'hha60cg7' /* 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)
.primaryBackground,
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 {
await widget.toggleSignInPage
?.call();
},
text: FFLocalizations.of(context)
.getText(
'zvtay8ee' /* 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,
),
),
),
Expanded(
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(
0.0, 0.0, 0.0, 16.0),
child: FFButtonWidget(
onPressed: () async {
await widget.toggleSignUpPage
?.call();
},
text: FFLocalizations.of(context)
.getText(
'o6zob50a' /* 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)
.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,
),
),
),
].divide(const SizedBox(width: 7.0)),
);
}
},
),
],
),
),
),
).animateOnPageLoad(
animationsMap['containerOnPageLoadAnimation']!),
),
),
],
),
),
);
}
}

View File

@ -151,6 +151,86 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'FRE ACCESS',
'en': 'FREE ACCESS',
},
'b2qdcsh0': {
'pt': 'Agendar \nVisita',
'en': '',
},
'intigjrx': {
'pt': 'Cadastrar\nVisitante',
'en': '',
},
'dcpn2r8i': {
'pt': 'Vincular \nCondomínio',
'en': '',
},
'rt57fpea': {
'pt': 'Cadastrar \nPet',
'en': '',
},
'e7o77oeh': {
'pt': 'QR Code \nde Acesso',
'en': '',
},
'xua67fn9': {
'pt': 'Pessoas na\nPropriedade',
'en': '',
},
'hli1jd0i': {
'pt': 'Consultar \nHistóricos',
'en': '',
},
'kbvld4ht': {
'pt': 'Histórico \nde Acesso',
'en': '',
},
'csz6cjye': {
'pt': 'Histórico \nde Liberação',
'en': '',
},
'lzag0674': {
'pt': 'Agendar \nVisita',
'en': '',
},
'mopkb1cs': {
'pt': 'Cadastrar\n Visitante',
'en': '',
},
'9n0bfmlf': {
'pt': 'Vincular\nCondomínio',
'en': '',
},
'3hkp1x8r': {
'pt': 'Cadastrar\nPet',
'en': '',
},
'fi81uwmz': {
'pt': 'QR Code\nde Acesso',
'en': '',
},
'1djx7nvm': {
'pt': 'Pessoas na\nPropriedade',
'en': '',
},
'ttj9zmi8': {
'pt': 'Histórico\nde Acesso',
'en': '',
},
'h989n5uy': {
'pt': 'Histórico\nde Liberação',
'en': '',
},
'fx7ci8gw': {
'pt': 'Preferencias\ndo Sistema',
'en': '',
},
'rgpcq2s6': {
'pt': 'Mural de Mensagens',
'en': '',
},
'bdvbpuo8': {
'pt': 'Todos',
'en': '',
},
'mp6igsok': {
'pt': '',
'en': '',
@ -424,6 +504,66 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
},
// signInPage
{
'v9f4ae9n': {
'pt': 'VAMOS LA! ENTRE COM A SUA CONTA',
'en': '',
},
'i6dx9dz4': {
'pt': 'Email',
'en': '',
},
'kpsqzbuz': {
'pt': 'Senha',
'en': '',
},
'aobfkrs0': {
'pt': 'Campo é necessário',
'en': '',
},
'axa3n3lr': {
'pt': 'E-mail Inv',
'en': '',
},
'1z37vela': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'9h4qk3c9': {
'pt': 'Campo é necessário',
'en': '',
},
'5v5xvc3b': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'q4tx90yp': {
'pt': 'Entrar',
'en': '',
},
'lzfmqkly': {
'pt': 'Cadastrar',
'en': '',
},
'7niwis9z': {
'pt': 'Entrar',
'en': '',
},
'bl377mgi': {
'pt': 'Cadastrar',
'en': '',
},
'7dntd49d': {
'pt': 'Você esqueceu a sua senha?',
'en': '',
},
'31y04wkg': {
'pt': ' Recupere aqui',
'en': '',
},
'jou5axcb': {
'pt': 'Termo de Uso',
'en': '',
},
'kosqqghj': {
'pt': 'Home',
'en': '',
@ -431,6 +571,66 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
},
// signUpPage
{
'bv7d4en2': {
'pt': 'INSIRA SEU EMAIL E SENHA, VAMOS TE CADASTRAR!',
'en': '',
},
'evcb30xo': {
'pt': 'Nome',
'en': '',
},
'p7snp67t': {
'pt': 'Email',
'en': '',
},
'l0z1d0ca': {
'pt': '',
'en': '',
},
'u30lpbvg': {
'pt': 'Senha',
'en': '',
},
'iv6d5xk3': {
'pt': 'Campo é necessário',
'en': '',
},
'51g9xnav': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'w3nl41ps': {
'pt': 'Campo é necessário',
'en': '',
},
'9aweyu6u': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'ql1bxvno': {
'pt': 'Campo é necessário',
'en': '',
},
'2cwu613g': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'2a4f1t3w': {
'pt': 'Cadastrar-se',
'en': '',
},
'uy41jbvn': {
'pt': 'Você já tem uma conta? ',
'en': '',
},
'ynungy80': {
'pt': 'Clique aqui',
'en': '',
},
'r5rm6pll': {
'pt': 'Termo de Uso',
'en': '',
},
'bq5k4yne': {
'pt': 'Home',
'en': '',
@ -438,6 +638,30 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
},
// welcomePage
{
'77d2ypub': {
'pt': 'UMA EXPERIÊCIA COMPLETA',
'en': '',
},
'avhdhlhw': {
'pt': 'COM CONFORTO ONDE VOCÊ ESTIVER.',
'en': '',
},
'iw9yx5fr': {
'pt': 'Entrar',
'en': '',
},
'bs5mbse6': {
'pt': 'Cadastrar',
'en': '',
},
'cq85bqnj': {
'pt': 'Entrar',
'en': '',
},
'iupuq6xs': {
'pt': 'Cadastrar',
'en': '',
},
'byab1t50': {
'pt': 'Home',
'en': '',
@ -474,28 +698,6 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'en': '',
},
},
// preferencesPage
{
'1vyj6y7n': {
'pt': 'Preferencias',
'en': '',
},
'sejj3t8w': {
'pt': '',
'en': '',
},
},
// settingsPage
{
'bc698859': {
'pt': 'Preferencias',
'en': '',
},
'sejj3t8w': {
'pt': '',
'en': '',
},
},
// visitorDetailsModalTemplateComponent
{
'kqzf7nx2': {
@ -769,248 +971,6 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'en': 'Schedule\nComplete',
},
},
// menuListViewComponent
{
'utgue9a5': {
'pt': 'Agendar \nVisita',
'en': 'Schedule \nVisit',
},
'82b5f8yz': {
'pt': 'Cadastrar\nVisitante',
'en': 'Register\nVisitor',
},
't4ie13ut': {
'pt': 'Vincular \nCondomínio',
'en': 'Link\nCondominium',
},
'n3n76pha': {
'pt': 'Cadastrar \nPet',
'en': 'Register\npet',
},
'l6b9o7yn': {
'pt': 'QR Code \nde Acesso',
'en': 'QR Code\nAccess',
},
'rxnrtdau': {
'pt': 'Pessoas na\nPropriedade',
'en': 'People on\nthe Property',
},
'nxssjz3q': {
'pt': 'Consultar \nHistóricos',
'en': 'Consult \nHistories',
},
'589qufkw': {
'pt': 'Histórico \nde Acesso',
'en': 'Access \nHistory',
},
'944g4ib1': {
'pt': 'Histórico \nde Liberação',
'en': 'Liberation\nHistory',
},
},
// menuStaggeredViewComponent
{
'ee33l0ms': {
'pt': 'Agendar \nVisita',
'en': 'Schedule \nVisit',
},
'ya37l3jt': {
'pt': 'Cadastrar\n Visitante',
'en': 'Register\n Visitor',
},
'h8s3adu8': {
'pt': 'Vincular\nCondomínio',
'en': 'Link\nCondominium',
},
'j6tfixen': {
'pt': 'Cadastrar\nPet',
'en': 'Register\npet',
},
'9tli4i2x': {
'pt': 'QR Code\nde Acesso',
'en': 'QR Code\nAccess',
},
'i22hecs8': {
'pt': 'Pessoas na\nPropriedade',
'en': 'People on\nthe Property',
},
'6jzghbyi': {
'pt': 'Histórico\nde Acesso',
'en': 'Access\nHistory',
},
'u8qu4v6q': {
'pt': 'Histórico\nde Liberação',
'en': 'Liberation\nHistory',
},
'dzk31zpc': {
'pt': 'Preferencias\ndo Sistema',
'en': '',
},
},
// messageWellComponent
{
'8fworxmb': {
'pt': 'Mural de Mensagens',
'en': 'Message Wall',
},
'yikill36': {
'pt': 'Todos',
'en': 'All',
},
},
// signInTemplateComponent
{
'9hbdjxrz': {
'pt': 'VAMOS LA! ENTRE COM A SUA CONTA',
'en': 'LET\'S GO! SIGN IN WITH YOUR ACCOUNT',
},
'1ltg0ylb': {
'pt': 'Email',
'en': 'Email',
},
'2x19ce8k': {
'pt': 'Senha',
'en': 'Password',
},
'xhnawzcb': {
'pt': 'Campo é necessário',
'en': 'Field is required',
},
's3j1hjqx': {
'pt': 'E-mail Inv',
'en': '',
},
'2ib9bf67': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'9cs5wlmc': {
'pt': 'Campo é necessário',
'en': 'Field is required',
},
'rkxwb0sg': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'k44tm7wo': {
'pt': 'Entrar',
'en': 'Sign-In',
},
'14u7ipws': {
'pt': 'Cadastrar',
'en': 'Sign-Up',
},
'1x926nsn': {
'pt': 'Entrar',
'en': 'Sign-In',
},
'jwvd4ai1': {
'pt': 'Cadastrar',
'en': 'Sign-Up',
},
'05dx91ku': {
'pt': 'Você esqueceu a sua senha?',
'en': 'Have you forgotten your password?',
},
'p5c6d54y': {
'pt': ' Recupere aqui',
'en': ' recover here',
},
'olf967cj': {
'pt': 'Termo de Uso',
'en': 'Terms of use',
},
},
// signUpTemplateComponent
{
'49609olv': {
'pt': 'INSIRA SEU EMAIL E SENHA, VAMOS TE CADASTRAR!',
'en': 'ENTER YOUR EMAIL AND PASSWORD, LET\'S REGISTER YOU!',
},
'3corpwhd': {
'pt': 'Nome',
'en': 'Name',
},
'80wonb69': {
'pt': 'Email',
'en': 'Email',
},
'ws143wf4': {
'pt': '',
'en': '',
},
'0firji8l': {
'pt': 'Senha',
'en': 'Password',
},
'3bs10dfq': {
'pt': 'Campo é necessário',
'en': 'Field is required',
},
'ph22karc': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'mlvw63yj': {
'pt': 'Campo é necessário',
'en': 'Field is required',
},
'z0bv6wi2': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'6nn79lmh': {
'pt': 'Campo é necessário',
'en': 'Field is required',
},
'rcikqhf1': {
'pt': 'Please choose an option from the dropdown',
'en': '',
},
'rnvdwzei': {
'pt': 'Cadastrar-se',
'en': 'Sign-Up',
},
'a9smhn5b': {
'pt': 'Você já tem uma conta? ',
'en': 'You already have an account?',
},
'09xv5ctc': {
'pt': 'Clique aqui',
'en': 'Click here',
},
'huygnka2': {
'pt': 'Termo de Uso',
'en': '',
},
},
// welcomeTemplateComponent
{
'dsc9tuc8': {
'pt': 'UMA EXPERIÊCIA COMPLETA',
'en': 'A COMPLETE EXPERIENCE',
},
'5bgqn16z': {
'pt': 'COM CONFORTO ONDE VOCÊ ESTIVER.',
'en': 'WITH COMFORT WHEREVER YOU ARE.',
},
'dynet730': {
'pt': 'Entrar',
'en': 'Sign-In',
},
'hha60cg7': {
'pt': 'Cadastrar',
'en': 'Sign-Up',
},
'zvtay8ee': {
'pt': 'Entrar',
'en': 'Sign-In',
},
'o6zob50a': {
'pt': 'Cadastrar',
'en': 'Sign-Up',
},
},
// forgotPasswordTemplateComponent
{
'xxm3ajsy': {

View File

@ -6,7 +6,6 @@ import 'package:provider/provider.dart';
import '/backend/schema/structs/index.dart';
import '/index.dart';
import '/main.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
@ -63,9 +62,7 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) => GoRouter(
FFRoute(
name: 'homePage',
path: '/homePage',
builder: (context, params) => params.isEmpty
? const NavBarPage(initialPage: 'homePage')
: const HomePageWidget(),
builder: (context, params) => const HomePageWidget(),
),
FFRoute(
name: 'registerVisitorPage',
@ -150,18 +147,6 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) => GoRouter(
name: 'qrCodePage',
path: '/qrCodePage',
builder: (context, params) => const QrCodePageWidget(),
),
FFRoute(
name: 'preferencesPage',
path: '/preferencesPage',
builder: (context, params) => const PreferencesPageWidget(),
),
FFRoute(
name: 'settingsPage',
path: '/settingsPage',
builder: (context, params) => params.isEmpty
? const NavBarPage(initialPage: 'settingsPage')
: const SettingsPageWidget(),
)
].map((r) => r.toRoute(appStateNotifier)).toList(),
);

View File

@ -16,6 +16,3 @@ export '/pages/sign_in_page/sign_in_page_widget.dart' show SignInPageWidget;
export '/pages/sign_up_page/sign_up_page_widget.dart' show SignUpPageWidget;
export '/pages/welcome_page/welcome_page_widget.dart' show WelcomePageWidget;
export '/pages/qr_code_page/qr_code_page_widget.dart' show QrCodePageWidget;
export '/pages/preferences_page/preferences_page_widget.dart'
show PreferencesPageWidget;
export '/pages/settings_page/settings_page_widget.dart' show SettingsPageWidget;

View File

@ -6,7 +6,6 @@ import 'package:flutter_web_plugins/url_strategy.dart';
import 'flutter_flow/flutter_flow_theme.dart';
import 'flutter_flow/flutter_flow_util.dart';
import 'flutter_flow/internationalization.dart';
import 'index.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
@ -120,74 +119,3 @@ class _MyAppState extends State<MyApp> {
);
}
}
class NavBarPage extends StatefulWidget {
const NavBarPage({super.key, this.initialPage, this.page});
final String? initialPage;
final Widget? page;
@override
_NavBarPageState createState() => _NavBarPageState();
}
/// This is the private State class that goes with NavBarPage.
class _NavBarPageState extends State<NavBarPage> {
String _currentPageName = 'homePage';
late Widget? _currentPage;
@override
void initState() {
super.initState();
_currentPageName = widget.initialPage ?? _currentPageName;
_currentPage = widget.page;
}
@override
Widget build(BuildContext context) {
final tabs = {
'homePage': const HomePageWidget(),
'settingsPage': const SettingsPageWidget(),
};
final currentIndex = tabs.keys.toList().indexOf(_currentPageName);
return Scaffold(
body: _currentPage ?? tabs[_currentPageName],
bottomNavigationBar: BottomNavigationBar(
currentIndex: currentIndex,
onTap: (i) => setState(() {
_currentPage = null;
_currentPageName = tabs.keys.toList()[i];
}),
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
selectedItemColor: FlutterFlowTheme.of(context).primary,
unselectedItemColor: FlutterFlowTheme.of(context).primaryText,
showSelectedLabels: false,
showUnselectedLabels: false,
type: BottomNavigationBarType.fixed,
items: <BottomNavigationBarItem>[
BottomNavigationBarItem(
icon: const Icon(
Icons.home,
size: 24.0,
),
label: FFLocalizations.of(context).getText(
'mp6igsok' /* */,
),
tooltip: '',
),
BottomNavigationBarItem(
icon: const Icon(
Icons.settings_rounded,
size: 24.0,
),
label: FFLocalizations.of(context).getText(
'sejj3t8w' /* */,
),
tooltip: '',
)
],
),
);
}
}

View File

@ -1,8 +1,8 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import '/modals/throw_exception/throw_exception_widget.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'forgot_password_template_component_model.dart';

View File

@ -1,11 +1,11 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/flutter_flow/flutter_flow_drop_down.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import '/flutter_flow/form_field_controller.dart';
import '/flutter_flow/upload_data.dart';
import '/modals/throw_exception/throw_exception_widget.dart';
import '/custom_code/actions/index.dart' as actions;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

View File

@ -1,9 +1,9 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/components/templates_components/visitor_details_modal_template_component/visitor_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 '/modals/throw_exception/throw_exception_widget.dart';
import '/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/flutter_flow/custom_functions.dart' as functions;
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';

View File

@ -1,9 +1,9 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/components/templates_components/visitor_details_modal_template_component/visitor_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 '/modals/throw_exception/throw_exception_widget.dart';
import '/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/actions/actions.dart' as action_blocks;
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';

View File

@ -1,6 +1,6 @@
import '/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart';
import '/components/templates_components/view_visit_detail/view_visit_detail_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/modals/schedule_visit_detail/schedule_visit_detail_widget.dart';
import '/modals/view_visit_detail/view_visit_detail_widget.dart';
import 'visit_details_modal_template_component_widget.dart'
show VisitDetailsModalTemplateComponentWidget;
import 'package:flutter/material.dart';

View File

@ -1,6 +1,6 @@
import '/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart';
import '/components/templates_components/view_visit_detail/view_visit_detail_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/modals/schedule_visit_detail/schedule_visit_detail_widget.dart';
import '/modals/view_visit_detail/view_visit_detail_widget.dart';
import 'package:flutter/material.dart';
import 'visit_details_modal_template_component_model.dart';
export 'visit_details_modal_template_component_model.dart';

View File

@ -1,8 +1,8 @@
import '/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_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/flutter_flow_widgets.dart';
import '/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'visitor_not_found_component_model.dart';

View File

@ -1,10 +1,10 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart';
import '/components/templates_components/visitor_details_modal_template_component/visitor_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/flutter_flow_widgets.dart';
import '/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/modals/visitor_not_found_component/visitor_not_found_component_widget.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

View File

@ -1,6 +1,6 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/opt_modal/opt_modal_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/modals/opt_modal/opt_modal_widget.dart';
import '/flutter_flow/request_manager.dart';
import 'acess_history_page_widget.dart' show AcessHistoryPageWidget;

View File

@ -1,8 +1,8 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/opt_modal/opt_modal_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 '/modals/opt_modal/opt_modal_widget.dart';
import '/flutter_flow/custom_functions.dart' as functions;
import 'package:flutter/material.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';

View File

@ -1,6 +1,3 @@
import '/components/organism_components/local_profile_component/local_profile_component_widget.dart';
import '/components/organism_components/menu_component/menu_component_widget.dart';
import '/components/organism_components/message_well_component/message_well_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'home_page_widget.dart' show HomePageWidget;
import 'package:flutter/material.dart';
@ -17,30 +14,14 @@ class HomePageModel extends FlutterFlowModel<HomePageWidget> {
FocusNode? textFieldFocusNode;
TextEditingController? textController;
String? Function(BuildContext, String?)? textControllerValidator;
// Model for localComponent.
late LocalProfileComponentModel localComponentModel;
// Model for menuComponent component.
late MenuComponentModel menuComponentModel;
// Model for messageWellComponent component.
late MessageWellComponentModel messageWellComponentModel;
@override
void initState(BuildContext context) {
localComponentModel =
createModel(context, () => LocalProfileComponentModel());
menuComponentModel = createModel(context, () => MenuComponentModel());
messageWellComponentModel =
createModel(context, () => MessageWellComponentModel());
}
void initState(BuildContext context) {}
@override
void dispose() {
unfocusNode.dispose();
textFieldFocusNode?.dispose();
textController?.dispose();
localComponentModel.dispose();
menuComponentModel.dispose();
messageWellComponentModel.dispose();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,27 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'preferences_page_widget.dart' show PreferencesPageWidget;
import 'package:flutter/material.dart';
class PreferencesPageModel extends FlutterFlowModel<PreferencesPageWidget> {
/// Local state fields for this page.
bool fingerprint = false;
bool? person;
bool? changPass;
bool? notify;
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
@override
void initState(BuildContext context) {}
@override
void dispose() {
unfocusNode.dispose();
}
}

View File

@ -1,167 +0,0 @@
import '/flutter_flow/flutter_flow_icon_button.dart';
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 'preferences_page_model.dart';
export 'preferences_page_model.dart';
class PreferencesPageWidget extends StatefulWidget {
const PreferencesPageWidget({super.key});
@override
State<PreferencesPageWidget> createState() => _PreferencesPageWidgetState();
}
class _PreferencesPageWidgetState extends State<PreferencesPageWidget> {
late PreferencesPageModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => PreferencesPageModel());
}
@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,
appBar: AppBar(
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
automaticallyImplyLeading: false,
title: Text(
FFLocalizations.of(context).getText(
'1vyj6y7n' /* Preferencias */,
),
style: FlutterFlowTheme.of(context).headlineMedium.override(
fontFamily: 'Nunito',
color: FlutterFlowTheme.of(context).primaryText,
fontSize: 17.0,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey('Nunito'),
),
),
actions: const [],
centerTitle: true,
elevation: 0.0,
),
body: SafeArea(
top: true,
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Padding(
padding: const EdgeInsetsDirectional.fromSTEB(20.0, 0.0, 20.0, 0.0),
child: GridView(
padding: const EdgeInsets.fromLTRB(
0,
20.0,
0,
20.0,
),
gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
crossAxisSpacing: 10.0,
mainAxisSpacing: 10.0,
childAspectRatio: 1.0,
),
shrinkWrap: true,
scrollDirection: Axis.vertical,
children: [
FlutterFlowIconButton(
borderRadius: 20.0,
borderWidth: 1.0,
buttonSize: double.infinity,
fillColor: FlutterFlowTheme.of(context).primary,
disabledColor: FlutterFlowTheme.of(context).alternate,
disabledIconColor: FlutterFlowTheme.of(context).primary,
icon: Icon(
Icons.fingerprint,
color: FlutterFlowTheme.of(context).primaryBackground,
size: 40.0,
),
onPressed: _model.fingerprint
? null
: () {
print('IconButton pressed ...');
},
),
FlutterFlowIconButton(
borderRadius: 20.0,
borderWidth: 1.0,
buttonSize: 40.0,
fillColor: FlutterFlowTheme.of(context).primary,
disabledColor: FlutterFlowTheme.of(context).alternate,
disabledIconColor: FlutterFlowTheme.of(context).primary,
icon: Icon(
Icons.person,
color: FlutterFlowTheme.of(context).primaryBackground,
size: 40.0,
),
onPressed: _model.person!
? null
: () {
print('IconButton pressed ...');
},
),
FlutterFlowIconButton(
borderRadius: 20.0,
borderWidth: 1.0,
buttonSize: 40.0,
fillColor: FlutterFlowTheme.of(context).primary,
disabledColor: FlutterFlowTheme.of(context).alternate,
disabledIconColor: FlutterFlowTheme.of(context).primary,
icon: Icon(
Icons.notifications_active,
color: FlutterFlowTheme.of(context).primaryBackground,
size: 40.0,
),
onPressed: _model.notify!
? null
: () {
print('IconButton pressed ...');
},
),
FlutterFlowIconButton(
borderRadius: 20.0,
borderWidth: 1.0,
buttonSize: 40.0,
fillColor: FlutterFlowTheme.of(context).primary,
disabledColor: FlutterFlowTheme.of(context).alternate,
disabledIconColor: FlutterFlowTheme.of(context).primary,
icon: Icon(
Icons.password_sharp,
color: FlutterFlowTheme.of(context).primaryBackground,
size: 40.0,
),
onPressed: _model.changPass!
? null
: () {
print('IconButton pressed ...');
},
),
],
),
),
],
),
),
),
);
}
}

View File

@ -1,9 +1,9 @@
import '/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart';
import '/flutter_flow/flutter_flow_animations.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 '/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart';
import 'dart:async';
import '/flutter_flow/custom_functions.dart' as functions;
import 'package:barcode_widget/barcode_widget.dart';

View File

@ -1,5 +1,4 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/flutter_flow/flutter_flow_drop_down.dart';
import '/flutter_flow/flutter_flow_icon_button.dart';
import '/flutter_flow/flutter_flow_theme.dart';
@ -7,6 +6,7 @@ import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart';
import '/flutter_flow/form_field_controller.dart';
import '/flutter_flow/upload_data.dart';
import '/modals/throw_exception/throw_exception_widget.dart';
import '/custom_code/actions/index.dart' as actions;
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

View File

@ -1,14 +1,14 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart';
import '/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart';
import '/flutter_flow/flutter_flow_drop_down.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 '/flutter_flow/form_field_controller.dart';
import '/modals/throw_exception/throw_exception_widget.dart';
import '/modals/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart';
import '/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart';
import '/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart';
import '/flutter_flow/custom_functions.dart' as functions;
import 'package:auto_size_text/auto_size_text.dart';
import 'package:cached_network_image/cached_network_image.dart';

View File

@ -1,10 +1,10 @@
import '/backend/api_requests/api_calls.dart';
import '/components/molecular_components/throw_exception/throw_exception_widget.dart';
import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_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/flutter_flow_widgets.dart';
import '/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart';
import '/modals/throw_exception/throw_exception_widget.dart';
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';

View File

@ -1,17 +0,0 @@
import '/flutter_flow/flutter_flow_util.dart';
import 'settings_page_widget.dart' show SettingsPageWidget;
import 'package:flutter/material.dart';
class SettingsPageModel extends FlutterFlowModel<SettingsPageWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
@override
void initState(BuildContext context) {}
@override
void dispose() {
unfocusNode.dispose();
}
}

View File

@ -1,71 +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 'settings_page_model.dart';
export 'settings_page_model.dart';
class SettingsPageWidget extends StatefulWidget {
const SettingsPageWidget({super.key});
@override
State<SettingsPageWidget> createState() => _SettingsPageWidgetState();
}
class _SettingsPageWidgetState extends State<SettingsPageWidget> {
late SettingsPageModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
@override
void initState() {
super.initState();
_model = createModel(context, () => SettingsPageModel());
}
@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,
appBar: AppBar(
backgroundColor: FlutterFlowTheme.of(context).primary,
automaticallyImplyLeading: false,
title: Text(
FFLocalizations.of(context).getText(
'bc698859' /* Preferencias */,
),
style: FlutterFlowTheme.of(context).headlineMedium.override(
fontFamily: 'Nunito',
color: FlutterFlowTheme.of(context).primaryText,
fontSize: 17.0,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey('Nunito'),
),
),
actions: const [],
centerTitle: true,
elevation: 0.0,
),
body: const SafeArea(
top: true,
child: Column(
mainAxisSize: MainAxisSize.max,
children: [],
),
),
),
);
}
}

View File

@ -1,4 +1,3 @@
import '/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'sign_in_page_widget.dart' show SignInPageWidget;
import 'package:flutter/material.dart';
@ -7,18 +6,56 @@ class SignInPageModel extends FlutterFlowModel<SignInPageWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for signInTemplateComponent component.
late SignInTemplateComponentModel signInTemplateComponentModel;
final formKey = GlobalKey<FormState>();
// State field(s) for emailAddress widget.
FocusNode? emailAddressFocusNode;
TextEditingController? emailAddressTextController;
String? Function(BuildContext, String?)? emailAddressTextControllerValidator;
String? _emailAddressTextControllerValidator(
BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'aobfkrs0' /* Campo é necessário */,
);
}
if (!RegExp(kTextValidatorEmailRegex).hasMatch(val)) {
return FFLocalizations.of(context).getText(
'axa3n3lr' /* E-mail Inv */,
);
}
return null;
}
// State field(s) for password widget.
FocusNode? passwordFocusNode;
TextEditingController? passwordTextController;
late bool passwordVisibility;
String? Function(BuildContext, String?)? passwordTextControllerValidator;
String? _passwordTextControllerValidator(BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'9h4qk3c9' /* Campo é necessário */,
);
}
return null;
}
@override
void initState(BuildContext context) {
signInTemplateComponentModel =
createModel(context, () => SignInTemplateComponentModel());
emailAddressTextControllerValidator = _emailAddressTextControllerValidator;
passwordVisibility = false;
passwordTextControllerValidator = _passwordTextControllerValidator;
}
@override
void dispose() {
unfocusNode.dispose();
signInTemplateComponentModel.dispose();
emailAddressFocusNode?.dispose();
emailAddressTextController?.dispose();
passwordFocusNode?.dispose();
passwordTextController?.dispose();
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,3 @@
import '/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'sign_up_page_widget.dart' show SignUpPageWidget;
import 'package:flutter/material.dart';
@ -7,18 +6,86 @@ class SignUpPageModel extends FlutterFlowModel<SignUpPageWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for signUpTemplateComponent component.
late SignUpTemplateComponentModel signUpTemplateComponentModel;
final formKey = GlobalKey<FormState>();
// State field(s) for nameRegisterForm widget.
FocusNode? nameRegisterFormFocusNode;
TextEditingController? nameRegisterFormTextController;
String? Function(BuildContext, String?)?
nameRegisterFormTextControllerValidator;
String? _nameRegisterFormTextControllerValidator(
BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'iv6d5xk3' /* Campo é necessário */,
);
}
if (!RegExp(kTextValidatorUsernameRegex).hasMatch(val)) {
return 'Must start with a letter and can only contain letters, digits and - or _.';
}
return null;
}
// State field(s) for emailRegisterForm widget.
FocusNode? emailRegisterFormFocusNode;
TextEditingController? emailRegisterFormTextController;
String? Function(BuildContext, String?)?
emailRegisterFormTextControllerValidator;
String? _emailRegisterFormTextControllerValidator(
BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'w3nl41ps' /* Campo é necessário */,
);
}
if (!RegExp(kTextValidatorEmailRegex).hasMatch(val)) {
return 'Has to be a valid email address.';
}
return null;
}
// State field(s) for passwordRegisterForm widget.
FocusNode? passwordRegisterFormFocusNode;
TextEditingController? passwordRegisterFormTextController;
late bool passwordRegisterFormVisibility;
String? Function(BuildContext, String?)?
passwordRegisterFormTextControllerValidator;
String? _passwordRegisterFormTextControllerValidator(
BuildContext context, String? val) {
if (val == null || val.isEmpty) {
return FFLocalizations.of(context).getText(
'ql1bxvno' /* Campo é necessário */,
);
}
return null;
}
// Stores action output result for [Action Block - signUpRegisterAction] action in SignUpButtonRegisterForm widget.
bool? signUp;
@override
void initState(BuildContext context) {
signUpTemplateComponentModel =
createModel(context, () => SignUpTemplateComponentModel());
nameRegisterFormTextControllerValidator =
_nameRegisterFormTextControllerValidator;
emailRegisterFormTextControllerValidator =
_emailRegisterFormTextControllerValidator;
passwordRegisterFormVisibility = false;
passwordRegisterFormTextControllerValidator =
_passwordRegisterFormTextControllerValidator;
}
@override
void dispose() {
unfocusNode.dispose();
signUpTemplateComponentModel.dispose();
nameRegisterFormFocusNode?.dispose();
nameRegisterFormTextController?.dispose();
emailRegisterFormFocusNode?.dispose();
emailRegisterFormTextController?.dispose();
passwordRegisterFormFocusNode?.dispose();
passwordRegisterFormTextController?.dispose();
}
}

View File

@ -1,8 +1,14 @@
import '/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart';
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_animate/flutter_animate.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:provider/provider.dart';
import 'sign_up_page_model.dart';
export 'sign_up_page_model.dart';
@ -13,15 +19,64 @@ class SignUpPageWidget extends StatefulWidget {
State<SignUpPageWidget> createState() => _SignUpPageWidgetState();
}
class _SignUpPageWidgetState extends State<SignUpPageWidget> {
class _SignUpPageWidgetState extends State<SignUpPageWidget>
with TickerProviderStateMixin {
late SignUpPageModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
final animationsMap = <String, AnimationInfo>{};
@override
void initState() {
super.initState();
_model = createModel(context, () => SignUpPageModel());
_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
@ -33,6 +88,8 @@ class _SignUpPageWidgetState extends State<SignUpPageWidget> {
@override
Widget build(BuildContext context) {
context.watch<FFAppState>();
return GestureDetector(
onTap: () => _model.unfocusNode.canRequestFocus
? FocusScope.of(context).requestFocus(_model.unfocusNode)
@ -42,16 +99,819 @@ class _SignUpPageWidgetState extends State<SignUpPageWidget> {
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
body: SafeArea(
top: true,
child: wrapWithModel(
model: _model.signUpTemplateComponentModel,
updateCallback: () => setState(() {}),
updateOnChange: true,
child: SignUpTemplateComponentWidget(
toggleSignInPage: () async {
await action_blocks.toggleSignInPage(context);
setState(() {});
},
),
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(
'bv7d4en2' /* 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: [
Form(
key: _model.formKey,
autovalidateMode:
AutovalidateMode.disabled,
child: Column(
mainAxisSize: MainAxisSize.max,
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(
isDense: true,
labelText:
FFLocalizations.of(
context)
.getText(
'evcb30xo' /* 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.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
focusedBorder:
OutlineInputBorder(
borderSide:
BorderSide(
color: FlutterFlowTheme
.of(context)
.success,
width: 0.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
errorBorder:
OutlineInputBorder(
borderSide:
BorderSide(
color: FlutterFlowTheme
.of(context)
.error,
width: 0.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide:
BorderSide(
color: FlutterFlowTheme
.of(context)
.error,
width: 0.25,
),
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(
isDense: true,
labelText:
FFLocalizations.of(
context)
.getText(
'p7snp67t' /* 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.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
focusedBorder:
OutlineInputBorder(
borderSide:
BorderSide(
color: FlutterFlowTheme
.of(context)
.success,
width: 0.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
errorBorder:
OutlineInputBorder(
borderSide:
BorderSide(
color: FlutterFlowTheme
.of(context)
.error,
width: 0.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide:
BorderSide(
color: FlutterFlowTheme
.of(context)
.error,
width: 0.25,
),
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(
isDense: true,
labelText:
FFLocalizations.of(
context)
.getText(
'u30lpbvg' /* 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.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
focusedBorder:
OutlineInputBorder(
borderSide:
const BorderSide(
color: Color(
0xFF1AAB5F),
width: 0.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
errorBorder:
OutlineInputBorder(
borderSide:
const BorderSide(
color: Color(
0xFFFF5963),
width: 0.25,
),
borderRadius:
BorderRadius
.circular(
12.0),
),
focusedErrorBorder:
OutlineInputBorder(
borderSide:
const BorderSide(
color: Color(
0xFFFF5963),
width: 0.25,
),
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: (((_model.nameRegisterFormTextController
.text !=
'') ||
((_model
.nameRegisterFormFocusNode?.hasFocus ??
false) !=
null)) &&
((_model.emailRegisterFormTextController
.text !=
'') ||
((_model.emailRegisterFormFocusNode
?.hasFocus ??
false) !=
null)) &&
((_model.passwordRegisterFormTextController
.text !=
'') ||
((_model.passwordRegisterFormFocusNode
?.hasFocus ??
false) !=
null)))
? null
: () async {
var shouldSetState =
false;
_model.signUp =
await action_blocks
.signUpRegisterAction(
context,
name: _model
.nameRegisterFormTextController
.text,
passwd: _model
.passwordRegisterFormTextController
.text,
email: _model
.emailRegisterFormTextController
.text,
device: FFAppState()
.device,
);
shouldSetState = true;
if (_model.signUp !=
true) {
if (shouldSetState) {
setState(() {});
}
return;
}
if (shouldSetState) {
setState(() {});
}
},
text:
FFLocalizations.of(context)
.getText(
'2a4f1t3w' /* 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: RichText(
textScaler:
MediaQuery.of(context)
.textScaler,
text: TextSpan(
children: [
TextSpan(
text: FFLocalizations.of(
context)
.getText(
'uy41jbvn' /* Você já tem uma conta? */,
),
style: TextStyle(
color:
FlutterFlowTheme.of(
context)
.primaryText,
),
),
TextSpan(
text: FFLocalizations.of(
context)
.getText(
'ynungy80' /* 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(
'r5rm6pll' /* 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),
),
),
],
),
),
),
),
),
],
),
),
),

View File

@ -1,4 +1,3 @@
import '/components/templates_components/welcome_template_component/welcome_template_component_widget.dart';
import '/flutter_flow/flutter_flow_util.dart';
import 'welcome_page_widget.dart' show WelcomePageWidget;
import 'package:flutter/material.dart';
@ -11,18 +10,12 @@ class WelcomePageModel extends FlutterFlowModel<WelcomePageWidget> {
/// State fields for stateful widgets in this page.
final unfocusNode = FocusNode();
// Model for welcomeTemplateComponent component.
late WelcomeTemplateComponentModel welcomeTemplateComponentModel;
@override
void initState(BuildContext context) {
welcomeTemplateComponentModel =
createModel(context, () => WelcomeTemplateComponentModel());
}
void initState(BuildContext context) {}
@override
void dispose() {
unfocusNode.dispose();
welcomeTemplateComponentModel.dispose();
}
}

View File

@ -1,9 +1,12 @@
import '/components/templates_components/welcome_template_component/welcome_template_component_widget.dart';
import '/flutter_flow/flutter_flow_animations.dart';
import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart';
import '/actions/actions.dart' as action_blocks;
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';
@ -15,11 +18,14 @@ class WelcomePageWidget extends StatefulWidget {
State<WelcomePageWidget> createState() => _WelcomePageWidgetState();
}
class _WelcomePageWidgetState extends State<WelcomePageWidget> {
class _WelcomePageWidgetState extends State<WelcomePageWidget>
with TickerProviderStateMixin {
late WelcomePageModel _model;
final scaffoldKey = GlobalKey<ScaffoldState>();
final animationsMap = <String, AnimationInfo>{};
@override
void initState() {
super.initState();
@ -38,6 +44,43 @@ class _WelcomePageWidgetState extends State<WelcomePageWidget> {
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
@ -60,17 +103,381 @@ class _WelcomePageWidgetState extends State<WelcomePageWidget> {
backgroundColor: FlutterFlowTheme.of(context).primaryBackground,
body: SafeArea(
top: true,
child: wrapWithModel(
model: _model.welcomeTemplateComponentModel,
updateCallback: () => setState(() {}),
updateOnChange: true,
child: WelcomeTemplateComponentWidget(
toggleSignUpPage: () async {
await action_blocks.toggleSignUpPage(context);
},
toggleSignInPage: () async {
await action_blocks.toggleSignInPage(context);
},
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(
'77d2ypub' /* 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(
'avhdhlhw' /* 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: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context)
.getText(
'iw9yx5fr' /* 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: () {
print('Button pressed ...');
},
text: FFLocalizations.of(context)
.getText(
'bs5mbse6' /* 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)
.primaryBackground,
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('Button pressed ...');
},
text:
FFLocalizations.of(context)
.getText(
'cq85bqnj' /* 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,
),
),
),
Expanded(
child: Padding(
padding: const EdgeInsetsDirectional
.fromSTEB(
0.0, 0.0, 0.0, 16.0),
child: FFButtonWidget(
onPressed: () {
print('Button pressed ...');
},
text:
FFLocalizations.of(context)
.getText(
'iupuq6xs' /* 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)
.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,
),
),
),
].divide(const SizedBox(width: 7.0)),
);
}
},
),
],
),
),
),
).animateOnPageLoad(
animationsMap['containerOnPageLoadAnimation']!),
),
),
],
),
),
),
),