fix: Form de Login do APP

This commit is contained in:
FlutterFlow 2024-07-25 15:04:38 +00:00
parent 074d465185
commit 8e9f9ed589
9 changed files with 76 additions and 203 deletions

View File

@ -21,6 +21,6 @@
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>1.0</string> <string>1.0</string>
<key>MinimumOSVersion</key> <key>MinimumOSVersion</key>
<string>14.0</string> <string>14.0.0</string>
</dict> </dict>
</plist> </plist>

View File

@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project # Uncomment this line to define a global platform for your project
platform :ios, '14.0' platform :ios, '14.0.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency. # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true' ENV['COCOAPODS_DISABLE_STATS'] = 'true'

View File

@ -44,8 +44,8 @@
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
6436409127A31CD300820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 6436409627A31CD000820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409227A31CD300820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 6436409B27A31CD100820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@ -225,8 +225,8 @@
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = { 6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
isa = PBXVariantGroup; isa = PBXVariantGroup;
children = ( children = (
6436409127A31CD300820AF7 /* pt */, 6436409627A31CD000820AF7 /* pt */,
6436409227A31CD300820AF7 /* en */, 6436409B27A31CD100820AF7 /* en */,
); );
name = InfoPlist.strings; name = InfoPlist.strings;
sourceTree = "<group>"; sourceTree = "<group>";
@ -291,7 +291,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0; IPHONEOS_DEPLOYMENT_TARGET = 14.0.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;
@ -373,7 +373,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0; IPHONEOS_DEPLOYMENT_TARGET = 14.0.0;
MTL_ENABLE_DEBUG_INFO = YES; MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES; ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos; SDKROOT = iphoneos;
@ -422,7 +422,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES; GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0; IPHONEOS_DEPLOYMENT_TARGET = 14.0.0;
MTL_ENABLE_DEBUG_INFO = NO; MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos; SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos; SUPPORTED_PLATFORMS = iphoneos;

View File

@ -21,7 +21,9 @@ class SignInTemplateComponentModel
} }
if (!RegExp(kTextValidatorEmailRegex).hasMatch(val)) { if (!RegExp(kTextValidatorEmailRegex).hasMatch(val)) {
return 'Has to be a valid email address.'; return FFLocalizations.of(context).getText(
's3j1hjqx' /* E-mail Inv */,
);
} }
return null; return null;
} }

View File

@ -4,6 +4,7 @@ import '/flutter_flow/flutter_flow_theme.dart';
import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/flutter_flow_util.dart';
import '/flutter_flow/flutter_flow_widgets.dart'; import '/flutter_flow/flutter_flow_widgets.dart';
import '/actions/actions.dart' as action_blocks; import '/actions/actions.dart' as action_blocks;
import 'package:easy_debounce/easy_debounce.dart';
import 'package:flutter/gestures.dart'; import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_animate/flutter_animate.dart'; import 'package:flutter_animate/flutter_animate.dart';
@ -219,7 +220,16 @@ class _SignInTemplateComponentWidgetState
.emailAddressTextController, .emailAddressTextController,
focusNode: _model focusNode: _model
.emailAddressFocusNode, .emailAddressFocusNode,
autofocus: false, onChanged: (_) =>
EasyDebounce.debounce(
'_model.emailAddressTextController',
const Duration(milliseconds: 500),
() => setState(() {}),
),
autofocus: true,
autofillHints: const [
AutofillHints.email
],
textCapitalization: textCapitalization:
TextCapitalization.none, TextCapitalization.none,
textInputAction: textInputAction:
@ -351,7 +361,16 @@ class _SignInTemplateComponentWidgetState
.passwordTextController, .passwordTextController,
focusNode: focusNode:
_model.passwordFocusNode, _model.passwordFocusNode,
autofocus: false, onChanged: (_) =>
EasyDebounce.debounce(
'_model.passwordTextController',
const Duration(milliseconds: 500),
() => setState(() {}),
),
autofocus: true,
autofillHints: const [
AutofillHints.password
],
textInputAction: textInputAction:
TextInputAction.send, TextInputAction.send,
obscureText: !_model obscureText: !_model
@ -499,19 +518,26 @@ class _SignInTemplateComponentWidgetState
.fromSTEB( .fromSTEB(
0.0, 0.0, 0.0, 16.0), 0.0, 0.0, 0.0, 16.0),
child: FFButtonWidget( child: FFButtonWidget(
onPressed: () async { onPressed: ((_model.emailAddressTextController
await action_blocks .text ==
.singInLoginAction( '') &&
context, (_model.passwordTextController
emailAdress: _model .text ==
.emailAddressTextController ''))
.text, ? null
password: _model : () async {
.passwordTextController await action_blocks
.text, .singInLoginAction(
); context,
setState(() {}); emailAdress: _model
}, .emailAddressTextController
.text,
password: _model
.passwordTextController
.text,
);
setState(() {});
},
text: FFLocalizations.of( text: FFLocalizations.of(
context) context)
.getText( .getText(
@ -568,6 +594,12 @@ class _SignInTemplateComponentWidgetState
borderRadius: borderRadius:
BorderRadius.circular( BorderRadius.circular(
12.0), 12.0),
disabledColor:
FlutterFlowTheme.of(
context)
.customColor5,
disabledTextColor:
Colors.white,
), ),
showLoadingIndicator: false, showLoadingIndicator: false,
), ),

View File

@ -396,8 +396,15 @@ extension FFTextEditingControllerExt on TextEditingController? {
} }
extension IterableExt<T> on Iterable<T> { extension IterableExt<T> on Iterable<T> {
List<T> sortedList<S extends Comparable>([S Function(T)? keyOf]) => toList() List<T> sortedList<S extends Comparable>(
..sort(keyOf == null ? null : ((a, b) => keyOf(a).compareTo(keyOf(b)))); {S Function(T)? keyOf, bool desc = false}) {
final sortedAscending = toList()
..sort(keyOf == null ? null : ((a, b) => keyOf(a).compareTo(keyOf(b))));
if (desc) {
return sortedAscending.reversed.toList();
}
return sortedAscending;
}
List<S> mapIndexed<S>(S Function(int, T) func) => toList() List<S> mapIndexed<S>(S Function(int, T) func) => toList()
.asMap() .asMap()

View File

@ -241,10 +241,6 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Qual o período de validade da visita?', 'pt': 'Qual o período de validade da visita?',
'en': 'Visit Validity Period', 'en': 'Visit Validity Period',
}, },
'qygj6ra5': {
'pt': 'Inicio da Visita',
'en': 'Start of Visit',
},
'bv2edxku': { 'bv2edxku': {
'pt': '', 'pt': '',
'en': 'End of Visit', 'en': 'End of Visit',
@ -253,10 +249,6 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Quando você inicia a visita?', 'pt': 'Quando você inicia a visita?',
'en': 'When do you start the visit?', 'en': 'When do you start the visit?',
}, },
'p4ws3t66': {
'pt': 'Fim da Visita',
'en': 'End of Visit',
},
'yw6d2jj8': { 'yw6d2jj8': {
'pt': '', 'pt': '',
'en': 'End of Visit', 'en': 'End of Visit',
@ -269,10 +261,6 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Quais são os motivos da visita?', 'pt': 'Quais são os motivos da visita?',
'en': 'What are the reasons for the visit?', 'en': 'What are the reasons for the visit?',
}, },
'2f68zi9t': {
'pt': 'Motivo da Visita',
'en': 'End of Visit',
},
'6p3e0bzr': { '6p3e0bzr': {
'pt': 'Escolha um motivo aqui', 'pt': 'Escolha um motivo aqui',
'en': 'Choose a reason here', 'en': 'Choose a reason here',
@ -281,10 +269,6 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Search for an item...', 'pt': 'Search for an item...',
'en': '', 'en': '',
}, },
'il4di4ln': {
'pt': 'Nível de Acesso',
'en': 'End of Visit',
},
'2wun8p6c': { '2wun8p6c': {
'pt': 'Escolha um nível de acesso aqui', 'pt': 'Escolha um nível de acesso aqui',
'en': 'Choose an access level here', 'en': 'Choose an access level here',
@ -496,7 +480,7 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Preferencias', 'pt': 'Preferencias',
'en': '', 'en': '',
}, },
'uv1iug83': { 'sejj3t8w': {
'pt': '', 'pt': '',
'en': '', 'en': '',
}, },
@ -507,7 +491,7 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Preferencias', 'pt': 'Preferencias',
'en': '', 'en': '',
}, },
'8fgc7z33': { 'sejj3t8w': {
'pt': '', 'pt': '',
'en': '', 'en': '',
}, },
@ -892,6 +876,10 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'pt': 'Campo é necessário', 'pt': 'Campo é necessário',
'en': 'Field is required', 'en': 'Field is required',
}, },
's3j1hjqx': {
'pt': 'E-mail Inv',
'en': '',
},
'2ib9bf67': { '2ib9bf67': {
'pt': 'Please choose an option from the dropdown', 'pt': 'Please choose an option from the dropdown',
'en': '', 'en': '',
@ -926,7 +914,7 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
}, },
'p5c6d54y': { 'p5c6d54y': {
'pt': ' Recupere aqui', 'pt': ' Recupere aqui',
'en': 'recover here', 'en': ' recover here',
}, },
'olf967cj': { 'olf967cj': {
'pt': 'Termo de Uso', 'pt': 'Termo de Uso',

View File

@ -182,7 +182,7 @@ class _NavBarPageState extends State<NavBarPage> {
size: 24.0, size: 24.0,
), ),
label: FFLocalizations.of(context).getText( label: FFLocalizations.of(context).getText(
'8fgc7z33' /* */, 'sejj3t8w' /* */,
), ),
tooltip: '', tooltip: '',
) )

View File

@ -650,45 +650,6 @@ class _ScheduleCompleteVisitPageWidgetState
Row( Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
Padding(
padding: const EdgeInsetsDirectional
.fromSTEB(
20.0, 0.0, 0.0, 0.0),
child: Container(
width: 100.0,
height: 40.0,
decoration: const BoxDecoration(),
child: Align(
alignment:
const AlignmentDirectional(
0.0, 0.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'qygj6ra5' /* Inicio da Visita */,
),
style:
FlutterFlowTheme.of(
context)
.bodyMedium
.override(
fontFamily: FlutterFlowTheme.of(
context)
.bodyMediumFamily,
fontSize: 14.0,
letterSpacing:
0.0,
useGoogleFonts: GoogleFonts
.asMap()
.containsKey(
FlutterFlowTheme.of(context)
.bodyMediumFamily),
),
),
),
),
),
Expanded( Expanded(
child: Container( child: Container(
width: 100.0, width: 100.0,
@ -1044,45 +1005,6 @@ class _ScheduleCompleteVisitPageWidgetState
Row( Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
Padding(
padding: const EdgeInsetsDirectional
.fromSTEB(
20.0, 0.0, 0.0, 0.0),
child: Container(
width: 100.0,
height: 40.0,
decoration: const BoxDecoration(),
child: Align(
alignment:
const AlignmentDirectional(
0.0, 0.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'p4ws3t66' /* Fim da Visita */,
),
style:
FlutterFlowTheme.of(
context)
.bodyMedium
.override(
fontFamily: FlutterFlowTheme.of(
context)
.bodyMediumFamily,
fontSize: 14.0,
letterSpacing:
0.0,
useGoogleFonts: GoogleFonts
.asMap()
.containsKey(
FlutterFlowTheme.of(context)
.bodyMediumFamily),
),
),
),
),
),
Expanded( Expanded(
child: Container( child: Container(
width: 100.0, width: 100.0,
@ -1477,45 +1399,6 @@ class _ScheduleCompleteVisitPageWidgetState
Row( Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
Padding(
padding: const EdgeInsetsDirectional
.fromSTEB(
20.0, 0.0, 0.0, 0.0),
child: Container(
width: 100.0,
height: 42.0,
decoration: const BoxDecoration(),
child: Align(
alignment:
const AlignmentDirectional(
0.0, 0.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'2f68zi9t' /* Motivo da Visita */,
),
style:
FlutterFlowTheme.of(
context)
.bodyMedium
.override(
fontFamily: FlutterFlowTheme.of(
context)
.bodyMediumFamily,
fontSize: 14.0,
letterSpacing:
0.0,
useGoogleFonts: GoogleFonts
.asMap()
.containsKey(
FlutterFlowTheme.of(context)
.bodyMediumFamily),
),
),
),
),
),
Expanded( Expanded(
child: Padding( child: Padding(
padding: const EdgeInsetsDirectional padding: const EdgeInsetsDirectional
@ -1651,45 +1534,6 @@ class _ScheduleCompleteVisitPageWidgetState
Row( Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
Padding(
padding: const EdgeInsetsDirectional
.fromSTEB(
20.0, 0.0, 0.0, 0.0),
child: Container(
width: 100.0,
height: 42.0,
decoration: const BoxDecoration(),
child: Align(
alignment:
const AlignmentDirectional(
0.0, 0.0),
child: Text(
FFLocalizations.of(
context)
.getText(
'il4di4ln' /* Nível de Acesso */,
),
style:
FlutterFlowTheme.of(
context)
.bodyMedium
.override(
fontFamily: FlutterFlowTheme.of(
context)
.bodyMediumFamily,
fontSize: 14.0,
letterSpacing:
0.0,
useGoogleFonts: GoogleFonts
.asMap()
.containsKey(
FlutterFlowTheme.of(context)
.bodyMediumFamily),
),
),
),
),
),
Expanded( Expanded(
child: Padding( child: Padding(
padding: const EdgeInsetsDirectional padding: const EdgeInsetsDirectional