From 074d465185f44d0ac6eaeb64b2aa9aa10b9e04d8 Mon Sep 17 00:00:00 2001 From: FlutterFlow <140657486+FlutterFlowEng@users.noreply.github.com> Date: Sat, 20 Jul 2024 02:11:30 +0000 Subject: [PATCH 1/6] Updating to latest FlutterFlow output. --- ios/Runner.xcodeproj/project.pbxproj | 8 +- ..._arrow_linked_locals_component_widget.dart | 348 ++++++++++-------- .../menu_staggered_view_component_widget.dart | 119 +++++- .../view_visit_detail_model.dart | 0 .../view_visit_detail_widget.dart | 0 ...etails_modal_template_component_model.dart | 2 +- ...tails_modal_template_component_widget.dart | 2 +- lib/flutter_flow/internationalization.dart | 28 +- lib/flutter_flow/nav/nav.dart | 17 +- lib/index.dart | 3 + lib/main.dart | 72 ++++ .../preferences_page_model.dart | 27 ++ .../preferences_page_widget.dart | 167 +++++++++ .../settings_page/settings_page_model.dart | 17 + .../settings_page/settings_page_widget.dart | 71 ++++ 15 files changed, 720 insertions(+), 161 deletions(-) rename lib/components/{ => templates_components}/view_visit_detail/view_visit_detail_model.dart (100%) rename lib/components/{ => templates_components}/view_visit_detail/view_visit_detail_widget.dart (100%) create mode 100644 lib/pages/preferences_page/preferences_page_model.dart create mode 100644 lib/pages/preferences_page/preferences_page_widget.dart create mode 100644 lib/pages/settings_page/settings_page_model.dart create mode 100644 lib/pages/settings_page/settings_page_widget.dart diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 1f9d87a2..bc29890e 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -44,8 +44,8 @@ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 6436409227A31CD600820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; - 6436409227A31CDA00820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409127A31CD300820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409227A31CD300820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -225,8 +225,8 @@ 6436409C27A31CD800820AF7 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 6436409227A31CD600820AF7 /* pt */, - 6436409227A31CDA00820AF7 /* en */, + 6436409127A31CD300820AF7 /* pt */, + 6436409227A31CD300820AF7 /* en */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart index 505e51d8..13b68aea 100644 --- a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart +++ b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart @@ -1,4 +1,5 @@ import '/backend/api_requests/api_calls.dart'; +import '/flutter_flow/flutter_flow_icon_button.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; import 'package:flutter/material.dart'; @@ -77,163 +78,206 @@ class _BottomArrowLinkedLocalsComponentWidgetState topRight: Radius.circular(0.0), ), ), - child: FutureBuilder( - future: PhpGroup.getLocalsCall.call( - devUUID: FFAppState().devUUID, - userUUID: FFAppState().userUUID, - ), - builder: (context, snapshot) { - // Customize what your widget looks like when it's loading. - if (!snapshot.hasData) { - return Center( - child: SizedBox( - width: 50.0, - height: 50.0, - child: SpinKitCircle( - color: FlutterFlowTheme.of(context).primary, - size: 50.0, - ), + child: Row( + mainAxisSize: MainAxisSize.max, + children: [ + Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .secondaryBackground, + ), + child: FlutterFlowIconButton( + borderRadius: 20.0, + borderWidth: 1.0, + buttonSize: 40.0, + fillColor: FlutterFlowTheme.of(context).accent1, + icon: Icon( + Icons.add, + color: FlutterFlowTheme.of(context).primary, + size: 24.0, ), - ); - } - final gridViewGetLocalsResponse = snapshot.data!; - - return Builder( - builder: (context) { - final eachLocals = PhpGroup.getLocalsCall - .locais( - gridViewGetLocalsResponse.jsonBody, - ) - ?.map((e) => e) - .toList() - .toList() ?? - []; - - return GridView.builder( - padding: EdgeInsets.zero, - gridDelegate: - const SliverGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 1, - crossAxisSpacing: 10.0, - mainAxisSpacing: 0.0, - childAspectRatio: 1.0, - ), - scrollDirection: Axis.horizontal, - itemCount: eachLocals.length, - itemBuilder: (context, eachLocalsIndex) { - final eachLocalsItem = - eachLocals[eachLocalsIndex]; - return InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - FFAppState().cliUUID = getJsonField( - eachLocalsItem, - r'''$.CLI_ID''', - ).toString(); - setState(() {}); - FFAppState().local = getJsonField( - eachLocalsItem, - r'''$.CLI_NOME''', - ).toString(); - setState(() {}); - FFAppState().ownerUUID = getJsonField( - eachLocalsItem, - r'''$.CLU_OWNER_ID''', - ).toString(); - setState(() {}); - Navigator.pop(context); - }, - child: Container( + onPressed: () { + print('IconButton pressed ...'); + }, + ), + ), + Expanded( + child: FutureBuilder( + future: PhpGroup.getLocalsCall.call( + devUUID: FFAppState().devUUID, + userUUID: FFAppState().userUUID, + ), + builder: (context, snapshot) { + // Customize what your widget looks like when it's loading. + if (!snapshot.hasData) { + return Center( + child: SizedBox( width: 50.0, - height: double.infinity, - decoration: const BoxDecoration(), - alignment: const AlignmentDirectional(0.0, 0.0), - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.center, - children: [ - Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryText, - borderRadius: const BorderRadius.only( - bottomLeft: Radius.circular(25.0), - bottomRight: - Radius.circular(25.0), - topLeft: Radius.circular(25.0), - topRight: Radius.circular(25.0), - ), - border: Border.all( - color: - FlutterFlowTheme.of(context) - .secondaryText, - width: 3.0, - ), - ), - child: ClipRRect( - borderRadius: const BorderRadius.only( - bottomLeft: Radius.circular(25.0), - bottomRight: - Radius.circular(25.0), - topLeft: Radius.circular(25.0), - topRight: Radius.circular(25.0), - ), - child: Image.network( - 'https://freaccess.com.br/freaccess/Images/Clients/${getJsonField( - eachLocalsItem, - r'''$.CLI_ID''', - ).toString()}.png', - width: double.infinity, - height: double.infinity, - fit: BoxFit.fill, - alignment: const Alignment(0.0, 0.0), - ), - ), - ), - Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 0.0, 10.0, 0.0, 0.0), - child: Text( - getJsonField( - eachLocalsItem, - r'''$.CLI_NOME''', - ).toString(), - style: FlutterFlowTheme.of(context) - .bodyMedium - .override( - fontFamily: - FlutterFlowTheme.of( - context) - .bodyMediumFamily, - color: FlutterFlowTheme.of( - context) - .primaryText, - letterSpacing: 0.0, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - FlutterFlowTheme.of( - context) - .bodyMediumFamily), - ), - ), - ), - ], + height: 50.0, + child: SpinKitCircle( + color: + FlutterFlowTheme.of(context).primary, + size: 50.0, ), ), ); - }, - ); - }, - ); - }, + } + final gridViewGetLocalsResponse = snapshot.data!; + + return Builder( + builder: (context) { + final eachLocals = PhpGroup.getLocalsCall + .locais( + gridViewGetLocalsResponse.jsonBody, + ) + ?.map((e) => e) + .toList() + .toList() ?? + []; + + return GridView.builder( + padding: EdgeInsets.zero, + gridDelegate: + const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 1, + crossAxisSpacing: 10.0, + mainAxisSpacing: 0.0, + childAspectRatio: 1.0, + ), + scrollDirection: Axis.horizontal, + itemCount: eachLocals.length, + itemBuilder: (context, eachLocalsIndex) { + final eachLocalsItem = + eachLocals[eachLocalsIndex]; + return InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + FFAppState().cliUUID = getJsonField( + eachLocalsItem, + r'''$.CLI_ID''', + ).toString(); + setState(() {}); + FFAppState().local = getJsonField( + eachLocalsItem, + r'''$.CLI_NOME''', + ).toString(); + setState(() {}); + FFAppState().ownerUUID = getJsonField( + eachLocalsItem, + r'''$.CLU_OWNER_ID''', + ).toString(); + setState(() {}); + Navigator.pop(context); + }, + child: Container( + width: 50.0, + height: double.infinity, + decoration: const BoxDecoration(), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.center, + children: [ + Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryText, + borderRadius: + const BorderRadius.only( + bottomLeft: + Radius.circular(25.0), + bottomRight: + Radius.circular(25.0), + topLeft: + Radius.circular(25.0), + topRight: + Radius.circular(25.0), + ), + border: Border.all( + color: FlutterFlowTheme.of( + context) + .secondaryText, + width: 3.0, + ), + ), + child: ClipRRect( + borderRadius: + const BorderRadius.only( + bottomLeft: + Radius.circular(25.0), + bottomRight: + Radius.circular(25.0), + topLeft: + Radius.circular(25.0), + topRight: + Radius.circular(25.0), + ), + child: Image.network( + 'https://freaccess.com.br/freaccess/Images/Clients/${getJsonField( + eachLocalsItem, + r'''$.CLI_ID''', + ).toString()}.png', + width: double.infinity, + height: double.infinity, + fit: BoxFit.fill, + alignment: + const Alignment(0.0, 0.0), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 0.0), + child: Text( + getJsonField( + eachLocalsItem, + r'''$.CLI_NOME''', + ).toString(), + style: FlutterFlowTheme.of( + context) + .bodyMedium + .override( + fontFamily: + FlutterFlowTheme.of( + context) + .bodyMediumFamily, + color: + FlutterFlowTheme.of( + context) + .primaryText, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + FlutterFlowTheme.of( + context) + .bodyMediumFamily), + ), + ), + ), + ], + ), + ), + ); + }, + ); + }, + ); + }, + ), + ), + ].addToStart(const SizedBox(width: 20.0)), ), ), ], diff --git a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart index 5ff542ae..f4db990c 100644 --- a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart +++ b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart @@ -80,7 +80,7 @@ class _MenuStaggeredViewComponentWidgetState ), crossAxisSpacing: 10.0, mainAxisSpacing: 10.0, - itemCount: 8, + itemCount: 9, padding: const EdgeInsets.fromLTRB( 0, 10.0, @@ -1002,6 +1002,123 @@ de Liberação */ ), ), ), + () => InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.liberationHistoryOptAction?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, 0.0), + child: Icon( + Icons.settings_rounded, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'dzk31zpc' /* Preferencias +do Sistema */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), ][index](); }, ), diff --git a/lib/components/view_visit_detail/view_visit_detail_model.dart b/lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart similarity index 100% rename from lib/components/view_visit_detail/view_visit_detail_model.dart rename to lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart diff --git a/lib/components/view_visit_detail/view_visit_detail_widget.dart b/lib/components/templates_components/view_visit_detail/view_visit_detail_widget.dart similarity index 100% rename from lib/components/view_visit_detail/view_visit_detail_widget.dart rename to lib/components/templates_components/view_visit_detail/view_visit_detail_widget.dart diff --git a/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart b/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart index f305c4de..a4052e41 100644 --- a/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart +++ b/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart @@ -1,5 +1,5 @@ import '/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart'; -import '/components/view_visit_detail/view_visit_detail_widget.dart'; +import '/components/templates_components/view_visit_detail/view_visit_detail_widget.dart'; import '/flutter_flow/flutter_flow_util.dart'; import 'visit_details_modal_template_component_widget.dart' show VisitDetailsModalTemplateComponentWidget; diff --git a/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart b/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart index 889c76c2..7e668742 100644 --- a/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart +++ b/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart @@ -1,5 +1,5 @@ import '/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart'; -import '/components/view_visit_detail/view_visit_detail_widget.dart'; +import '/components/templates_components/view_visit_detail/view_visit_detail_widget.dart'; import '/flutter_flow/flutter_flow_util.dart'; import 'package:flutter/material.dart'; import 'visit_details_modal_template_component_model.dart'; diff --git a/lib/flutter_flow/internationalization.dart b/lib/flutter_flow/internationalization.dart index b56429ba..dc120945 100644 --- a/lib/flutter_flow/internationalization.dart +++ b/lib/flutter_flow/internationalization.dart @@ -152,7 +152,7 @@ final kTranslationsMap = >>[ 'en': 'FREE ACCESS', }, 'mp6igsok': { - 'pt': 'Home', + 'pt': '', 'en': '', }, }, @@ -490,6 +490,28 @@ final kTranslationsMap = >>[ 'en': '', }, }, + // preferencesPage + { + '1vyj6y7n': { + 'pt': 'Preferencias', + 'en': '', + }, + 'uv1iug83': { + 'pt': '', + 'en': '', + }, + }, + // settingsPage + { + 'bc698859': { + 'pt': 'Preferencias', + 'en': '', + }, + '8fgc7z33': { + 'pt': '', + 'en': '', + }, + }, // visitorDetailsModalTemplateComponent { 'kqzf7nx2': { @@ -836,6 +858,10 @@ final kTranslationsMap = >>[ 'pt': 'Histórico\nde Liberação', 'en': 'Liberation\nHistory', }, + 'dzk31zpc': { + 'pt': 'Preferencias\ndo Sistema', + 'en': '', + }, }, // messageWellComponent { diff --git a/lib/flutter_flow/nav/nav.dart b/lib/flutter_flow/nav/nav.dart index fb4887f7..d6c54bca 100644 --- a/lib/flutter_flow/nav/nav.dart +++ b/lib/flutter_flow/nav/nav.dart @@ -6,6 +6,7 @@ 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'; @@ -62,7 +63,9 @@ GoRouter createRouter(AppStateNotifier appStateNotifier) => GoRouter( FFRoute( name: 'homePage', path: '/homePage', - builder: (context, params) => const HomePageWidget(), + builder: (context, params) => params.isEmpty + ? const NavBarPage(initialPage: 'homePage') + : const HomePageWidget(), ), FFRoute( name: 'registerVisitorPage', @@ -147,6 +150,18 @@ 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(), ); diff --git a/lib/index.dart b/lib/index.dart index e7526939..996c7347 100644 --- a/lib/index.dart +++ b/lib/index.dart @@ -16,3 +16,6 @@ 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; diff --git a/lib/main.dart b/lib/main.dart index 05c412f7..c8c93049 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -6,6 +6,7 @@ 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(); @@ -119,3 +120,74 @@ class _MyAppState extends State { ); } } + +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 { + 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( + 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( + '8fgc7z33' /* */, + ), + tooltip: '', + ) + ], + ), + ); + } +} diff --git a/lib/pages/preferences_page/preferences_page_model.dart b/lib/pages/preferences_page/preferences_page_model.dart new file mode 100644 index 00000000..dfe2b66b --- /dev/null +++ b/lib/pages/preferences_page/preferences_page_model.dart @@ -0,0 +1,27 @@ +import '/flutter_flow/flutter_flow_util.dart'; +import 'preferences_page_widget.dart' show PreferencesPageWidget; +import 'package:flutter/material.dart'; + +class PreferencesPageModel extends FlutterFlowModel { + /// 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(); + } +} diff --git a/lib/pages/preferences_page/preferences_page_widget.dart b/lib/pages/preferences_page/preferences_page_widget.dart new file mode 100644 index 00000000..917b4a2a --- /dev/null +++ b/lib/pages/preferences_page/preferences_page_widget.dart @@ -0,0 +1,167 @@ +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 createState() => _PreferencesPageWidgetState(); +} + +class _PreferencesPageWidgetState extends State { + late PreferencesPageModel _model; + + final scaffoldKey = GlobalKey(); + + @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 ...'); + }, + ), + ], + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/pages/settings_page/settings_page_model.dart b/lib/pages/settings_page/settings_page_model.dart new file mode 100644 index 00000000..1fa111cc --- /dev/null +++ b/lib/pages/settings_page/settings_page_model.dart @@ -0,0 +1,17 @@ +import '/flutter_flow/flutter_flow_util.dart'; +import 'settings_page_widget.dart' show SettingsPageWidget; +import 'package:flutter/material.dart'; + +class SettingsPageModel extends FlutterFlowModel { + /// State fields for stateful widgets in this page. + + final unfocusNode = FocusNode(); + + @override + void initState(BuildContext context) {} + + @override + void dispose() { + unfocusNode.dispose(); + } +} diff --git a/lib/pages/settings_page/settings_page_widget.dart b/lib/pages/settings_page/settings_page_widget.dart new file mode 100644 index 00000000..11227b96 --- /dev/null +++ b/lib/pages/settings_page/settings_page_widget.dart @@ -0,0 +1,71 @@ +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 createState() => _SettingsPageWidgetState(); +} + +class _SettingsPageWidgetState extends State { + late SettingsPageModel _model; + + final scaffoldKey = GlobalKey(); + + @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: [], + ), + ), + ), + ); + } +} From 8e9f9ed589d5f682913aa8cc74ddddc5cabe36fd Mon Sep 17 00:00:00 2001 From: FlutterFlow <140657486+FlutterFlowEng@users.noreply.github.com> Date: Thu, 25 Jul 2024 15:04:38 +0000 Subject: [PATCH 2/6] fix: Form de Login do APP --- ios/Flutter/AppFrameworkInfo.plist | 2 +- ios/Podfile | 2 +- ios/Runner.xcodeproj/project.pbxproj | 14 +- .../sign_in_template_component_model.dart | 4 +- .../sign_in_template_component_widget.dart | 62 +++++-- lib/flutter_flow/flutter_flow_util.dart | 11 +- lib/flutter_flow/internationalization.dart | 26 +-- lib/main.dart | 2 +- .../schedule_complete_visit_page_widget.dart | 156 ------------------ 9 files changed, 76 insertions(+), 203 deletions(-) diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist index ff0dcf11..748aee74 100644 --- a/ios/Flutter/AppFrameworkInfo.plist +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 14.0 + 14.0.0 diff --git a/ios/Podfile b/ios/Podfile index a43aebd4..8f4bfd94 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # 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. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index bc29890e..528c549d 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -44,8 +44,8 @@ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 6436409127A31CD300820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; - 6436409227A31CD300820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409627A31CD000820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409B27A31CD100820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -225,8 +225,8 @@ 6436409C27A31CD800820AF7 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 6436409127A31CD300820AF7 /* pt */, - 6436409227A31CD300820AF7 /* en */, + 6436409627A31CD000820AF7 /* pt */, + 6436409B27A31CD100820AF7 /* en */, ); name = InfoPlist.strings; sourceTree = ""; @@ -291,7 +291,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -373,7 +373,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -422,7 +422,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 14.0; + IPHONEOS_DEPLOYMENT_TARGET = 14.0.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart index 5c89397f..fd542965 100644 --- a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart +++ b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart @@ -21,7 +21,9 @@ class SignInTemplateComponentModel } if (!RegExp(kTextValidatorEmailRegex).hasMatch(val)) { - return 'Has to be a valid email address.'; + return FFLocalizations.of(context).getText( + 's3j1hjqx' /* E-mail Inv */, + ); } return null; } diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart index 59612d43..ae8cc9df 100644 --- a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart +++ b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart @@ -4,6 +4,7 @@ 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/gestures.dart'; import 'package:flutter/material.dart'; import 'package:flutter_animate/flutter_animate.dart'; @@ -219,7 +220,16 @@ class _SignInTemplateComponentWidgetState .emailAddressTextController, focusNode: _model .emailAddressFocusNode, - autofocus: false, + onChanged: (_) => + EasyDebounce.debounce( + '_model.emailAddressTextController', + const Duration(milliseconds: 500), + () => setState(() {}), + ), + autofocus: true, + autofillHints: const [ + AutofillHints.email + ], textCapitalization: TextCapitalization.none, textInputAction: @@ -351,7 +361,16 @@ class _SignInTemplateComponentWidgetState .passwordTextController, focusNode: _model.passwordFocusNode, - autofocus: false, + onChanged: (_) => + EasyDebounce.debounce( + '_model.passwordTextController', + const Duration(milliseconds: 500), + () => setState(() {}), + ), + autofocus: true, + autofillHints: const [ + AutofillHints.password + ], textInputAction: TextInputAction.send, obscureText: !_model @@ -499,19 +518,26 @@ class _SignInTemplateComponentWidgetState .fromSTEB( 0.0, 0.0, 0.0, 16.0), child: FFButtonWidget( - onPressed: () async { - await action_blocks - .singInLoginAction( - context, - emailAdress: _model - .emailAddressTextController - .text, - password: _model - .passwordTextController - .text, - ); - setState(() {}); - }, + onPressed: ((_model.emailAddressTextController + .text == + '') && + (_model.passwordTextController + .text == + '')) + ? null + : () async { + await action_blocks + .singInLoginAction( + context, + emailAdress: _model + .emailAddressTextController + .text, + password: _model + .passwordTextController + .text, + ); + setState(() {}); + }, text: FFLocalizations.of( context) .getText( @@ -568,6 +594,12 @@ class _SignInTemplateComponentWidgetState borderRadius: BorderRadius.circular( 12.0), + disabledColor: + FlutterFlowTheme.of( + context) + .customColor5, + disabledTextColor: + Colors.white, ), showLoadingIndicator: false, ), diff --git a/lib/flutter_flow/flutter_flow_util.dart b/lib/flutter_flow/flutter_flow_util.dart index 8bdcf64e..60ae0d61 100644 --- a/lib/flutter_flow/flutter_flow_util.dart +++ b/lib/flutter_flow/flutter_flow_util.dart @@ -396,8 +396,15 @@ extension FFTextEditingControllerExt on TextEditingController? { } extension IterableExt on Iterable { - List sortedList([S Function(T)? keyOf]) => toList() - ..sort(keyOf == null ? null : ((a, b) => keyOf(a).compareTo(keyOf(b)))); + List sortedList( + {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 mapIndexed(S Function(int, T) func) => toList() .asMap() diff --git a/lib/flutter_flow/internationalization.dart b/lib/flutter_flow/internationalization.dart index dc120945..b0b78958 100644 --- a/lib/flutter_flow/internationalization.dart +++ b/lib/flutter_flow/internationalization.dart @@ -241,10 +241,6 @@ final kTranslationsMap = >>[ 'pt': 'Qual o período de validade da visita?', 'en': 'Visit Validity Period', }, - 'qygj6ra5': { - 'pt': 'Inicio da Visita', - 'en': 'Start of Visit', - }, 'bv2edxku': { 'pt': '', 'en': 'End of Visit', @@ -253,10 +249,6 @@ final kTranslationsMap = >>[ 'pt': 'Quando você inicia a visita?', 'en': 'When do you start the visit?', }, - 'p4ws3t66': { - 'pt': 'Fim da Visita', - 'en': 'End of Visit', - }, 'yw6d2jj8': { 'pt': '', 'en': 'End of Visit', @@ -269,10 +261,6 @@ final kTranslationsMap = >>[ 'pt': 'Quais são os motivos da visita?', 'en': 'What are the reasons for the visit?', }, - '2f68zi9t': { - 'pt': 'Motivo da Visita', - 'en': 'End of Visit', - }, '6p3e0bzr': { 'pt': 'Escolha um motivo aqui', 'en': 'Choose a reason here', @@ -281,10 +269,6 @@ final kTranslationsMap = >>[ 'pt': 'Search for an item...', 'en': '', }, - 'il4di4ln': { - 'pt': 'Nível de Acesso', - 'en': 'End of Visit', - }, '2wun8p6c': { 'pt': 'Escolha um nível de acesso aqui', 'en': 'Choose an access level here', @@ -496,7 +480,7 @@ final kTranslationsMap = >>[ 'pt': 'Preferencias', 'en': '', }, - 'uv1iug83': { + 'sejj3t8w': { 'pt': '', 'en': '', }, @@ -507,7 +491,7 @@ final kTranslationsMap = >>[ 'pt': 'Preferencias', 'en': '', }, - '8fgc7z33': { + 'sejj3t8w': { 'pt': '', 'en': '', }, @@ -892,6 +876,10 @@ final kTranslationsMap = >>[ 'pt': 'Campo é necessário', 'en': 'Field is required', }, + 's3j1hjqx': { + 'pt': 'E-mail Inv', + 'en': '', + }, '2ib9bf67': { 'pt': 'Please choose an option from the dropdown', 'en': '', @@ -926,7 +914,7 @@ final kTranslationsMap = >>[ }, 'p5c6d54y': { 'pt': ' Recupere aqui', - 'en': 'recover here', + 'en': ' recover here', }, 'olf967cj': { 'pt': 'Termo de Uso', diff --git a/lib/main.dart b/lib/main.dart index c8c93049..85cc7135 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -182,7 +182,7 @@ class _NavBarPageState extends State { size: 24.0, ), label: FFLocalizations.of(context).getText( - '8fgc7z33' /* */, + 'sejj3t8w' /* */, ), tooltip: '', ) diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart index 5c8824c1..8643f7c6 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart @@ -650,45 +650,6 @@ class _ScheduleCompleteVisitPageWidgetState Row( mainAxisSize: MainAxisSize.max, 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( child: Container( width: 100.0, @@ -1044,45 +1005,6 @@ class _ScheduleCompleteVisitPageWidgetState Row( mainAxisSize: MainAxisSize.max, 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( child: Container( width: 100.0, @@ -1477,45 +1399,6 @@ class _ScheduleCompleteVisitPageWidgetState Row( mainAxisSize: MainAxisSize.max, 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( child: Padding( padding: const EdgeInsetsDirectional @@ -1651,45 +1534,6 @@ class _ScheduleCompleteVisitPageWidgetState Row( mainAxisSize: MainAxisSize.max, 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( child: Padding( padding: const EdgeInsetsDirectional From fc80d2542b3fe2e364c71816986bd3e6d28d569e Mon Sep 17 00:00:00 2001 From: FlutterFlow <140657486+FlutterFlowEng@users.noreply.github.com> Date: Fri, 26 Jul 2024 12:51:10 +0000 Subject: [PATCH 3/6] teste --- ios/Runner.xcodeproj/project.pbxproj | 8 ++++---- lib/backend/api_requests/api_calls.dart | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 528c549d..54618e39 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -44,8 +44,8 @@ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 6436409627A31CD000820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; - 6436409B27A31CD100820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409F27A31CD300820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409F27A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -225,8 +225,8 @@ 6436409C27A31CD800820AF7 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 6436409627A31CD000820AF7 /* pt */, - 6436409B27A31CD100820AF7 /* en */, + 6436409F27A31CD300820AF7 /* pt */, + 6436409F27A31CD500820AF7 /* en */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/lib/backend/api_requests/api_calls.dart b/lib/backend/api_requests/api_calls.dart index e7852f78..8d97cc39 100644 --- a/lib/backend/api_requests/api_calls.dart +++ b/lib/backend/api_requests/api_calls.dart @@ -36,6 +36,7 @@ class PhpGroup { static GetAccessCall getAccessCall = GetAccessCall(); static GetLiberationsCall getLiberationsCall = GetLiberationsCall(); static GetMessagesCall getMessagesCall = GetMessagesCall(); + static TesteCall testeCall = TesteCall(); } class LoginCall { @@ -2167,6 +2168,26 @@ class GetMessagesCall { .toList(); } +class TesteCall { + Future call() async { + final baseUrl = PhpGroup.getBaseUrl(); + + return ApiManager.instance.makeApiCall( + callName: 'teste', + apiUrl: '${baseUrl}est', + callType: ApiCallType.GET, + headers: {}, + params: {}, + returnBody: true, + encodeBodyUtf8: false, + decodeUtf8: false, + cache: false, + isStreamingApi: false, + alwaysAllowBody: false, + ); + } +} + /// End PHP Group Code class ApiPagingParams { From 54ee3ebda05b561f182b4d3a2a4e293f0877176b Mon Sep 17 00:00:00 2001 From: FlutterFlow <140657486+FlutterFlowEng@users.noreply.github.com> Date: Fri, 26 Jul 2024 13:22:13 +0000 Subject: [PATCH 4/6] o grande rollback --- ios/Runner.xcodeproj/project.pbxproj | 8 ++++---- lib/backend/api_requests/api_calls.dart | 21 --------------------- lib/pages/home_page/home_page_widget.dart | 17 ----------------- 3 files changed, 4 insertions(+), 42 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 54618e39..71e06db7 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -44,8 +44,8 @@ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 6436409F27A31CD300820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; - 6436409F27A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409B27A31CDD00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409227A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -225,8 +225,8 @@ 6436409C27A31CD800820AF7 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 6436409F27A31CD300820AF7 /* pt */, - 6436409F27A31CD500820AF7 /* en */, + 6436409B27A31CDD00820AF7 /* pt */, + 6436409227A31CD500820AF7 /* en */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/lib/backend/api_requests/api_calls.dart b/lib/backend/api_requests/api_calls.dart index 8d97cc39..e7852f78 100644 --- a/lib/backend/api_requests/api_calls.dart +++ b/lib/backend/api_requests/api_calls.dart @@ -36,7 +36,6 @@ class PhpGroup { static GetAccessCall getAccessCall = GetAccessCall(); static GetLiberationsCall getLiberationsCall = GetLiberationsCall(); static GetMessagesCall getMessagesCall = GetMessagesCall(); - static TesteCall testeCall = TesteCall(); } class LoginCall { @@ -2168,26 +2167,6 @@ class GetMessagesCall { .toList(); } -class TesteCall { - Future call() async { - final baseUrl = PhpGroup.getBaseUrl(); - - return ApiManager.instance.makeApiCall( - callName: 'teste', - apiUrl: '${baseUrl}est', - callType: ApiCallType.GET, - headers: {}, - params: {}, - returnBody: true, - encodeBodyUtf8: false, - decodeUtf8: false, - cache: false, - isStreamingApi: false, - alwaysAllowBody: false, - ); - } -} - /// End PHP Group Code class ApiPagingParams { diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index e28895db..292f13c8 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -1047,23 +1047,6 @@ class _HomePageWidgetState extends State { width: 100.0, height: 50.0, decoration: const BoxDecoration(), - child: Align( - alignment: const AlignmentDirectional(1.0, 1.0), - child: FlutterFlowIconButton( - borderRadius: 20.0, - borderWidth: 1.0, - buttonSize: 40.0, - icon: Icon( - Icons.notifications_sharp, - color: - FlutterFlowTheme.of(context).info, - size: 24.0, - ), - onPressed: () { - print('IconButton pressed ...'); - }, - ), - ), ), ), ], From dadbaff7a00ff6e4d6ff07ab6299c8a6dbc9dade Mon Sep 17 00:00:00 2001 From: FlutterFlow <140657486+FlutterFlowEng@users.noreply.github.com> Date: Fri, 26 Jul 2024 19:14:10 +0000 Subject: [PATCH 5/6] update --- ios/Runner.xcodeproj/project.pbxproj | 8 +- lib/actions/actions.dart | 2 +- .../local_profile_component_model.dart | 12 - .../local_profile_component_widget.dart | 151 - .../menu_component/menu_component_model.dart | 117 - .../menu_component/menu_component_widget.dart | 120 - .../menu_list_view_component_model.dart | 12 - .../menu_list_view_component_widget.dart | 1096 ------ .../menu_staggered_view_component_model.dart | 13 - .../menu_staggered_view_component_widget.dart | 1161 ------ .../message_well_component_model.dart | 12 - .../message_well_component_widget.dart | 125 - .../sign_in_template_component_model.dart | 61 - .../sign_in_template_component_widget.dart | 1026 ------ .../sign_up_template_component_model.dart | 91 - .../sign_up_template_component_widget.dart | 866 ----- .../welcome_template_component_model.dart | 13 - .../welcome_template_component_widget.dart | 445 --- lib/flutter_flow/internationalization.dart | 488 ++- lib/flutter_flow/nav/nav.dart | 17 +- lib/index.dart | 3 - lib/main.dart | 72 - ...cation_modal_template_component_model.dart | 0 ...ation_modal_template_component_widget.dart | 0 .../arrow_linked_locals_component_model.dart | 0 .../arrow_linked_locals_component_widget.dart | 0 ...m_arrow_linked_locals_component_model.dart | 0 ..._arrow_linked_locals_component_widget.dart | 0 .../card_item_template_component_model.dart | 0 .../card_item_template_component_widget.dart | 0 ...got_password_template_component_model.dart | 0 ...ot_password_template_component_widget.dart | 2 +- ...item_details_template_component_model.dart | 0 ...tem_details_template_component_widget.dart | 0 .../opt_modal/opt_modal_model.dart | 0 .../opt_modal/opt_modal_widget.dart | 0 .../option_selection_modal_model.dart | 0 .../option_selection_modal_widget.dart | 0 ...ode_pass_key_template_component_model.dart | 0 ...de_pass_key_template_component_widget.dart | 0 ...siter_vistor_template_component_model.dart | 0 ...iter_vistor_template_component_widget.dart | 2 +- .../schedule_visit_detail_model.dart | 0 .../schedule_visit_detail_widget.dart | 4 +- .../text_field_component_model.dart | 0 .../text_field_component_widget.dart | 0 .../throw_exception_model.dart | 0 .../throw_exception_widget.dart | 0 ...p_arrow_linked_locals_component_model.dart | 0 ..._arrow_linked_locals_component_widget.dart | 0 .../view_visit_detail_model.dart | 0 .../view_visit_detail_widget.dart | 4 +- ...etails_modal_template_component_model.dart | 4 +- ...tails_modal_template_component_widget.dart | 4 +- ...isit_request_template_component_model.dart | 0 ...sit_request_template_component_widget.dart | 0 ...etails_modal_template_component_model.dart | 0 ...tails_modal_template_component_widget.dart | 0 .../visitor_not_found_component_model.dart | 0 .../visitor_not_found_component_widget.dart | 2 +- ...search_modal_template_component_model.dart | 0 ...earch_modal_template_component_widget.dart | 4 +- .../acess_history_page_model.dart | 2 +- .../acess_history_page_widget.dart | 2 +- lib/pages/home_page/home_page_model.dart | 21 +- lib/pages/home_page/home_page_widget.dart | 3193 ++++++++++++++++- .../preferences_page_model.dart | 27 - .../preferences_page_widget.dart | 167 - .../qr_code_page/qr_code_page_widget.dart | 2 +- .../register_visitor_page_widget.dart | 2 +- .../schedule_complete_visit_page_widget.dart | 8 +- ...chedule_provisional_visit_page_widget.dart | 4 +- .../settings_page/settings_page_model.dart | 17 - .../settings_page/settings_page_widget.dart | 71 - .../sign_in_page/sign_in_page_model.dart | 49 +- .../sign_in_page/sign_in_page_widget.dart | 1094 +++++- .../sign_up_page/sign_up_page_model.dart | 79 +- .../sign_up_page/sign_up_page_widget.dart | 884 ++++- .../welcome_page/welcome_page_model.dart | 9 +- .../welcome_page/welcome_page_widget.dart | 435 ++- 80 files changed, 5924 insertions(+), 6079 deletions(-) delete mode 100644 lib/components/organism_components/local_profile_component/local_profile_component_model.dart delete mode 100644 lib/components/organism_components/local_profile_component/local_profile_component_widget.dart delete mode 100644 lib/components/organism_components/menu_component/menu_component_model.dart delete mode 100644 lib/components/organism_components/menu_component/menu_component_widget.dart delete mode 100644 lib/components/organism_components/menu_list_view_component/menu_list_view_component_model.dart delete mode 100644 lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart delete mode 100644 lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart delete mode 100644 lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart delete mode 100644 lib/components/organism_components/message_well_component/message_well_component_model.dart delete mode 100644 lib/components/organism_components/message_well_component/message_well_component_widget.dart delete mode 100644 lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart delete mode 100644 lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart delete mode 100644 lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart delete mode 100644 lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart delete mode 100644 lib/components/templates_components/welcome_template_component/welcome_template_component_model.dart delete mode 100644 lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart rename lib/{components/templates_components => modals}/access_notification_modal_template_component/access_notification_modal_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart (100%) rename lib/{components/organism_components => modals}/arrow_linked_locals_component/arrow_linked_locals_component_model.dart (100%) rename lib/{components/organism_components => modals}/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart (100%) rename lib/{components/organism_components => modals}/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart (100%) rename lib/{components/organism_components => modals}/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart (100%) rename lib/{components/templates_components => modals}/card_item_template_component/card_item_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/card_item_template_component/card_item_template_component_widget.dart (100%) rename lib/{components/templates_components => modals}/forgot_password_template_component/forgot_password_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/forgot_password_template_component/forgot_password_template_component_widget.dart (99%) rename lib/{components/templates_components => modals}/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart (100%) rename lib/{components/molecular_components => modals}/opt_modal/opt_modal_model.dart (100%) rename lib/{components/molecular_components => modals}/opt_modal/opt_modal_widget.dart (100%) rename lib/{components/molecular_components => modals}/option_selection_modal/option_selection_modal_model.dart (100%) rename lib/{components/molecular_components => modals}/option_selection_modal/option_selection_modal_widget.dart (100%) rename lib/{components/templates_components => modals}/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart (100%) rename lib/{components/templates_components => modals}/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart (99%) rename lib/{components/organism_components => modals}/schedule_visit_detail/schedule_visit_detail_model.dart (100%) rename lib/{components/organism_components => modals}/schedule_visit_detail/schedule_visit_detail_widget.dart (99%) rename lib/{components/atomic_components => modals}/text_field_component/text_field_component_model.dart (100%) rename lib/{components/atomic_components => modals}/text_field_component/text_field_component_widget.dart (100%) rename lib/{components/molecular_components => modals}/throw_exception/throw_exception_model.dart (100%) rename lib/{components/molecular_components => modals}/throw_exception/throw_exception_widget.dart (100%) rename lib/{components/organism_components => modals}/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart (100%) rename lib/{components/organism_components => modals}/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart (100%) rename lib/{components/templates_components => modals}/view_visit_detail/view_visit_detail_model.dart (100%) rename lib/{components/templates_components => modals}/view_visit_detail/view_visit_detail_widget.dart (99%) rename lib/{components/templates_components => modals}/visit_details_modal_template_component/visit_details_modal_template_component_model.dart (84%) rename lib/{components/templates_components => modals}/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart (95%) rename lib/{components/templates_components => modals}/visit_request_template_component/visit_request_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/visit_request_template_component/visit_request_template_component_widget.dart (100%) rename lib/{components/templates_components => modals}/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart (100%) rename lib/{components/molecular_components => modals}/visitor_not_found_component/visitor_not_found_component_model.dart (100%) rename lib/{components/molecular_components => modals}/visitor_not_found_component/visitor_not_found_component_widget.dart (98%) rename lib/{components/templates_components => modals}/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart (100%) rename lib/{components/templates_components => modals}/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart (99%) delete mode 100644 lib/pages/preferences_page/preferences_page_model.dart delete mode 100644 lib/pages/preferences_page/preferences_page_widget.dart delete mode 100644 lib/pages/settings_page/settings_page_model.dart delete mode 100644 lib/pages/settings_page/settings_page_widget.dart diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 71e06db7..a5237d97 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -44,8 +44,8 @@ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 6436409B27A31CDD00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; - 6436409227A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409127A31CDF00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409E27A31CD200820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* 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 = ""; diff --git a/lib/actions/actions.dart b/lib/actions/actions.dart index 30c1b6b9..31ae88e8 100644 --- a/lib/actions/actions.dart +++ b/lib/actions/actions.dart @@ -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; diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_model.dart b/lib/components/organism_components/local_profile_component/local_profile_component_model.dart deleted file mode 100644 index 25442482..00000000 --- a/lib/components/organism_components/local_profile_component/local_profile_component_model.dart +++ /dev/null @@ -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 { - @override - void initState(BuildContext context) {} - - @override - void dispose() {} -} diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart deleted file mode 100644 index 80e43f30..00000000 --- a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart +++ /dev/null @@ -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 createState() => - _LocalProfileComponentWidgetState(); -} - -class _LocalProfileComponentWidgetState - extends State { - 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(); - - 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( - '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( - 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)), - ), - ), - ), - ), - ), - ); - } -} diff --git a/lib/components/organism_components/menu_component/menu_component_model.dart b/lib/components/organism_components/menu_component/menu_component_model.dart deleted file mode 100644 index d50f9dfe..00000000 --- a/lib/components/organism_components/menu_component/menu_component_model.dart +++ /dev/null @@ -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 { - /// 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: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - } - - Future peopleOnThePropertyAction(BuildContext context) async { - context.pushNamed( - 'peopleOnThePropertyPage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.fade, - ), - }, - ); - } - - Future acessHistoryOptAction(BuildContext context) async { - context.pushNamed( - 'acessHistoryPage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - } - - Future liberationHistoryOptAction(BuildContext context) async { - context.pushNamed( - 'liberationHistory', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - } - - Future accessQRCodeOptAction(BuildContext context) async { - context.pushNamed( - 'qrCodePage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); - } -} diff --git a/lib/components/organism_components/menu_component/menu_component_widget.dart b/lib/components/organism_components/menu_component/menu_component_widget.dart deleted file mode 100644 index 79afe54b..00000000 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ /dev/null @@ -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 createState() => _MenuComponentWidgetState(); -} - -class _MenuComponentWidgetState extends State { - 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(() {}); - }, - ), - ); - } - }, - ), - ); - } -} diff --git a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_model.dart b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_model.dart deleted file mode 100644 index 7ce9985b..00000000 --- a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_model.dart +++ /dev/null @@ -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 { - @override - void initState(BuildContext context) {} - - @override - void dispose() {} -} diff --git a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart deleted file mode 100644 index 0f7b62aa..00000000 --- a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart +++ /dev/null @@ -1,1096 +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 'menu_list_view_component_model.dart'; -export 'menu_list_view_component_model.dart'; - -class MenuListViewComponentWidget extends StatefulWidget { - const MenuListViewComponentWidget({ - super.key, - required this.changeMenuStyle, - required this.registerVisitorOptAction, - required this.scheduleVisitOptAction, - required this.peopleOnThePropertyOptAction, - required this.acessHistoryOptAction, - required this.liberationHistoryOptAction, - required this.accessQRCodeOptAction, - }); - - final Future Function()? changeMenuStyle; - final Future Function()? registerVisitorOptAction; - final Future Function()? scheduleVisitOptAction; - final Future Function()? peopleOnThePropertyOptAction; - final Future Function()? acessHistoryOptAction; - final Future Function()? liberationHistoryOptAction; - final Future Function()? accessQRCodeOptAction; - - @override - State createState() => - _MenuListViewComponentWidgetState(); -} - -class _MenuListViewComponentWidgetState - extends State { - late MenuListViewComponentModel _model; - - @override - void setState(VoidCallback callback) { - super.setState(callback); - _model.onUpdate(); - } - - @override - void initState() { - super.initState(); - _model = createModel(context, () => MenuListViewComponentModel()); - } - - @override - void dispose() { - _model.maybeDispose(); - - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return Wrap( - spacing: 0.0, - runSpacing: 0.0, - alignment: WrapAlignment.start, - crossAxisAlignment: WrapCrossAlignment.start, - direction: Axis.horizontal, - runAlignment: WrapAlignment.start, - verticalDirection: VerticalDirection.down, - clipBehavior: Clip.none, - children: [ - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(5.0, 0.0, 5.0, 0.0), - child: Container( - width: double.infinity, - height: 125.0, - decoration: const BoxDecoration(), - child: ListView( - padding: const EdgeInsets.fromLTRB( - 10.0, - 0, - 10.0, - 0, - ), - scrollDirection: Axis.horizontal, - children: [ - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.scheduleVisitOptAction?.call(); - }, - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - FFIcons.kvector1, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'utgue9a5' /* Agendar -Visita */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.registerVisitorOptAction?.call(); - }, - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - FFIcons.kvector, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - '82b5f8yz' /* Cadastrar -Visitante */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - FFIcons.khome, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 't4ie13ut' /* Vincular -Condomínio */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - FFIcons.kpets, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'n3n76pha' /* Cadastrar -Pet */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.accessQRCodeOptAction?.call(); - }, - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - FFIcons.kvector2, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'l6b9o7yn' /* QR Code -de Acesso */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.peopleOnThePropertyOptAction?.call(); - }, - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - Icons.people, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'rxnrtdau' /* Pessoas na -Propriedade */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.acessHistoryOptAction?.call(); - }, - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - Icons.history_sharp, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'nxssjz3q' /* Consultar -Históricos */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.acessHistoryOptAction?.call(); - }, - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - Icons.history_sharp, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - '589qufkw' /* Histórico -de Acesso */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.liberationHistoryOptAction?.call(); - }, - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - Icons.history_sharp, - color: FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - '944g4ib1' /* Histórico -de Liberação */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - ), - ].divide(const SizedBox(width: 15.0)), - ), - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: FlutterFlowIconButton( - borderColor: Colors.transparent, - borderRadius: 20.0, - borderWidth: 1.0, - buttonSize: 50.0, - fillColor: const Color(0x00FFFFFF), - icon: Icon( - Icons.keyboard_arrow_down_outlined, - color: FlutterFlowTheme.of(context).primary, - ), - onPressed: () async { - await widget.changeMenuStyle?.call(); - }, - ), - ), - ], - ); - } -} diff --git a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart deleted file mode 100644 index 8aebfc69..00000000 --- a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart +++ /dev/null @@ -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 { - @override - void initState(BuildContext context) {} - - @override - void dispose() {} -} diff --git a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart deleted file mode 100644 index f4db990c..00000000 --- a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart +++ /dev/null @@ -1,1161 +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:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; -import 'package:google_fonts/google_fonts.dart'; -import 'menu_staggered_view_component_model.dart'; -export 'menu_staggered_view_component_model.dart'; - -class MenuStaggeredViewComponentWidget extends StatefulWidget { - const MenuStaggeredViewComponentWidget({ - super.key, - required this.changeMenuStyleAction, - required this.registerVisitorOptAction, - required this.scheduleVisitOptAction, - required this.peopleOnThePropertyOptAction, - required this.accessHistoryOptAction, - required this.liberationHistoryOptAction, - required this.accessQRCodeOptAction, - }); - - final Future Function()? changeMenuStyleAction; - final Future Function()? registerVisitorOptAction; - final Future Function()? scheduleVisitOptAction; - final Future Function()? peopleOnThePropertyOptAction; - final Future Function()? accessHistoryOptAction; - final Future Function()? liberationHistoryOptAction; - final Future Function()? accessQRCodeOptAction; - - @override - State createState() => - _MenuStaggeredViewComponentWidgetState(); -} - -class _MenuStaggeredViewComponentWidgetState - extends State { - late MenuStaggeredViewComponentModel _model; - - @override - void setState(VoidCallback callback) { - super.setState(callback); - _model.onUpdate(); - } - - @override - void initState() { - super.initState(); - _model = createModel(context, () => MenuStaggeredViewComponentModel()); - } - - @override - void dispose() { - _model.maybeDispose(); - - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return Wrap( - spacing: 0.0, - runSpacing: 0.0, - alignment: WrapAlignment.start, - crossAxisAlignment: WrapCrossAlignment.start, - direction: Axis.horizontal, - runAlignment: WrapAlignment.start, - verticalDirection: VerticalDirection.down, - clipBehavior: Clip.none, - children: [ - Container( - width: double.infinity, - height: MediaQuery.sizeOf(context).height * 0.498, - decoration: const BoxDecoration(), - child: Padding( - padding: const EdgeInsets.all(14.0), - child: MasonryGridView.builder( - physics: const NeverScrollableScrollPhysics(), - gridDelegate: const SliverSimpleGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 3, - ), - crossAxisSpacing: 10.0, - mainAxisSpacing: 10.0, - itemCount: 9, - padding: const EdgeInsets.fromLTRB( - 0, - 10.0, - 0, - 10.0, - ), - shrinkWrap: true, - itemBuilder: (context, index) { - return [ - () => InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.scheduleVisitOptAction?.call(); - }, - child: Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - FFIcons.kvector1, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'ee33l0ms' /* Agendar -Visita */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - () => InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.registerVisitorOptAction?.call(); - }, - child: Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - FFIcons.kvector, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'ya37l3jt' /* Cadastrar - Visitante */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - FFIcons.khome, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'h8s3adu8' /* Vincular -Condomínio */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Icon( - FFIcons.kpets, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'j6tfixen' /* Cadastrar -Pet */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - () => InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.accessQRCodeOptAction?.call(); - }, - child: Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - FFIcons.kvector2, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - '9tli4i2x' /* QR Code -de Acesso */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - () => InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.peopleOnThePropertyOptAction?.call(); - }, - child: Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - Icons.people, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'i22hecs8' /* Pessoas na -Propriedade */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - () => InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.accessHistoryOptAction?.call(); - }, - child: Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - Icons.history_sharp, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - '6jzghbyi' /* Histórico -de Acesso */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - () => InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.liberationHistoryOptAction?.call(); - }, - child: Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - Icons.history_sharp, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'u8qu4v6q' /* Histórico -de Liberação */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - () => InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await widget.liberationHistoryOptAction?.call(); - }, - child: Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of(context).customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: BorderRadius.circular(24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of(context).alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.spaceEvenly, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(-1.0, 0.0), - child: Padding( - padding: - const EdgeInsetsDirectional.fromSTEB( - 8.0, 0.0, 0.0, 0.0), - child: Container( - width: 30.0, - height: 30.0, - decoration: BoxDecoration( - color: - FlutterFlowTheme.of(context) - .primaryBackground, - shape: BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, 0.0), - child: Icon( - Icons.settings_rounded, - color: - FlutterFlowTheme.of(context) - .accent1, - size: 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Text( - FFLocalizations.of(context).getText( - 'dzk31zpc' /* Preferencias -do Sistema */ - , - ), - style: FlutterFlowTheme.of(context) - .titleLarge - .override( - fontFamily: 'Nunito', - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap() - .containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox(height: 0.0)), - ), - ), - ), - ), - ][index](); - }, - ), - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Container( - decoration: const BoxDecoration( - borderRadius: BorderRadius.only( - bottomLeft: Radius.circular(0.0), - bottomRight: Radius.circular(0.0), - topLeft: Radius.circular(0.0), - topRight: Radius.circular(0.0), - ), - ), - alignment: const AlignmentDirectional(0.0, 0.0), - child: Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: FlutterFlowIconButton( - borderColor: Colors.transparent, - borderRadius: 20.0, - borderWidth: 1.0, - buttonSize: 50.0, - fillColor: const Color(0x00FFFFFF), - icon: Icon( - Icons.keyboard_arrow_up_sharp, - color: FlutterFlowTheme.of(context).primary, - ), - onPressed: () async { - await widget.changeMenuStyleAction?.call(); - }, - ), - ), - ), - ), - ], - ); - } -} diff --git a/lib/components/organism_components/message_well_component/message_well_component_model.dart b/lib/components/organism_components/message_well_component/message_well_component_model.dart deleted file mode 100644 index 3da2a723..00000000 --- a/lib/components/organism_components/message_well_component/message_well_component_model.dart +++ /dev/null @@ -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 { - @override - void initState(BuildContext context) {} - - @override - void dispose() {} -} diff --git a/lib/components/organism_components/message_well_component/message_well_component_widget.dart b/lib/components/organism_components/message_well_component/message_well_component_widget.dart deleted file mode 100644 index d8a5b8b8..00000000 --- a/lib/components/organism_components/message_well_component/message_well_component_widget.dart +++ /dev/null @@ -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 createState() => - _MessageWellComponentWidgetState(); -} - -class _MessageWellComponentWidgetState - extends State { - 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 [], - ), - ), - ), - ), - ], - ), - ), - ), - ); - } -} diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart deleted file mode 100644 index fd542965..00000000 --- a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart +++ /dev/null @@ -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 { - /// State fields for stateful widgets in this component. - - final formKey = GlobalKey(); - // 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(); - } -} diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart deleted file mode 100644 index ae8cc9df..00000000 --- a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart +++ /dev/null @@ -1,1026 +0,0 @@ -import '/components/templates_components/forgot_password_template_component/forgot_password_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/gestures.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_animate/flutter_animate.dart'; -import 'package:google_fonts/google_fonts.dart'; -import 'sign_in_template_component_model.dart'; -export 'sign_in_template_component_model.dart'; - -class SignInTemplateComponentWidget extends StatefulWidget { - const SignInTemplateComponentWidget({ - super.key, - required this.toggleSignUpPage, - }); - - final Future Function()? toggleSignUpPage; - - @override - State createState() => - _SignInTemplateComponentWidgetState(); -} - -class _SignInTemplateComponentWidgetState - extends State with TickerProviderStateMixin { - late SignInTemplateComponentModel _model; - - final animationsMap = {}; - - @override - void setState(VoidCallback callback) { - super.setState(callback); - _model.onUpdate(); - } - - @override - void initState() { - super.initState(); - _model = createModel(context, () => SignInTemplateComponentModel()); - - _model.emailAddressTextController ??= TextEditingController(); - _model.emailAddressFocusNode ??= FocusNode(); - - _model.passwordTextController ??= TextEditingController(); - _model.passwordFocusNode ??= FocusNode(); - - animationsMap.addAll({ - 'containerOnPageLoadAnimation': AnimationInfo( - trigger: AnimationTrigger.onPageLoad, - effectsBuilder: () => [ - VisibilityEffect(duration: 1.ms), - FadeEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: 0.0, - end: 1.0, - ), - MoveEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(0.0, 140.0), - end: const Offset(0.0, 0.0), - ), - ScaleEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(0.9, 0.9), - end: const Offset(1.0, 1.0), - ), - TiltEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(-0.349, 0), - end: const Offset(0, 0), - ), - ], - ), - }); - } - - @override - void dispose() { - _model.maybeDispose(); - - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return Row( - mainAxisSize: MainAxisSize.max, - children: [ - Expanded( - flex: 6, - child: Container( - width: 100.0, - height: double.infinity, - decoration: const BoxDecoration(), - alignment: const AlignmentDirectional(0.0, -1.0), - child: Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: - const EdgeInsetsDirectional.fromSTEB(0.0, 35.0, 0.0, 35.0), - child: Container( - width: 548.0, - height: 112.0, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(16.0), - ), - alignment: const AlignmentDirectional(0.0, 0.0), - child: Padding( - padding: const EdgeInsets.all(20.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: const AlignmentDirectional(0.0, 1.0), - child: Padding( - padding: const EdgeInsets.all(3.0), - child: Text( - FFLocalizations.of(context).getText( - '9hbdjxrz' /* VAMOS LA! ENTRE COM A SUA CONT... */, - ), - textAlign: TextAlign.start, - style: FlutterFlowTheme.of(context) - .displaySmall - .override( - fontFamily: 'Plus Jakarta Sans', - color: FlutterFlowTheme.of(context) - .primaryText, - fontSize: 24.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts.asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - ), - ), - ), - ), - ], - ), - ), - ), - ), - Container( - width: 291.0, - height: 167.0, - decoration: const BoxDecoration(), - child: ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image.network( - 'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/sr43ucngg4a4/Vector.png', - width: 603.0, - height: 155.0, - fit: BoxFit.contain, - ), - ), - ), - Column( - mainAxisSize: MainAxisSize.max, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 34.0, 0.0, 34.0, 0.0), - child: Container( - width: double.infinity, - constraints: const BoxConstraints( - maxWidth: 570.0, - ), - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - borderRadius: BorderRadius.circular(12.0), - shape: BoxShape.rectangle, - ), - child: Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Padding( - padding: const EdgeInsets.all(32.0), - child: Column( - mainAxisSize: MainAxisSize.max, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Form( - key: _model.formKey, - autovalidateMode: - AutovalidateMode.always, - 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 - .emailAddressTextController, - focusNode: _model - .emailAddressFocusNode, - onChanged: (_) => - EasyDebounce.debounce( - '_model.emailAddressTextController', - const Duration(milliseconds: 500), - () => setState(() {}), - ), - autofocus: true, - autofillHints: const [ - AutofillHints.email - ], - textCapitalization: - TextCapitalization.none, - textInputAction: - TextInputAction.next, - obscureText: false, - decoration: InputDecoration( - isDense: true, - labelText: - FFLocalizations.of( - context) - .getText( - '1ltg0ylb' /* Email */, - ), - labelStyle: FlutterFlowTheme - .of(context) - .labelLarge - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme - .of(context) - .primaryText, - fontSize: 16.0, - letterSpacing: 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - enabledBorder: - OutlineInputBorder( - borderSide: BorderSide( - color: - FlutterFlowTheme.of( - context) - .customColor1, - width: 0.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), - ), - suffixIcon: Icon( - Icons.email, - color: - FlutterFlowTheme.of( - context) - .accent1, - size: 22.0, - ), - ), - style: FlutterFlowTheme.of( - context) - .bodyLarge - .override( - fontFamily: - 'Plus Jakarta Sans', - color: - FlutterFlowTheme.of( - context) - .primaryText, - fontSize: 16.0, - letterSpacing: 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - keyboardType: TextInputType - .emailAddress, - validator: _model - .emailAddressTextControllerValidator - .asValidator(context), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 0.0, 0.0, 16.0), - child: SizedBox( - width: double.infinity, - child: TextFormField( - controller: _model - .passwordTextController, - focusNode: - _model.passwordFocusNode, - onChanged: (_) => - EasyDebounce.debounce( - '_model.passwordTextController', - const Duration(milliseconds: 500), - () => setState(() {}), - ), - autofocus: true, - autofillHints: const [ - AutofillHints.password - ], - textInputAction: - TextInputAction.send, - obscureText: !_model - .passwordVisibility, - decoration: InputDecoration( - isDense: true, - labelText: - FFLocalizations.of( - context) - .getText( - '2x19ce8k' /* 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 - .passwordVisibility = - !_model - .passwordVisibility, - ), - focusNode: FocusNode( - skipTraversal: true), - child: Icon( - _model.passwordVisibility - ? Icons - .visibility_outlined - : Icons - .visibility_off_outlined, - color: - FlutterFlowTheme.of( - context) - .accent1, - size: 24.0, - ), - ), - ), - style: FlutterFlowTheme.of( - context) - .bodyLarge - .override( - fontFamily: - 'Plus Jakarta Sans', - color: - FlutterFlowTheme.of( - context) - .primaryText, - fontSize: 16.0, - letterSpacing: 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - validator: _model - .passwordTextControllerValidator - .asValidator(context), - ), - ), - ), - ], - ), - ), - Builder( - builder: (context) { - if (MediaQuery.sizeOf(context).width < - kBreakpointSmall - ? true - : false) { - return Column( - mainAxisSize: MainAxisSize.max, - children: [ - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 0.0, 0.0, 16.0), - child: FFButtonWidget( - onPressed: ((_model.emailAddressTextController - .text == - '') && - (_model.passwordTextController - .text == - '')) - ? null - : () async { - await action_blocks - .singInLoginAction( - context, - emailAdress: _model - .emailAddressTextController - .text, - password: _model - .passwordTextController - .text, - ); - setState(() {}); - }, - text: FFLocalizations.of( - context) - .getText( - 'k44tm7wo' /* 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), - disabledColor: - FlutterFlowTheme.of( - context) - .customColor5, - disabledTextColor: - Colors.white, - ), - 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( - '14u7ipws' /* Cadastrar */, - ), - options: FFButtonOptions( - width: double.infinity, - height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - color: - FlutterFlowTheme.of( - context) - .customColor1, - textStyle: - FlutterFlowTheme.of( - context) - .titleSmall - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .secondaryText, - fontSize: 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - elevation: 3.0, - borderSide: const BorderSide( - color: - Colors.transparent, - width: 1.0, - ), - borderRadius: - BorderRadius.circular( - 12.0), - ), - showLoadingIndicator: false, - ), - ), - ], - ); - } else { - return Row( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment.spaceEvenly, - children: [ - Expanded( - child: Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB(0.0, 0.0, - 0.0, 16.0), - child: FFButtonWidget( - onPressed: (((_model.emailAddressTextController - .text == - '') || - ((_model.emailAddressFocusNode - ?.hasFocus ?? - false) != - null)) && - ((_model.emailAddressTextController - .text == - '') || - ((_model.passwordTextController.text == - '') || - ((_model.passwordFocusNode?.hasFocus ?? - false) != - null)))) - ? null - : () async { - await action_blocks - .singInLoginAction( - context, - emailAdress: _model - .emailAddressTextController - .text, - password: _model - .passwordTextController - .text, - ); - setState(() {}); - }, - text: FFLocalizations.of( - context) - .getText( - '1x926nsn' /* Entrar */, - ), - options: FFButtonOptions( - width: double.infinity, - height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - color: - FlutterFlowTheme.of( - context) - .accent1, - textStyle: - FlutterFlowTheme.of( - context) - .titleSmall - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .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), - disabledColor: - const Color(0xE81AAB5F), - ), - 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( - 'jwvd4ai1' /* Cadastrar */, - ), - options: FFButtonOptions( - width: double.infinity, - height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - color: - FlutterFlowTheme.of( - context) - .customColor1, - textStyle: - FlutterFlowTheme.of( - context) - .titleSmall - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .secondaryText, - fontSize: - 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - elevation: 3.0, - borderSide: const BorderSide( - color: Colors - .transparent, - width: 1.0, - ), - borderRadius: - BorderRadius - .circular(12.0), - ), - showLoadingIndicator: - false, - ), - ), - ), - ].divide(const SizedBox(width: 7.0)), - ); - } - }, - ), - - // You will have to add an action on this rich text to go to your login page. - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 0.0, 12.0, 0.0, 12.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: Colors.transparent, - onTap: () async { - await showModalBottomSheet( - isScrollControlled: true, - backgroundColor: - Colors.transparent, - enableDrag: false, - context: context, - builder: (context) { - return Padding( - padding: - MediaQuery.viewInsetsOf( - context), - child: - const ForgotPasswordTemplateComponentWidget(), - ); - }, - ).then( - (value) => safeSetState(() {})); - }, - child: RichText( - textScaler: MediaQuery.of(context) - .textScaler, - text: TextSpan( - children: [ - TextSpan( - text: FFLocalizations.of( - context) - .getText( - '05dx91ku' /* Você esqueceu a sua senha? */, - ), - style: TextStyle( - color: FlutterFlowTheme.of( - context) - .primaryText, - ), - ), - TextSpan( - text: FFLocalizations.of( - context) - .getText( - 'p5c6d54y' /* Recupere aqui */, - ), - style: FlutterFlowTheme.of( - context) - .bodyMedium - .override( - fontFamily: - 'Plus Jakarta Sans', - color: - FlutterFlowTheme.of( - context) - .primary, - fontSize: 14.0, - letterSpacing: 0.0, - fontWeight: - FontWeight.normal, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - mouseCursor: - SystemMouseCursors.click, - recognizer: - TapGestureRecognizer() - ..onTap = () async { - await showModalBottomSheet( - isScrollControlled: - true, - backgroundColor: - Colors - .transparent, - context: context, - builder: (context) { - return Padding( - padding: MediaQuery - .viewInsetsOf( - context), - child: - const ForgotPasswordTemplateComponentWidget(), - ); - }, - ).then((value) => - safeSetState( - () {})); - }, - ) - ], - style: - FlutterFlowTheme.of(context) - .bodyMedium - .override( - fontFamily: - FlutterFlowTheme.of( - context) - .bodyMediumFamily, - letterSpacing: 0.0, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - FlutterFlowTheme.of( - context) - .bodyMediumFamily), - ), - ), - ), - ), - ), - Text( - FFLocalizations.of(context).getText( - 'olf967cj' /* Termo de Uso */, - ), - style: FlutterFlowTheme.of(context) - .bodyMedium - .override( - fontFamily: - FlutterFlowTheme.of(context) - .bodyMediumFamily, - color: - FlutterFlowTheme.of(context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - FlutterFlowTheme.of( - context) - .bodyMediumFamily), - ), - ), - ], - ), - ), - ), - ).animateOnPageLoad( - animationsMap['containerOnPageLoadAnimation']!), - ), - ), - ], - ), - ], - ), - ), - ), - ), - ), - ], - ); - } -} diff --git a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart deleted file mode 100644 index bbcd4725..00000000 --- a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart +++ /dev/null @@ -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 { - /// State fields for stateful widgets in this component. - - final formKey = GlobalKey(); - // 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(); - } -} diff --git a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart deleted file mode 100644 index 0d5327b0..00000000 --- a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart +++ /dev/null @@ -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 createState() => - _SignUpTemplateComponentWidgetState(); -} - -class _SignUpTemplateComponentWidgetState - extends State with TickerProviderStateMixin { - late SignUpTemplateComponentModel _model; - - final animationsMap = {}; - - @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(); - - 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), - ), - ), - ], - ), - ), - ), - ), - ), - ], - ); - } -} diff --git a/lib/components/templates_components/welcome_template_component/welcome_template_component_model.dart b/lib/components/templates_components/welcome_template_component/welcome_template_component_model.dart deleted file mode 100644 index 17ea3047..00000000 --- a/lib/components/templates_components/welcome_template_component/welcome_template_component_model.dart +++ /dev/null @@ -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 { - @override - void initState(BuildContext context) {} - - @override - void dispose() {} -} diff --git a/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart b/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart deleted file mode 100644 index bdb465b1..00000000 --- a/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart +++ /dev/null @@ -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 createState() => - _WelcomeTemplateComponentWidgetState(); -} - -class _WelcomeTemplateComponentWidgetState - extends State - with TickerProviderStateMixin { - late WelcomeTemplateComponentModel _model; - - final animationsMap = {}; - - @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']!), - ), - ), - ], - ), - ), - ); - } -} diff --git a/lib/flutter_flow/internationalization.dart b/lib/flutter_flow/internationalization.dart index b0b78958..90baffdf 100644 --- a/lib/flutter_flow/internationalization.dart +++ b/lib/flutter_flow/internationalization.dart @@ -151,6 +151,86 @@ final kTranslationsMap = >>[ '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 = >>[ }, // 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 = >>[ }, // 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 = >>[ }, // 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 = >>[ '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 = >>[ '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': { diff --git a/lib/flutter_flow/nav/nav.dart b/lib/flutter_flow/nav/nav.dart index d6c54bca..fb4887f7 100644 --- a/lib/flutter_flow/nav/nav.dart +++ b/lib/flutter_flow/nav/nav.dart @@ -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(), ); diff --git a/lib/index.dart b/lib/index.dart index 996c7347..e7526939 100644 --- a/lib/index.dart +++ b/lib/index.dart @@ -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; diff --git a/lib/main.dart b/lib/main.dart index 85cc7135..05c412f7 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -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 { ); } } - -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 { - 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( - 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: '', - ) - ], - ), - ); - } -} diff --git a/lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_model.dart b/lib/modals/access_notification_modal_template_component/access_notification_modal_template_component_model.dart similarity index 100% rename from lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_model.dart rename to lib/modals/access_notification_modal_template_component/access_notification_modal_template_component_model.dart diff --git a/lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart b/lib/modals/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart similarity index 100% rename from lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart rename to lib/modals/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart diff --git a/lib/components/organism_components/arrow_linked_locals_component/arrow_linked_locals_component_model.dart b/lib/modals/arrow_linked_locals_component/arrow_linked_locals_component_model.dart similarity index 100% rename from lib/components/organism_components/arrow_linked_locals_component/arrow_linked_locals_component_model.dart rename to lib/modals/arrow_linked_locals_component/arrow_linked_locals_component_model.dart diff --git a/lib/components/organism_components/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart b/lib/modals/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart similarity index 100% rename from lib/components/organism_components/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart rename to lib/modals/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart diff --git a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart b/lib/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart similarity index 100% rename from lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart rename to lib/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart diff --git a/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart b/lib/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart similarity index 100% rename from lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart rename to lib/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart diff --git a/lib/components/templates_components/card_item_template_component/card_item_template_component_model.dart b/lib/modals/card_item_template_component/card_item_template_component_model.dart similarity index 100% rename from lib/components/templates_components/card_item_template_component/card_item_template_component_model.dart rename to lib/modals/card_item_template_component/card_item_template_component_model.dart diff --git a/lib/components/templates_components/card_item_template_component/card_item_template_component_widget.dart b/lib/modals/card_item_template_component/card_item_template_component_widget.dart similarity index 100% rename from lib/components/templates_components/card_item_template_component/card_item_template_component_widget.dart rename to lib/modals/card_item_template_component/card_item_template_component_widget.dart diff --git a/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_model.dart b/lib/modals/forgot_password_template_component/forgot_password_template_component_model.dart similarity index 100% rename from lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_model.dart rename to lib/modals/forgot_password_template_component/forgot_password_template_component_model.dart diff --git a/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart b/lib/modals/forgot_password_template_component/forgot_password_template_component_widget.dart similarity index 99% rename from lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart rename to lib/modals/forgot_password_template_component/forgot_password_template_component_widget.dart index 39cce295..09fdeb47 100644 --- a/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart +++ b/lib/modals/forgot_password_template_component/forgot_password_template_component_widget.dart @@ -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'; diff --git a/lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart b/lib/modals/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart similarity index 100% rename from lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart rename to lib/modals/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart diff --git a/lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart b/lib/modals/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart similarity index 100% rename from lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart rename to lib/modals/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart diff --git a/lib/components/molecular_components/opt_modal/opt_modal_model.dart b/lib/modals/opt_modal/opt_modal_model.dart similarity index 100% rename from lib/components/molecular_components/opt_modal/opt_modal_model.dart rename to lib/modals/opt_modal/opt_modal_model.dart diff --git a/lib/components/molecular_components/opt_modal/opt_modal_widget.dart b/lib/modals/opt_modal/opt_modal_widget.dart similarity index 100% rename from lib/components/molecular_components/opt_modal/opt_modal_widget.dart rename to lib/modals/opt_modal/opt_modal_widget.dart diff --git a/lib/components/molecular_components/option_selection_modal/option_selection_modal_model.dart b/lib/modals/option_selection_modal/option_selection_modal_model.dart similarity index 100% rename from lib/components/molecular_components/option_selection_modal/option_selection_modal_model.dart rename to lib/modals/option_selection_modal/option_selection_modal_model.dart diff --git a/lib/components/molecular_components/option_selection_modal/option_selection_modal_widget.dart b/lib/modals/option_selection_modal/option_selection_modal_widget.dart similarity index 100% rename from lib/components/molecular_components/option_selection_modal/option_selection_modal_widget.dart rename to lib/modals/option_selection_modal/option_selection_modal_widget.dart diff --git a/lib/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart b/lib/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart similarity index 100% rename from lib/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart rename to lib/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart diff --git a/lib/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart b/lib/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart similarity index 100% rename from lib/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart rename to lib/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart diff --git a/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart b/lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart similarity index 100% rename from lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart rename to lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart diff --git a/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart b/lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart similarity index 99% rename from lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart rename to lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart index 4a00c919..85b06c3f 100644 --- a/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart +++ b/lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart @@ -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'; diff --git a/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart b/lib/modals/schedule_visit_detail/schedule_visit_detail_model.dart similarity index 100% rename from lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart rename to lib/modals/schedule_visit_detail/schedule_visit_detail_model.dart diff --git a/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart b/lib/modals/schedule_visit_detail/schedule_visit_detail_widget.dart similarity index 99% rename from lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart rename to lib/modals/schedule_visit_detail/schedule_visit_detail_widget.dart index 9641ca52..07e45567 100644 --- a/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart +++ b/lib/modals/schedule_visit_detail/schedule_visit_detail_widget.dart @@ -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'; diff --git a/lib/components/atomic_components/text_field_component/text_field_component_model.dart b/lib/modals/text_field_component/text_field_component_model.dart similarity index 100% rename from lib/components/atomic_components/text_field_component/text_field_component_model.dart rename to lib/modals/text_field_component/text_field_component_model.dart diff --git a/lib/components/atomic_components/text_field_component/text_field_component_widget.dart b/lib/modals/text_field_component/text_field_component_widget.dart similarity index 100% rename from lib/components/atomic_components/text_field_component/text_field_component_widget.dart rename to lib/modals/text_field_component/text_field_component_widget.dart diff --git a/lib/components/molecular_components/throw_exception/throw_exception_model.dart b/lib/modals/throw_exception/throw_exception_model.dart similarity index 100% rename from lib/components/molecular_components/throw_exception/throw_exception_model.dart rename to lib/modals/throw_exception/throw_exception_model.dart diff --git a/lib/components/molecular_components/throw_exception/throw_exception_widget.dart b/lib/modals/throw_exception/throw_exception_widget.dart similarity index 100% rename from lib/components/molecular_components/throw_exception/throw_exception_widget.dart rename to lib/modals/throw_exception/throw_exception_widget.dart diff --git a/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart b/lib/modals/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart similarity index 100% rename from lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart rename to lib/modals/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart diff --git a/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart b/lib/modals/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart similarity index 100% rename from lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart rename to lib/modals/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart diff --git a/lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart b/lib/modals/view_visit_detail/view_visit_detail_model.dart similarity index 100% rename from lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart rename to lib/modals/view_visit_detail/view_visit_detail_model.dart diff --git a/lib/components/templates_components/view_visit_detail/view_visit_detail_widget.dart b/lib/modals/view_visit_detail/view_visit_detail_widget.dart similarity index 99% rename from lib/components/templates_components/view_visit_detail/view_visit_detail_widget.dart rename to lib/modals/view_visit_detail/view_visit_detail_widget.dart index 73f3e397..a9e1fa7a 100644 --- a/lib/components/templates_components/view_visit_detail/view_visit_detail_widget.dart +++ b/lib/modals/view_visit_detail/view_visit_detail_widget.dart @@ -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'; diff --git a/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart b/lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_model.dart similarity index 84% rename from lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart rename to lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_model.dart index a4052e41..66664873 100644 --- a/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart +++ b/lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_model.dart @@ -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'; diff --git a/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart b/lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart similarity index 95% rename from lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart rename to lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart index 7e668742..0bd52e6c 100644 --- a/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart +++ b/lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart @@ -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'; diff --git a/lib/components/templates_components/visit_request_template_component/visit_request_template_component_model.dart b/lib/modals/visit_request_template_component/visit_request_template_component_model.dart similarity index 100% rename from lib/components/templates_components/visit_request_template_component/visit_request_template_component_model.dart rename to lib/modals/visit_request_template_component/visit_request_template_component_model.dart diff --git a/lib/components/templates_components/visit_request_template_component/visit_request_template_component_widget.dart b/lib/modals/visit_request_template_component/visit_request_template_component_widget.dart similarity index 100% rename from lib/components/templates_components/visit_request_template_component/visit_request_template_component_widget.dart rename to lib/modals/visit_request_template_component/visit_request_template_component_widget.dart diff --git a/lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart b/lib/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart similarity index 100% rename from lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart rename to lib/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart diff --git a/lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart b/lib/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart similarity index 100% rename from lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart rename to lib/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart diff --git a/lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_model.dart b/lib/modals/visitor_not_found_component/visitor_not_found_component_model.dart similarity index 100% rename from lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_model.dart rename to lib/modals/visitor_not_found_component/visitor_not_found_component_model.dart diff --git a/lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart b/lib/modals/visitor_not_found_component/visitor_not_found_component_widget.dart similarity index 98% rename from lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart rename to lib/modals/visitor_not_found_component/visitor_not_found_component_widget.dart index 115a6304..d161d91e 100644 --- a/lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart +++ b/lib/modals/visitor_not_found_component/visitor_not_found_component_widget.dart @@ -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'; diff --git a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart b/lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart similarity index 100% rename from lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart rename to lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart diff --git a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart b/lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart similarity index 99% rename from lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart rename to lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart index f393b4ec..3961ff49 100644 --- a/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart +++ b/lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart @@ -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'; diff --git a/lib/pages/acess_history_page/acess_history_page_model.dart b/lib/pages/acess_history_page/acess_history_page_model.dart index 71a5824f..15d9230c 100644 --- a/lib/pages/acess_history_page/acess_history_page_model.dart +++ b/lib/pages/acess_history_page/acess_history_page_model.dart @@ -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; diff --git a/lib/pages/acess_history_page/acess_history_page_widget.dart b/lib/pages/acess_history_page/acess_history_page_widget.dart index 8b4f8b03..b3e81a86 100644 --- a/lib/pages/acess_history_page/acess_history_page_widget.dart +++ b/lib/pages/acess_history_page/acess_history_page_widget.dart @@ -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'; diff --git a/lib/pages/home_page/home_page_model.dart b/lib/pages/home_page/home_page_model.dart index 01e742ae..f4c7637a 100644 --- a/lib/pages/home_page/home_page_model.dart +++ b/lib/pages/home_page/home_page_model.dart @@ -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 { 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(); } } diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index 292f13c8..f7fe3b51 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -1,13 +1,12 @@ -import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart'; -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_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 '/flutter_flow/custom_functions.dart' as functions; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; +import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'home_page_model.dart'; @@ -1047,6 +1046,23 @@ class _HomePageWidgetState extends State { width: 100.0, height: 50.0, decoration: const BoxDecoration(), + child: Align( + alignment: const AlignmentDirectional(1.0, 1.0), + child: FlutterFlowIconButton( + borderRadius: 20.0, + borderWidth: 1.0, + buttonSize: 40.0, + icon: Icon( + Icons.notifications_sharp, + color: + FlutterFlowTheme.of(context).info, + size: 24.0, + ), + onPressed: () { + print('IconButton pressed ...'); + }, + ), + ), ), ), ], @@ -1055,10 +1071,124 @@ class _HomePageWidgetState extends State { ), ], ), - wrapWithModel( - model: _model.localComponentModel, - updateCallback: () => setState(() {}), - child: const LocalProfileComponentWidget(), + 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 GestureDetector( + onTap: () => _model.unfocusNode + .canRequestFocus + ? FocusScope.of(context) + .requestFocus( + _model.unfocusNode) + : FocusScope.of(context) + .unfocus(), + child: 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( + '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( + 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)), + ), + ), + ), + ), ), Wrap( spacing: 0.0, @@ -1070,17 +1200,3048 @@ class _HomePageWidgetState extends State { verticalDirection: VerticalDirection.down, clipBehavior: Clip.none, children: [ - wrapWithModel( - model: _model.menuComponentModel, - updateCallback: () => setState(() {}), - child: const MenuComponentWidget(), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 0.0, 10.0, 0.0, 0.0), + child: Builder( + builder: (context) { + if (_model.isGrid == true) { + return Wrap( + spacing: 0.0, + runSpacing: 0.0, + alignment: WrapAlignment.start, + crossAxisAlignment: WrapCrossAlignment.start, + direction: Axis.horizontal, + runAlignment: WrapAlignment.start, + verticalDirection: VerticalDirection.down, + clipBehavior: Clip.none, + children: [ + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 5.0, 0.0, 5.0, 0.0), + child: Container( + width: double.infinity, + height: 125.0, + decoration: const BoxDecoration(), + child: ListView( + padding: const EdgeInsets.fromLTRB( + 10.0, + 0, + 10.0, + 0, + ), + scrollDirection: Axis.horizontal, + children: [ + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + FFIcons + .kvector1, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'b2qdcsh0' /* Agendar +Visita */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + FFIcons + .kvector, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'intigjrx' /* Cadastrar +Visitante */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + FFIcons + .khome, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'dcpn2r8i' /* Vincular +Condomínio */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + FFIcons + .kpets, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'rt57fpea' /* Cadastrar +Pet */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + FFIcons + .kvector2, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'e7o77oeh' /* QR Code +de Acesso */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + Icons + .people, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'xua67fn9' /* Pessoas na +Propriedade */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + Icons + .history_sharp, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'hli1jd0i' /* Consultar +Históricos */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + Icons + .history_sharp, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'kbvld4ht' /* Histórico +de Acesso */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of( + context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: FlutterFlowTheme.of( + context) + .primaryBackground, + shape: BoxShape + .circle, + ), + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Icon( + Icons + .history_sharp, + color: FlutterFlowTheme.of( + context) + .accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'csz6cjye' /* Histórico +de Liberação */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Nunito'), + ), + ), + ), + ], + ), + ), + ].divide( + const SizedBox(height: 0.0)), + ), + ), + ), + ), + ].divide(const SizedBox(width: 15.0)), + ), + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: FlutterFlowIconButton( + borderColor: Colors.transparent, + borderRadius: 20.0, + borderWidth: 1.0, + buttonSize: 50.0, + fillColor: const Color(0x00FFFFFF), + icon: Icon( + Icons.keyboard_arrow_down_outlined, + color: FlutterFlowTheme.of(context) + .primary, + ), + onPressed: () { + print('IconButton pressed ...'); + }, + ), + ), + ], + ); + } else { + return Wrap( + spacing: 0.0, + runSpacing: 0.0, + alignment: WrapAlignment.start, + crossAxisAlignment: WrapCrossAlignment.start, + direction: Axis.horizontal, + runAlignment: WrapAlignment.start, + verticalDirection: VerticalDirection.down, + clipBehavior: Clip.none, + children: [ + Container( + width: double.infinity, + height: + MediaQuery.sizeOf(context).height * + 0.498, + decoration: const BoxDecoration(), + child: Padding( + padding: const EdgeInsets.all(14.0), + child: MasonryGridView.builder( + physics: + const NeverScrollableScrollPhysics(), + gridDelegate: + const SliverSimpleGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + ), + crossAxisSpacing: 10.0, + mainAxisSpacing: 10.0, + itemCount: 9, + padding: const EdgeInsets.fromLTRB( + 0, + 10.0, + 0, + 10.0, + ), + shrinkWrap: true, + itemBuilder: (context, index) { + return [ + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + FFIcons + .kvector1, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'lzag0674' /* Agendar +Visita */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + FFIcons + .kvector, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'mopkb1cs' /* Cadastrar + Visitante */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + FFIcons + .khome, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + '9n0bfmlf' /* Vincular +Condomínio */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + FFIcons + .kpets, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + '3hkp1x8r' /* Cadastrar +Pet */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + FFIcons + .kvector2, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'fi81uwmz' /* QR Code +de Acesso */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + Icons + .people, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + '1djx7nvm' /* Pessoas na +Propriedade */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + Icons + .history_sharp, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'ttj9zmi8' /* Histórico +de Acesso */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + Icons + .history_sharp, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'h989n5uy' /* Histórico +de Liberação */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme + .of(context) + .primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme + .of(context) + .customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: + BorderRadius.circular( + 24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: + FlutterFlowTheme.of( + context) + .alternate, + width: 0.5, + ), + ), + child: Padding( + padding: + const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: + MainAxisSize.min, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + crossAxisAlignment: + CrossAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .max, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional( + -1.0, + 0.0), + child: + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, + 0.0, + 0.0, + 0.0), + child: + Container( + width: + 30.0, + height: + 30.0, + decoration: + BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + shape: + BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, + 0.0), + child: + Icon( + Icons + .settings_rounded, + color: + FlutterFlowTheme.of(context).accent1, + size: + 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: + const AlignmentDirectional( + 0.0, 0.0), + child: Row( + mainAxisSize: + MainAxisSize + .min, + mainAxisAlignment: + MainAxisAlignment + .center, + children: [ + Align( + alignment: + const AlignmentDirectional( + 0.0, + 0.0), + child: Text( + FFLocalizations.of( + context) + .getText( + 'fx7ci8gw' /* Preferencias +do Sistema */ + , + ), + style: FlutterFlowTheme.of( + context) + .titleLarge + .override( + fontFamily: + 'Nunito', + color: + FlutterFlowTheme.of(context).primaryText, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox( + height: 0.0)), + ), + ), + ), + ][index](); + }, + ), + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Container( + decoration: const BoxDecoration( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(0.0), + bottomRight: Radius.circular(0.0), + topLeft: Radius.circular(0.0), + topRight: Radius.circular(0.0), + ), + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: FlutterFlowIconButton( + borderColor: Colors.transparent, + borderRadius: 20.0, + borderWidth: 1.0, + buttonSize: 50.0, + fillColor: const Color(0x00FFFFFF), + icon: Icon( + Icons.keyboard_arrow_up_sharp, + color: + FlutterFlowTheme.of(context) + .primary, + ), + onPressed: () { + print('IconButton pressed ...'); + }, + ), + ), + ), + ), + ], + ); + } + }, + ), ), Align( alignment: const AlignmentDirectional(0.0, 0.0), - child: wrapWithModel( - model: _model.messageWellComponentModel, - updateCallback: () => setState(() {}), - child: const MessageWellComponentWidget(), + 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( + 'rgpcq2s6' /* 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( + 'bdvbpuo8' /* 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 [], + ), + ), + ), + ), + ], + ), + ), ), ), ], diff --git a/lib/pages/preferences_page/preferences_page_model.dart b/lib/pages/preferences_page/preferences_page_model.dart deleted file mode 100644 index dfe2b66b..00000000 --- a/lib/pages/preferences_page/preferences_page_model.dart +++ /dev/null @@ -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 { - /// 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(); - } -} diff --git a/lib/pages/preferences_page/preferences_page_widget.dart b/lib/pages/preferences_page/preferences_page_widget.dart deleted file mode 100644 index 917b4a2a..00000000 --- a/lib/pages/preferences_page/preferences_page_widget.dart +++ /dev/null @@ -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 createState() => _PreferencesPageWidgetState(); -} - -class _PreferencesPageWidgetState extends State { - late PreferencesPageModel _model; - - final scaffoldKey = GlobalKey(); - - @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 ...'); - }, - ), - ], - ), - ), - ], - ), - ), - ), - ); - } -} diff --git a/lib/pages/qr_code_page/qr_code_page_widget.dart b/lib/pages/qr_code_page/qr_code_page_widget.dart index 3d37a4c5..b7da1d61 100644 --- a/lib/pages/qr_code_page/qr_code_page_widget.dart +++ b/lib/pages/qr_code_page/qr_code_page_widget.dart @@ -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'; diff --git a/lib/pages/register_visitor_page/register_visitor_page_widget.dart b/lib/pages/register_visitor_page/register_visitor_page_widget.dart index 6f9e7722..62a92670 100644 --- a/lib/pages/register_visitor_page/register_visitor_page_widget.dart +++ b/lib/pages/register_visitor_page/register_visitor_page_widget.dart @@ -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'; diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart index 8643f7c6..230ce3c0 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart @@ -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'; diff --git a/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart b/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart index b8528fa3..bc791565 100644 --- a/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart +++ b/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart @@ -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'; diff --git a/lib/pages/settings_page/settings_page_model.dart b/lib/pages/settings_page/settings_page_model.dart deleted file mode 100644 index 1fa111cc..00000000 --- a/lib/pages/settings_page/settings_page_model.dart +++ /dev/null @@ -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 { - /// State fields for stateful widgets in this page. - - final unfocusNode = FocusNode(); - - @override - void initState(BuildContext context) {} - - @override - void dispose() { - unfocusNode.dispose(); - } -} diff --git a/lib/pages/settings_page/settings_page_widget.dart b/lib/pages/settings_page/settings_page_widget.dart deleted file mode 100644 index 11227b96..00000000 --- a/lib/pages/settings_page/settings_page_widget.dart +++ /dev/null @@ -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 createState() => _SettingsPageWidgetState(); -} - -class _SettingsPageWidgetState extends State { - late SettingsPageModel _model; - - final scaffoldKey = GlobalKey(); - - @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: [], - ), - ), - ), - ); - } -} diff --git a/lib/pages/sign_in_page/sign_in_page_model.dart b/lib/pages/sign_in_page/sign_in_page_model.dart index e8b945bd..df0ba706 100644 --- a/lib/pages/sign_in_page/sign_in_page_model.dart +++ b/lib/pages/sign_in_page/sign_in_page_model.dart @@ -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 { /// State fields for stateful widgets in this page. final unfocusNode = FocusNode(); - // Model for signInTemplateComponent component. - late SignInTemplateComponentModel signInTemplateComponentModel; + final formKey = GlobalKey(); + // 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(); } } diff --git a/lib/pages/sign_in_page/sign_in_page_widget.dart b/lib/pages/sign_in_page/sign_in_page_widget.dart index da1727c7..7945a411 100644 --- a/lib/pages/sign_in_page/sign_in_page_widget.dart +++ b/lib/pages/sign_in_page/sign_in_page_widget.dart @@ -1,8 +1,14 @@ -import '/components/templates_components/sign_in_template_component/sign_in_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 '/modals/forgot_password_template_component/forgot_password_template_component_widget.dart'; import '/actions/actions.dart' as action_blocks; +import 'package:easy_debounce/easy_debounce.dart'; +import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'package:google_fonts/google_fonts.dart'; import 'sign_in_page_model.dart'; export 'sign_in_page_model.dart'; @@ -13,15 +19,61 @@ class SignInPageWidget extends StatefulWidget { State createState() => _SignInPageWidgetState(); } -class _SignInPageWidgetState extends State { +class _SignInPageWidgetState extends State + with TickerProviderStateMixin { late SignInPageModel _model; final scaffoldKey = GlobalKey(); + final animationsMap = {}; + @override void initState() { super.initState(); _model = createModel(context, () => SignInPageModel()); + + _model.emailAddressTextController ??= TextEditingController(); + _model.emailAddressFocusNode ??= FocusNode(); + + _model.passwordTextController ??= TextEditingController(); + _model.passwordFocusNode ??= FocusNode(); + + animationsMap.addAll({ + 'containerOnPageLoadAnimation': AnimationInfo( + trigger: AnimationTrigger.onPageLoad, + effectsBuilder: () => [ + VisibilityEffect(duration: 1.ms), + FadeEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: 0.0, + end: 1.0, + ), + MoveEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(0.0, 140.0), + end: const Offset(0.0, 0.0), + ), + ScaleEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(0.9, 0.9), + end: const Offset(1.0, 1.0), + ), + TiltEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(-0.349, 0), + end: const Offset(0, 0), + ), + ], + ), + }); } @override @@ -42,15 +94,1035 @@ class _SignInPageWidgetState extends State { backgroundColor: FlutterFlowTheme.of(context).primaryBackground, body: SafeArea( top: true, - child: wrapWithModel( - model: _model.signInTemplateComponentModel, - updateCallback: () => setState(() {}), - updateOnChange: true, - child: SignInTemplateComponentWidget( - toggleSignUpPage: () async { - await action_blocks.toggleSignUpPage(context); - }, - ), + child: Row( + mainAxisSize: MainAxisSize.max, + children: [ + Expanded( + flex: 6, + child: Container( + width: 100.0, + height: double.infinity, + decoration: const BoxDecoration(), + alignment: const AlignmentDirectional(0.0, -1.0), + child: Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 0.0, 35.0, 0.0, 35.0), + child: Container( + width: 548.0, + height: 112.0, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(16.0), + ), + alignment: const AlignmentDirectional(0.0, 0.0), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(0.0, 1.0), + child: Padding( + padding: const EdgeInsets.all(3.0), + child: Text( + FFLocalizations.of(context).getText( + 'v9f4ae9n' /* VAMOS LA! ENTRE COM A SUA CONT... */, + ), + textAlign: TextAlign.start, + style: FlutterFlowTheme.of(context) + .displaySmall + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: 24.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + ), + ), + ), + ), + ], + ), + ), + ), + ), + Container( + width: 291.0, + height: 167.0, + decoration: const BoxDecoration(), + child: ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: Image.network( + 'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/sr43ucngg4a4/Vector.png', + width: 603.0, + height: 155.0, + fit: BoxFit.contain, + ), + ), + ), + Column( + mainAxisSize: MainAxisSize.max, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 34.0, 0.0, 34.0, 0.0), + child: Container( + width: double.infinity, + constraints: const BoxConstraints( + maxWidth: 570.0, + ), + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + borderRadius: BorderRadius.circular(12.0), + shape: BoxShape.rectangle, + ), + child: Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Padding( + padding: const EdgeInsets.all(32.0), + child: Column( + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Form( + key: _model.formKey, + autovalidateMode: + AutovalidateMode.always, + 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 + .emailAddressTextController, + focusNode: _model + .emailAddressFocusNode, + onChanged: (_) => + EasyDebounce + .debounce( + '_model.emailAddressTextController', + const Duration( + milliseconds: + 500), + () => setState(() {}), + ), + autofocus: true, + autofillHints: const [ + AutofillHints.email + ], + textCapitalization: + TextCapitalization + .none, + textInputAction: + TextInputAction + .next, + obscureText: false, + decoration: + InputDecoration( + isDense: true, + labelText: + FFLocalizations.of( + context) + .getText( + 'i6dx9dz4' /* Email */, + ), + labelStyle: + FlutterFlowTheme.of( + context) + .labelLarge + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 16.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + enabledBorder: + OutlineInputBorder( + borderSide: + BorderSide( + color: FlutterFlowTheme + .of(context) + .customColor1, + width: 0.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), + ), + suffixIcon: Icon( + Icons.email, + color: FlutterFlowTheme + .of(context) + .accent1, + size: 22.0, + ), + ), + style: + FlutterFlowTheme.of( + context) + .bodyLarge + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 16.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + keyboardType: + TextInputType + .emailAddress, + validator: _model + .emailAddressTextControllerValidator + .asValidator( + context), + ), + ), + ), + Padding( + padding: + const EdgeInsetsDirectional + .fromSTEB(0.0, 0.0, + 0.0, 16.0), + child: SizedBox( + width: double.infinity, + child: TextFormField( + controller: _model + .passwordTextController, + focusNode: _model + .passwordFocusNode, + onChanged: (_) => + EasyDebounce + .debounce( + '_model.passwordTextController', + const Duration( + milliseconds: + 500), + () => setState(() {}), + ), + autofocus: true, + autofillHints: const [ + AutofillHints.password + ], + textInputAction: + TextInputAction + .send, + obscureText: !_model + .passwordVisibility, + decoration: + InputDecoration( + isDense: true, + labelText: + FFLocalizations.of( + context) + .getText( + 'kpsqzbuz' /* 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 + .passwordVisibility = + !_model + .passwordVisibility, + ), + focusNode: FocusNode( + skipTraversal: + true), + child: Icon( + _model.passwordVisibility + ? Icons + .visibility_outlined + : Icons + .visibility_off_outlined, + color: FlutterFlowTheme + .of(context) + .accent1, + size: 24.0, + ), + ), + ), + style: + FlutterFlowTheme.of( + context) + .bodyLarge + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .primaryText, + fontSize: + 16.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + validator: _model + .passwordTextControllerValidator + .asValidator( + context), + ), + ), + ), + ], + ), + ), + Builder( + builder: (context) { + if (MediaQuery.sizeOf(context) + .width < + kBreakpointSmall + ? true + : false) { + return Column( + mainAxisSize: + MainAxisSize.max, + children: [ + Padding( + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 16.0), + child: FFButtonWidget( + onPressed: ((_model.emailAddressTextController + .text == + '') && + (_model.passwordTextController + .text == + '')) + ? null + : () async { + await action_blocks + .singInLoginAction( + context, + emailAdress: + _model + .emailAddressTextController + .text, + password: _model + .passwordTextController + .text, + ); + setState( + () {}); + }, + text: FFLocalizations + .of(context) + .getText( + 'q4tx90yp' /* 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), + disabledColor: + FlutterFlowTheme.of( + context) + .customColor5, + disabledTextColor: + Colors.white, + ), + showLoadingIndicator: + false, + ), + ), + Padding( + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 16.0), + child: FFButtonWidget( + onPressed: () { + print( + 'signUpButtonLoginForm pressed ...'); + }, + text: FFLocalizations + .of(context) + .getText( + 'lzfmqkly' /* Cadastrar */, + ), + options: + FFButtonOptions( + width: + double.infinity, + height: 44.0, + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + iconPadding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + color: FlutterFlowTheme + .of(context) + .customColor1, + textStyle: + FlutterFlowTheme.of( + context) + .titleSmall + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .secondaryText, + fontSize: + 16.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + elevation: 3.0, + borderSide: + const BorderSide( + color: Colors + .transparent, + width: 1.0, + ), + borderRadius: + BorderRadius + .circular( + 12.0), + ), + showLoadingIndicator: + false, + ), + ), + ], + ); + } else { + return Row( + mainAxisSize: + MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment + .spaceEvenly, + children: [ + Expanded( + child: Padding( + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 16.0), + child: FFButtonWidget( + onPressed: (((_model.emailAddressTextController.text == + '') || + ((_model.emailAddressFocusNode?.hasFocus ?? + false) != + null)) && + ((_model.emailAddressTextController.text == + '') || + ((_model.passwordTextController.text == '') || + ((_model.passwordFocusNode?.hasFocus ?? false) != + null)))) + ? null + : () async { + await action_blocks + .singInLoginAction( + context, + emailAdress: _model + .emailAddressTextController + .text, + password: _model + .passwordTextController + .text, + ); + setState( + () {}); + }, + text: FFLocalizations + .of(context) + .getText( + '7niwis9z' /* Entrar */, + ), + options: + FFButtonOptions( + width: double + .infinity, + height: 44.0, + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + iconPadding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + color: FlutterFlowTheme + .of(context) + .accent1, + textStyle: + FlutterFlowTheme.of( + context) + .titleSmall + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context) + .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), + disabledColor: + const Color( + 0xE81AAB5F), + ), + showLoadingIndicator: + false, + ), + ), + ), + Expanded( + child: Padding( + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 16.0), + child: FFButtonWidget( + onPressed: () { + print( + 'signUpButtonLoginForm pressed ...'); + }, + text: FFLocalizations + .of(context) + .getText( + 'bl377mgi' /* Cadastrar */, + ), + options: + FFButtonOptions( + width: double + .infinity, + height: 44.0, + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + iconPadding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + color: FlutterFlowTheme + .of(context) + .customColor1, + textStyle: + FlutterFlowTheme.of( + context) + .titleSmall + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context) + .secondaryText, + fontSize: + 16.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), + ), + elevation: 3.0, + borderSide: + const BorderSide( + color: Colors + .transparent, + width: 1.0, + ), + borderRadius: + BorderRadius + .circular( + 12.0), + ), + showLoadingIndicator: + false, + ), + ), + ), + ].divide( + const SizedBox(width: 7.0)), + ); + } + }, + ), + + // You will have to add an action on this rich text to go to your login page. + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 12.0, 0.0, 12.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: + Colors.transparent, + onTap: () async { + await showModalBottomSheet( + isScrollControlled: true, + backgroundColor: + Colors.transparent, + enableDrag: false, + context: context, + builder: (context) { + return GestureDetector( + onTap: () => _model + .unfocusNode + .canRequestFocus + ? FocusScope.of( + context) + .requestFocus(_model + .unfocusNode) + : FocusScope.of( + context) + .unfocus(), + child: Padding( + padding: MediaQuery + .viewInsetsOf( + context), + child: + const ForgotPasswordTemplateComponentWidget(), + ), + ); + }, + ).then((value) => + safeSetState(() {})); + }, + child: RichText( + textScaler: + MediaQuery.of(context) + .textScaler, + text: TextSpan( + children: [ + TextSpan( + text: + FFLocalizations.of( + context) + .getText( + '7dntd49d' /* Você esqueceu a sua senha? */, + ), + style: TextStyle( + color: FlutterFlowTheme + .of(context) + .primaryText, + ), + ), + TextSpan( + text: + FFLocalizations.of( + context) + .getText( + '31y04wkg' /* Recupere aqui */, + ), + style: + FlutterFlowTheme.of( + context) + .bodyMedium + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .primary, + fontSize: + 14.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .normal, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + mouseCursor: + SystemMouseCursors + .click, + recognizer: + TapGestureRecognizer() + ..onTap = + () async { + await showModalBottomSheet( + isScrollControlled: + true, + backgroundColor: + Colors + .transparent, + context: + context, + builder: + (context) { + return GestureDetector( + onTap: () => _model + .unfocusNode + .canRequestFocus + ? FocusScope.of(context).requestFocus(_model + .unfocusNode) + : FocusScope.of(context) + .unfocus(), + child: + Padding( + padding: + MediaQuery.viewInsetsOf(context), + child: + const ForgotPasswordTemplateComponentWidget(), + ), + ); + }, + ).then((value) => + safeSetState( + () {})); + }, + ) + ], + style: FlutterFlowTheme.of( + context) + .bodyMedium + .override( + fontFamily: + FlutterFlowTheme.of( + context) + .bodyMediumFamily, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + FlutterFlowTheme.of( + context) + .bodyMediumFamily), + ), + ), + ), + ), + ), + Text( + FFLocalizations.of(context) + .getText( + 'jou5axcb' /* Termo de Uso */, + ), + style: + FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: + FlutterFlowTheme.of( + context) + .bodyMediumFamily, + color: + FlutterFlowTheme.of( + context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + FlutterFlowTheme.of( + context) + .bodyMediumFamily), + ), + ), + ], + ), + ), + ), + ).animateOnPageLoad(animationsMap[ + 'containerOnPageLoadAnimation']!), + ), + ), + ], + ), + ], + ), + ), + ), + ), + ), + ], ), ), ), diff --git a/lib/pages/sign_up_page/sign_up_page_model.dart b/lib/pages/sign_up_page/sign_up_page_model.dart index 938a3b46..c2bbea7c 100644 --- a/lib/pages/sign_up_page/sign_up_page_model.dart +++ b/lib/pages/sign_up_page/sign_up_page_model.dart @@ -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 { /// State fields for stateful widgets in this page. final unfocusNode = FocusNode(); - // Model for signUpTemplateComponent component. - late SignUpTemplateComponentModel signUpTemplateComponentModel; + final formKey = GlobalKey(); + // 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(); } } diff --git a/lib/pages/sign_up_page/sign_up_page_widget.dart b/lib/pages/sign_up_page/sign_up_page_widget.dart index 18c575ec..3c087762 100644 --- a/lib/pages/sign_up_page/sign_up_page_widget.dart +++ b/lib/pages/sign_up_page/sign_up_page_widget.dart @@ -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 createState() => _SignUpPageWidgetState(); } -class _SignUpPageWidgetState extends State { +class _SignUpPageWidgetState extends State + with TickerProviderStateMixin { late SignUpPageModel _model; final scaffoldKey = GlobalKey(); + final animationsMap = {}; + @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 { @override Widget build(BuildContext context) { + context.watch(); + return GestureDetector( onTap: () => _model.unfocusNode.canRequestFocus ? FocusScope.of(context).requestFocus(_model.unfocusNode) @@ -42,16 +99,819 @@ class _SignUpPageWidgetState extends State { 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), + ), + ), + ], + ), + ), + ), + ), + ), + ], ), ), ), diff --git a/lib/pages/welcome_page/welcome_page_model.dart b/lib/pages/welcome_page/welcome_page_model.dart index b8a54a7e..ae64ac31 100644 --- a/lib/pages/welcome_page/welcome_page_model.dart +++ b/lib/pages/welcome_page/welcome_page_model.dart @@ -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 { /// 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(); } } diff --git a/lib/pages/welcome_page/welcome_page_widget.dart b/lib/pages/welcome_page/welcome_page_widget.dart index 6089703a..7c0bab8f 100644 --- a/lib/pages/welcome_page/welcome_page_widget.dart +++ b/lib/pages/welcome_page/welcome_page_widget.dart @@ -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 createState() => _WelcomePageWidgetState(); } -class _WelcomePageWidgetState extends State { +class _WelcomePageWidgetState extends State + with TickerProviderStateMixin { late WelcomePageModel _model; final scaffoldKey = GlobalKey(); + final animationsMap = {}; + @override void initState() { super.initState(); @@ -38,6 +44,43 @@ class _WelcomePageWidgetState extends State { 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 { 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']!), + ), + ), + ], + ), ), ), ), From eb775ca85b8fe7cf19379e72b61a085794a2fca5 Mon Sep 17 00:00:00 2001 From: FlutterFlow <140657486+FlutterFlowEng@users.noreply.github.com> Date: Fri, 26 Jul 2024 20:33:03 +0000 Subject: [PATCH 6/6] rollback --- ios/Runner.xcodeproj/project.pbxproj | 8 +- lib/actions/actions.dart | 2 +- .../text_field_component_model.dart | 0 .../text_field_component_widget.dart | 0 .../opt_modal/opt_modal_model.dart | 0 .../opt_modal/opt_modal_widget.dart | 0 .../option_selection_modal_model.dart | 0 .../option_selection_modal_widget.dart | 0 .../throw_exception_model.dart | 0 .../throw_exception_widget.dart | 0 .../visitor_not_found_component_model.dart | 0 .../visitor_not_found_component_widget.dart | 2 +- .../arrow_linked_locals_component_model.dart | 0 .../arrow_linked_locals_component_widget.dart | 0 ...m_arrow_linked_locals_component_model.dart | 0 ..._arrow_linked_locals_component_widget.dart | 0 .../local_profile_component_model.dart | 12 + .../local_profile_component_widget.dart | 151 + .../menu_component/menu_component_model.dart | 117 + .../menu_component/menu_component_widget.dart | 120 + .../menu_list_view_component_model.dart | 12 + .../menu_list_view_component_widget.dart | 1096 ++++++ .../menu_staggered_view_component_model.dart | 13 + .../menu_staggered_view_component_widget.dart | 1161 ++++++ .../message_well_component_model.dart | 12 + .../message_well_component_widget.dart | 125 + .../schedule_visit_detail_model.dart | 0 .../schedule_visit_detail_widget.dart | 4 +- ...p_arrow_linked_locals_component_model.dart | 0 ..._arrow_linked_locals_component_widget.dart | 0 ...cation_modal_template_component_model.dart | 0 ...ation_modal_template_component_widget.dart | 0 .../card_item_template_component_model.dart | 0 .../card_item_template_component_widget.dart | 0 ...got_password_template_component_model.dart | 0 ...ot_password_template_component_widget.dart | 2 +- ...item_details_template_component_model.dart | 0 ...tem_details_template_component_widget.dart | 0 ...ode_pass_key_template_component_model.dart | 0 ...de_pass_key_template_component_widget.dart | 0 ...siter_vistor_template_component_model.dart | 0 ...iter_vistor_template_component_widget.dart | 2 +- .../sign_in_template_component_model.dart | 61 + .../sign_in_template_component_widget.dart | 1026 ++++++ .../sign_up_template_component_model.dart | 91 + .../sign_up_template_component_widget.dart | 866 +++++ .../view_visit_detail_model.dart | 0 .../view_visit_detail_widget.dart | 4 +- ...etails_modal_template_component_model.dart | 4 +- ...tails_modal_template_component_widget.dart | 4 +- ...isit_request_template_component_model.dart | 0 ...sit_request_template_component_widget.dart | 0 ...etails_modal_template_component_model.dart | 0 ...tails_modal_template_component_widget.dart | 0 ...search_modal_template_component_model.dart | 0 ...earch_modal_template_component_widget.dart | 4 +- .../welcome_template_component_model.dart | 13 + .../welcome_template_component_widget.dart | 445 +++ lib/flutter_flow/internationalization.dart | 466 +-- .../acess_history_page_model.dart | 2 +- .../acess_history_page_widget.dart | 2 +- lib/pages/home_page/home_page_model.dart | 21 +- lib/pages/home_page/home_page_widget.dart | 3176 +---------------- .../qr_code_page/qr_code_page_widget.dart | 2 +- .../register_visitor_page_widget.dart | 2 +- .../schedule_complete_visit_page_widget.dart | 8 +- ...chedule_provisional_visit_page_widget.dart | 4 +- .../sign_in_page/sign_in_page_model.dart | 49 +- .../sign_in_page/sign_in_page_widget.dart | 1094 +----- .../sign_up_page/sign_up_page_model.dart | 79 +- .../sign_up_page/sign_up_page_widget.dart | 884 +---- .../welcome_page/welcome_page_model.dart | 9 +- .../welcome_page/welcome_page_widget.dart | 435 +-- 73 files changed, 5684 insertions(+), 5906 deletions(-) rename lib/{modals => components/atomic_components}/text_field_component/text_field_component_model.dart (100%) rename lib/{modals => components/atomic_components}/text_field_component/text_field_component_widget.dart (100%) rename lib/{modals => components/molecular_components}/opt_modal/opt_modal_model.dart (100%) rename lib/{modals => components/molecular_components}/opt_modal/opt_modal_widget.dart (100%) rename lib/{modals => components/molecular_components}/option_selection_modal/option_selection_modal_model.dart (100%) rename lib/{modals => components/molecular_components}/option_selection_modal/option_selection_modal_widget.dart (100%) rename lib/{modals => components/molecular_components}/throw_exception/throw_exception_model.dart (100%) rename lib/{modals => components/molecular_components}/throw_exception/throw_exception_widget.dart (100%) rename lib/{modals => components/molecular_components}/visitor_not_found_component/visitor_not_found_component_model.dart (100%) rename lib/{modals => components/molecular_components}/visitor_not_found_component/visitor_not_found_component_widget.dart (98%) rename lib/{modals => components/organism_components}/arrow_linked_locals_component/arrow_linked_locals_component_model.dart (100%) rename lib/{modals => components/organism_components}/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart (100%) rename lib/{modals => components/organism_components}/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart (100%) rename lib/{modals => components/organism_components}/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart (100%) create mode 100644 lib/components/organism_components/local_profile_component/local_profile_component_model.dart create mode 100644 lib/components/organism_components/local_profile_component/local_profile_component_widget.dart create mode 100644 lib/components/organism_components/menu_component/menu_component_model.dart create mode 100644 lib/components/organism_components/menu_component/menu_component_widget.dart create mode 100644 lib/components/organism_components/menu_list_view_component/menu_list_view_component_model.dart create mode 100644 lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart create mode 100644 lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart create mode 100644 lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart create mode 100644 lib/components/organism_components/message_well_component/message_well_component_model.dart create mode 100644 lib/components/organism_components/message_well_component/message_well_component_widget.dart rename lib/{modals => components/organism_components}/schedule_visit_detail/schedule_visit_detail_model.dart (100%) rename lib/{modals => components/organism_components}/schedule_visit_detail/schedule_visit_detail_widget.dart (99%) rename lib/{modals => components/organism_components}/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart (100%) rename lib/{modals => components/organism_components}/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart (100%) rename lib/{modals => components/templates_components}/access_notification_modal_template_component/access_notification_modal_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart (100%) rename lib/{modals => components/templates_components}/card_item_template_component/card_item_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/card_item_template_component/card_item_template_component_widget.dart (100%) rename lib/{modals => components/templates_components}/forgot_password_template_component/forgot_password_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/forgot_password_template_component/forgot_password_template_component_widget.dart (99%) rename lib/{modals => components/templates_components}/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart (100%) rename lib/{modals => components/templates_components}/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart (100%) rename lib/{modals => components/templates_components}/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart (99%) create mode 100644 lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart create mode 100644 lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart create mode 100644 lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart create mode 100644 lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart rename lib/{modals => components/templates_components}/view_visit_detail/view_visit_detail_model.dart (100%) rename lib/{modals => components/templates_components}/view_visit_detail/view_visit_detail_widget.dart (99%) rename lib/{modals => components/templates_components}/visit_details_modal_template_component/visit_details_modal_template_component_model.dart (84%) rename lib/{modals => components/templates_components}/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart (95%) rename lib/{modals => components/templates_components}/visit_request_template_component/visit_request_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/visit_request_template_component/visit_request_template_component_widget.dart (100%) rename lib/{modals => components/templates_components}/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart (100%) rename lib/{modals => components/templates_components}/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart (100%) rename lib/{modals => components/templates_components}/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart (99%) create mode 100644 lib/components/templates_components/welcome_template_component/welcome_template_component_model.dart create mode 100644 lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index a5237d97..806c139f 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -44,8 +44,8 @@ 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 6436409127A31CDF00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; - 6436409E27A31CD200820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409D27A31CDC00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409227A31CDD00820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; /* End PBXFileReference section */ @@ -225,8 +225,8 @@ 6436409C27A31CD800820AF7 /* InfoPlist.strings */ = { isa = PBXVariantGroup; children = ( - 6436409127A31CDF00820AF7 /* pt */, - 6436409E27A31CD200820AF7 /* en */, + 6436409D27A31CDC00820AF7 /* pt */, + 6436409227A31CDD00820AF7 /* en */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/lib/actions/actions.dart b/lib/actions/actions.dart index 31ae88e8..30c1b6b9 100644 --- a/lib/actions/actions.dart +++ b/lib/actions/actions.dart @@ -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; diff --git a/lib/modals/text_field_component/text_field_component_model.dart b/lib/components/atomic_components/text_field_component/text_field_component_model.dart similarity index 100% rename from lib/modals/text_field_component/text_field_component_model.dart rename to lib/components/atomic_components/text_field_component/text_field_component_model.dart diff --git a/lib/modals/text_field_component/text_field_component_widget.dart b/lib/components/atomic_components/text_field_component/text_field_component_widget.dart similarity index 100% rename from lib/modals/text_field_component/text_field_component_widget.dart rename to lib/components/atomic_components/text_field_component/text_field_component_widget.dart diff --git a/lib/modals/opt_modal/opt_modal_model.dart b/lib/components/molecular_components/opt_modal/opt_modal_model.dart similarity index 100% rename from lib/modals/opt_modal/opt_modal_model.dart rename to lib/components/molecular_components/opt_modal/opt_modal_model.dart diff --git a/lib/modals/opt_modal/opt_modal_widget.dart b/lib/components/molecular_components/opt_modal/opt_modal_widget.dart similarity index 100% rename from lib/modals/opt_modal/opt_modal_widget.dart rename to lib/components/molecular_components/opt_modal/opt_modal_widget.dart diff --git a/lib/modals/option_selection_modal/option_selection_modal_model.dart b/lib/components/molecular_components/option_selection_modal/option_selection_modal_model.dart similarity index 100% rename from lib/modals/option_selection_modal/option_selection_modal_model.dart rename to lib/components/molecular_components/option_selection_modal/option_selection_modal_model.dart diff --git a/lib/modals/option_selection_modal/option_selection_modal_widget.dart b/lib/components/molecular_components/option_selection_modal/option_selection_modal_widget.dart similarity index 100% rename from lib/modals/option_selection_modal/option_selection_modal_widget.dart rename to lib/components/molecular_components/option_selection_modal/option_selection_modal_widget.dart diff --git a/lib/modals/throw_exception/throw_exception_model.dart b/lib/components/molecular_components/throw_exception/throw_exception_model.dart similarity index 100% rename from lib/modals/throw_exception/throw_exception_model.dart rename to lib/components/molecular_components/throw_exception/throw_exception_model.dart diff --git a/lib/modals/throw_exception/throw_exception_widget.dart b/lib/components/molecular_components/throw_exception/throw_exception_widget.dart similarity index 100% rename from lib/modals/throw_exception/throw_exception_widget.dart rename to lib/components/molecular_components/throw_exception/throw_exception_widget.dart diff --git a/lib/modals/visitor_not_found_component/visitor_not_found_component_model.dart b/lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_model.dart similarity index 100% rename from lib/modals/visitor_not_found_component/visitor_not_found_component_model.dart rename to lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_model.dart diff --git a/lib/modals/visitor_not_found_component/visitor_not_found_component_widget.dart b/lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart similarity index 98% rename from lib/modals/visitor_not_found_component/visitor_not_found_component_widget.dart rename to lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart index d161d91e..115a6304 100644 --- a/lib/modals/visitor_not_found_component/visitor_not_found_component_widget.dart +++ b/lib/components/molecular_components/visitor_not_found_component/visitor_not_found_component_widget.dart @@ -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'; diff --git a/lib/modals/arrow_linked_locals_component/arrow_linked_locals_component_model.dart b/lib/components/organism_components/arrow_linked_locals_component/arrow_linked_locals_component_model.dart similarity index 100% rename from lib/modals/arrow_linked_locals_component/arrow_linked_locals_component_model.dart rename to lib/components/organism_components/arrow_linked_locals_component/arrow_linked_locals_component_model.dart diff --git a/lib/modals/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart b/lib/components/organism_components/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart similarity index 100% rename from lib/modals/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart rename to lib/components/organism_components/arrow_linked_locals_component/arrow_linked_locals_component_widget.dart diff --git a/lib/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart similarity index 100% rename from lib/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart rename to lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_model.dart diff --git a/lib/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart b/lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart similarity index 100% rename from lib/modals/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart rename to lib/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_model.dart b/lib/components/organism_components/local_profile_component/local_profile_component_model.dart new file mode 100644 index 00000000..25442482 --- /dev/null +++ b/lib/components/organism_components/local_profile_component/local_profile_component_model.dart @@ -0,0 +1,12 @@ +import '/flutter_flow/flutter_flow_util.dart'; +import 'local_profile_component_widget.dart' show LocalProfileComponentWidget; +import 'package:flutter/material.dart'; + +class LocalProfileComponentModel + extends FlutterFlowModel { + @override + void initState(BuildContext context) {} + + @override + void dispose() {} +} diff --git a/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart new file mode 100644 index 00000000..80e43f30 --- /dev/null +++ b/lib/components/organism_components/local_profile_component/local_profile_component_widget.dart @@ -0,0 +1,151 @@ +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 createState() => + _LocalProfileComponentWidgetState(); +} + +class _LocalProfileComponentWidgetState + extends State { + 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(); + + 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( + '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( + 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)), + ), + ), + ), + ), + ), + ); + } +} diff --git a/lib/components/organism_components/menu_component/menu_component_model.dart b/lib/components/organism_components/menu_component/menu_component_model.dart new file mode 100644 index 00000000..d50f9dfe --- /dev/null +++ b/lib/components/organism_components/menu_component/menu_component_model.dart @@ -0,0 +1,117 @@ +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 { + /// 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: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + + Future peopleOnThePropertyAction(BuildContext context) async { + context.pushNamed( + 'peopleOnThePropertyPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.fade, + ), + }, + ); + } + + Future acessHistoryOptAction(BuildContext context) async { + context.pushNamed( + 'acessHistoryPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + + Future liberationHistoryOptAction(BuildContext context) async { + context.pushNamed( + 'liberationHistory', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + + Future accessQRCodeOptAction(BuildContext context) async { + context.pushNamed( + 'qrCodePage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } +} diff --git a/lib/components/organism_components/menu_component/menu_component_widget.dart b/lib/components/organism_components/menu_component/menu_component_widget.dart new file mode 100644 index 00000000..79afe54b --- /dev/null +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -0,0 +1,120 @@ +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 createState() => _MenuComponentWidgetState(); +} + +class _MenuComponentWidgetState extends State { + 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(() {}); + }, + ), + ); + } + }, + ), + ); + } +} diff --git a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_model.dart b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_model.dart new file mode 100644 index 00000000..7ce9985b --- /dev/null +++ b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_model.dart @@ -0,0 +1,12 @@ +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 { + @override + void initState(BuildContext context) {} + + @override + void dispose() {} +} diff --git a/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart new file mode 100644 index 00000000..0f7b62aa --- /dev/null +++ b/lib/components/organism_components/menu_list_view_component/menu_list_view_component_widget.dart @@ -0,0 +1,1096 @@ +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 'menu_list_view_component_model.dart'; +export 'menu_list_view_component_model.dart'; + +class MenuListViewComponentWidget extends StatefulWidget { + const MenuListViewComponentWidget({ + super.key, + required this.changeMenuStyle, + required this.registerVisitorOptAction, + required this.scheduleVisitOptAction, + required this.peopleOnThePropertyOptAction, + required this.acessHistoryOptAction, + required this.liberationHistoryOptAction, + required this.accessQRCodeOptAction, + }); + + final Future Function()? changeMenuStyle; + final Future Function()? registerVisitorOptAction; + final Future Function()? scheduleVisitOptAction; + final Future Function()? peopleOnThePropertyOptAction; + final Future Function()? acessHistoryOptAction; + final Future Function()? liberationHistoryOptAction; + final Future Function()? accessQRCodeOptAction; + + @override + State createState() => + _MenuListViewComponentWidgetState(); +} + +class _MenuListViewComponentWidgetState + extends State { + late MenuListViewComponentModel _model; + + @override + void setState(VoidCallback callback) { + super.setState(callback); + _model.onUpdate(); + } + + @override + void initState() { + super.initState(); + _model = createModel(context, () => MenuListViewComponentModel()); + } + + @override + void dispose() { + _model.maybeDispose(); + + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Wrap( + spacing: 0.0, + runSpacing: 0.0, + alignment: WrapAlignment.start, + crossAxisAlignment: WrapCrossAlignment.start, + direction: Axis.horizontal, + runAlignment: WrapAlignment.start, + verticalDirection: VerticalDirection.down, + clipBehavior: Clip.none, + children: [ + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(5.0, 0.0, 5.0, 0.0), + child: Container( + width: double.infinity, + height: 125.0, + decoration: const BoxDecoration(), + child: ListView( + padding: const EdgeInsets.fromLTRB( + 10.0, + 0, + 10.0, + 0, + ), + scrollDirection: Axis.horizontal, + children: [ + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.scheduleVisitOptAction?.call(); + }, + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + FFIcons.kvector1, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'utgue9a5' /* Agendar +Visita */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.registerVisitorOptAction?.call(); + }, + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + FFIcons.kvector, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + '82b5f8yz' /* Cadastrar +Visitante */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + FFIcons.khome, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 't4ie13ut' /* Vincular +Condomínio */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + FFIcons.kpets, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'n3n76pha' /* Cadastrar +Pet */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.accessQRCodeOptAction?.call(); + }, + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + FFIcons.kvector2, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'l6b9o7yn' /* QR Code +de Acesso */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.peopleOnThePropertyOptAction?.call(); + }, + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + Icons.people, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'rxnrtdau' /* Pessoas na +Propriedade */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.acessHistoryOptAction?.call(); + }, + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + Icons.history_sharp, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'nxssjz3q' /* Consultar +Históricos */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.acessHistoryOptAction?.call(); + }, + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + Icons.history_sharp, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + '589qufkw' /* Histórico +de Acesso */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 20.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.liberationHistoryOptAction?.call(); + }, + child: Container( + width: 100.0, + height: double.infinity, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + Icons.history_sharp, + color: FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + '944g4ib1' /* Histórico +de Liberação */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + ), + ].divide(const SizedBox(width: 15.0)), + ), + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: FlutterFlowIconButton( + borderColor: Colors.transparent, + borderRadius: 20.0, + borderWidth: 1.0, + buttonSize: 50.0, + fillColor: const Color(0x00FFFFFF), + icon: Icon( + Icons.keyboard_arrow_down_outlined, + color: FlutterFlowTheme.of(context).primary, + ), + onPressed: () async { + await widget.changeMenuStyle?.call(); + }, + ), + ), + ], + ); + } +} diff --git a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart new file mode 100644 index 00000000..8aebfc69 --- /dev/null +++ b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart @@ -0,0 +1,13 @@ +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 { + @override + void initState(BuildContext context) {} + + @override + void dispose() {} +} diff --git a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart new file mode 100644 index 00000000..f4db990c --- /dev/null +++ b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart @@ -0,0 +1,1161 @@ +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:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'menu_staggered_view_component_model.dart'; +export 'menu_staggered_view_component_model.dart'; + +class MenuStaggeredViewComponentWidget extends StatefulWidget { + const MenuStaggeredViewComponentWidget({ + super.key, + required this.changeMenuStyleAction, + required this.registerVisitorOptAction, + required this.scheduleVisitOptAction, + required this.peopleOnThePropertyOptAction, + required this.accessHistoryOptAction, + required this.liberationHistoryOptAction, + required this.accessQRCodeOptAction, + }); + + final Future Function()? changeMenuStyleAction; + final Future Function()? registerVisitorOptAction; + final Future Function()? scheduleVisitOptAction; + final Future Function()? peopleOnThePropertyOptAction; + final Future Function()? accessHistoryOptAction; + final Future Function()? liberationHistoryOptAction; + final Future Function()? accessQRCodeOptAction; + + @override + State createState() => + _MenuStaggeredViewComponentWidgetState(); +} + +class _MenuStaggeredViewComponentWidgetState + extends State { + late MenuStaggeredViewComponentModel _model; + + @override + void setState(VoidCallback callback) { + super.setState(callback); + _model.onUpdate(); + } + + @override + void initState() { + super.initState(); + _model = createModel(context, () => MenuStaggeredViewComponentModel()); + } + + @override + void dispose() { + _model.maybeDispose(); + + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Wrap( + spacing: 0.0, + runSpacing: 0.0, + alignment: WrapAlignment.start, + crossAxisAlignment: WrapCrossAlignment.start, + direction: Axis.horizontal, + runAlignment: WrapAlignment.start, + verticalDirection: VerticalDirection.down, + clipBehavior: Clip.none, + children: [ + Container( + width: double.infinity, + height: MediaQuery.sizeOf(context).height * 0.498, + decoration: const BoxDecoration(), + child: Padding( + padding: const EdgeInsets.all(14.0), + child: MasonryGridView.builder( + physics: const NeverScrollableScrollPhysics(), + gridDelegate: const SliverSimpleGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + ), + crossAxisSpacing: 10.0, + mainAxisSpacing: 10.0, + itemCount: 9, + padding: const EdgeInsets.fromLTRB( + 0, + 10.0, + 0, + 10.0, + ), + shrinkWrap: true, + itemBuilder: (context, index) { + return [ + () => InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.scheduleVisitOptAction?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, 0.0), + child: Icon( + FFIcons.kvector1, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'ee33l0ms' /* Agendar +Visita */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + () => InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.registerVisitorOptAction?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, 0.0), + child: Icon( + FFIcons.kvector, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'ya37l3jt' /* Cadastrar + Visitante */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + FFIcons.khome, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'h8s3adu8' /* Vincular +Condomínio */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + () => Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Icon( + FFIcons.kpets, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'j6tfixen' /* Cadastrar +Pet */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + () => InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.accessQRCodeOptAction?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, 0.0), + child: Icon( + FFIcons.kvector2, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + '9tli4i2x' /* QR Code +de Acesso */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + () => InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.peopleOnThePropertyOptAction?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, 0.0), + child: Icon( + Icons.people, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'i22hecs8' /* Pessoas na +Propriedade */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + () => InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.accessHistoryOptAction?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, 0.0), + child: Icon( + Icons.history_sharp, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + '6jzghbyi' /* Histórico +de Acesso */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + () => InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.liberationHistoryOptAction?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, 0.0), + child: Icon( + Icons.history_sharp, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'u8qu4v6q' /* Histórico +de Liberação */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + () => InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await widget.liberationHistoryOptAction?.call(); + }, + child: Container( + width: 100.0, + height: 100.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context).primaryBackground, + boxShadow: [ + BoxShadow( + blurRadius: 4.0, + color: + FlutterFlowTheme.of(context).customColor5, + offset: const Offset( + 0.0, + 2.0, + ), + ) + ], + borderRadius: BorderRadius.circular(24.0), + shape: BoxShape.rectangle, + border: Border.all( + color: FlutterFlowTheme.of(context).alternate, + width: 0.5, + ), + ), + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: + const AlignmentDirectional(-1.0, 0.0), + child: Padding( + padding: + const EdgeInsetsDirectional.fromSTEB( + 8.0, 0.0, 0.0, 0.0), + child: Container( + width: 30.0, + height: 30.0, + decoration: BoxDecoration( + color: + FlutterFlowTheme.of(context) + .primaryBackground, + shape: BoxShape.circle, + ), + alignment: const AlignmentDirectional( + 0.0, 0.0), + child: Icon( + Icons.settings_rounded, + color: + FlutterFlowTheme.of(context) + .accent1, + size: 24.0, + ), + ), + ), + ), + ), + ], + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Align( + alignment: + const AlignmentDirectional(0.0, 0.0), + child: Text( + FFLocalizations.of(context).getText( + 'dzk31zpc' /* Preferencias +do Sistema */ + , + ), + style: FlutterFlowTheme.of(context) + .titleLarge + .override( + fontFamily: 'Nunito', + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: + GoogleFonts.asMap() + .containsKey('Nunito'), + ), + ), + ), + ], + ), + ), + ].divide(const SizedBox(height: 0.0)), + ), + ), + ), + ), + ][index](); + }, + ), + ), + ), + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Container( + decoration: const BoxDecoration( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(0.0), + bottomRight: Radius.circular(0.0), + topLeft: Radius.circular(0.0), + topRight: Radius.circular(0.0), + ), + ), + alignment: const AlignmentDirectional(0.0, 0.0), + child: Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: FlutterFlowIconButton( + borderColor: Colors.transparent, + borderRadius: 20.0, + borderWidth: 1.0, + buttonSize: 50.0, + fillColor: const Color(0x00FFFFFF), + icon: Icon( + Icons.keyboard_arrow_up_sharp, + color: FlutterFlowTheme.of(context).primary, + ), + onPressed: () async { + await widget.changeMenuStyleAction?.call(); + }, + ), + ), + ), + ), + ], + ); + } +} diff --git a/lib/components/organism_components/message_well_component/message_well_component_model.dart b/lib/components/organism_components/message_well_component/message_well_component_model.dart new file mode 100644 index 00000000..3da2a723 --- /dev/null +++ b/lib/components/organism_components/message_well_component/message_well_component_model.dart @@ -0,0 +1,12 @@ +import '/flutter_flow/flutter_flow_util.dart'; +import 'message_well_component_widget.dart' show MessageWellComponentWidget; +import 'package:flutter/material.dart'; + +class MessageWellComponentModel + extends FlutterFlowModel { + @override + void initState(BuildContext context) {} + + @override + void dispose() {} +} diff --git a/lib/components/organism_components/message_well_component/message_well_component_widget.dart b/lib/components/organism_components/message_well_component/message_well_component_widget.dart new file mode 100644 index 00000000..d8a5b8b8 --- /dev/null +++ b/lib/components/organism_components/message_well_component/message_well_component_widget.dart @@ -0,0 +1,125 @@ +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 createState() => + _MessageWellComponentWidgetState(); +} + +class _MessageWellComponentWidgetState + extends State { + 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 [], + ), + ), + ), + ), + ], + ), + ), + ), + ); + } +} diff --git a/lib/modals/schedule_visit_detail/schedule_visit_detail_model.dart b/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart similarity index 100% rename from lib/modals/schedule_visit_detail/schedule_visit_detail_model.dart rename to lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_model.dart diff --git a/lib/modals/schedule_visit_detail/schedule_visit_detail_widget.dart b/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart similarity index 99% rename from lib/modals/schedule_visit_detail/schedule_visit_detail_widget.dart rename to lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart index 07e45567..9641ca52 100644 --- a/lib/modals/schedule_visit_detail/schedule_visit_detail_widget.dart +++ b/lib/components/organism_components/schedule_visit_detail/schedule_visit_detail_widget.dart @@ -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'; diff --git a/lib/modals/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart b/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart similarity index 100% rename from lib/modals/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart rename to lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_model.dart diff --git a/lib/modals/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart b/lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart similarity index 100% rename from lib/modals/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart rename to lib/components/organism_components/up_arrow_linked_locals_component/up_arrow_linked_locals_component_widget.dart diff --git a/lib/modals/access_notification_modal_template_component/access_notification_modal_template_component_model.dart b/lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_model.dart similarity index 100% rename from lib/modals/access_notification_modal_template_component/access_notification_modal_template_component_model.dart rename to lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_model.dart diff --git a/lib/modals/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart b/lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart similarity index 100% rename from lib/modals/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart rename to lib/components/templates_components/access_notification_modal_template_component/access_notification_modal_template_component_widget.dart diff --git a/lib/modals/card_item_template_component/card_item_template_component_model.dart b/lib/components/templates_components/card_item_template_component/card_item_template_component_model.dart similarity index 100% rename from lib/modals/card_item_template_component/card_item_template_component_model.dart rename to lib/components/templates_components/card_item_template_component/card_item_template_component_model.dart diff --git a/lib/modals/card_item_template_component/card_item_template_component_widget.dart b/lib/components/templates_components/card_item_template_component/card_item_template_component_widget.dart similarity index 100% rename from lib/modals/card_item_template_component/card_item_template_component_widget.dart rename to lib/components/templates_components/card_item_template_component/card_item_template_component_widget.dart diff --git a/lib/modals/forgot_password_template_component/forgot_password_template_component_model.dart b/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_model.dart similarity index 100% rename from lib/modals/forgot_password_template_component/forgot_password_template_component_model.dart rename to lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_model.dart diff --git a/lib/modals/forgot_password_template_component/forgot_password_template_component_widget.dart b/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart similarity index 99% rename from lib/modals/forgot_password_template_component/forgot_password_template_component_widget.dart rename to lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart index 09fdeb47..39cce295 100644 --- a/lib/modals/forgot_password_template_component/forgot_password_template_component_widget.dart +++ b/lib/components/templates_components/forgot_password_template_component/forgot_password_template_component_widget.dart @@ -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'; diff --git a/lib/modals/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart b/lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart similarity index 100% rename from lib/modals/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart rename to lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_model.dart diff --git a/lib/modals/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart b/lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart similarity index 100% rename from lib/modals/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart rename to lib/components/templates_components/liberation_history_item_details_template_component/liberation_history_item_details_template_component_widget.dart diff --git a/lib/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart b/lib/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart similarity index 100% rename from lib/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart rename to lib/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_model.dart diff --git a/lib/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart b/lib/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart similarity index 100% rename from lib/modals/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart rename to lib/components/templates_components/qr_code_pass_key_template_component/qr_code_pass_key_template_component_widget.dart diff --git a/lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart b/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart similarity index 100% rename from lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart rename to lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_model.dart diff --git a/lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart b/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart similarity index 99% rename from lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart rename to lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart index 85b06c3f..4a00c919 100644 --- a/lib/modals/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart +++ b/lib/components/templates_components/regisiter_vistor_template_component/regisiter_vistor_template_component_widget.dart @@ -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'; diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart new file mode 100644 index 00000000..fd542965 --- /dev/null +++ b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_model.dart @@ -0,0 +1,61 @@ +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 { + /// State fields for stateful widgets in this component. + + final formKey = GlobalKey(); + // 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(); + } +} diff --git a/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart new file mode 100644 index 00000000..ae8cc9df --- /dev/null +++ b/lib/components/templates_components/sign_in_template_component/sign_in_template_component_widget.dart @@ -0,0 +1,1026 @@ +import '/components/templates_components/forgot_password_template_component/forgot_password_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/gestures.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'sign_in_template_component_model.dart'; +export 'sign_in_template_component_model.dart'; + +class SignInTemplateComponentWidget extends StatefulWidget { + const SignInTemplateComponentWidget({ + super.key, + required this.toggleSignUpPage, + }); + + final Future Function()? toggleSignUpPage; + + @override + State createState() => + _SignInTemplateComponentWidgetState(); +} + +class _SignInTemplateComponentWidgetState + extends State with TickerProviderStateMixin { + late SignInTemplateComponentModel _model; + + final animationsMap = {}; + + @override + void setState(VoidCallback callback) { + super.setState(callback); + _model.onUpdate(); + } + + @override + void initState() { + super.initState(); + _model = createModel(context, () => SignInTemplateComponentModel()); + + _model.emailAddressTextController ??= TextEditingController(); + _model.emailAddressFocusNode ??= FocusNode(); + + _model.passwordTextController ??= TextEditingController(); + _model.passwordFocusNode ??= FocusNode(); + + animationsMap.addAll({ + 'containerOnPageLoadAnimation': AnimationInfo( + trigger: AnimationTrigger.onPageLoad, + effectsBuilder: () => [ + VisibilityEffect(duration: 1.ms), + FadeEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: 0.0, + end: 1.0, + ), + MoveEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(0.0, 140.0), + end: const Offset(0.0, 0.0), + ), + ScaleEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(0.9, 0.9), + end: const Offset(1.0, 1.0), + ), + TiltEffect( + curve: Curves.easeInOut, + delay: 0.0.ms, + duration: 300.0.ms, + begin: const Offset(-0.349, 0), + end: const Offset(0, 0), + ), + ], + ), + }); + } + + @override + void dispose() { + _model.maybeDispose(); + + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Row( + mainAxisSize: MainAxisSize.max, + children: [ + Expanded( + flex: 6, + child: Container( + width: 100.0, + height: double.infinity, + decoration: const BoxDecoration(), + alignment: const AlignmentDirectional(0.0, -1.0), + child: Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Padding( + padding: + const EdgeInsetsDirectional.fromSTEB(0.0, 35.0, 0.0, 35.0), + child: Container( + width: 548.0, + height: 112.0, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(16.0), + ), + alignment: const AlignmentDirectional(0.0, 0.0), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Align( + alignment: const AlignmentDirectional(0.0, 1.0), + child: Padding( + padding: const EdgeInsets.all(3.0), + child: Text( + FFLocalizations.of(context).getText( + '9hbdjxrz' /* VAMOS LA! ENTRE COM A SUA CONT... */, + ), + textAlign: TextAlign.start, + style: FlutterFlowTheme.of(context) + .displaySmall + .override( + fontFamily: 'Plus Jakarta Sans', + color: FlutterFlowTheme.of(context) + .primaryText, + fontSize: 24.0, + letterSpacing: 0.0, + fontWeight: FontWeight.w500, + useGoogleFonts: GoogleFonts.asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + ), + ), + ), + ), + ], + ), + ), + ), + ), + Container( + width: 291.0, + height: 167.0, + decoration: const BoxDecoration(), + child: ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: Image.network( + 'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/sr43ucngg4a4/Vector.png', + width: 603.0, + height: 155.0, + fit: BoxFit.contain, + ), + ), + ), + Column( + mainAxisSize: MainAxisSize.max, + children: [ + Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 34.0, 0.0, 34.0, 0.0), + child: Container( + width: double.infinity, + constraints: const BoxConstraints( + maxWidth: 570.0, + ), + decoration: BoxDecoration( + color: FlutterFlowTheme.of(context) + .primaryBackground, + borderRadius: BorderRadius.circular(12.0), + shape: BoxShape.rectangle, + ), + child: Align( + alignment: const AlignmentDirectional(0.0, 0.0), + child: Padding( + padding: const EdgeInsets.all(32.0), + child: Column( + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: + CrossAxisAlignment.center, + children: [ + Form( + key: _model.formKey, + autovalidateMode: + AutovalidateMode.always, + 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 + .emailAddressTextController, + focusNode: _model + .emailAddressFocusNode, + onChanged: (_) => + EasyDebounce.debounce( + '_model.emailAddressTextController', + const Duration(milliseconds: 500), + () => setState(() {}), + ), + autofocus: true, + autofillHints: const [ + AutofillHints.email + ], + textCapitalization: + TextCapitalization.none, + textInputAction: + TextInputAction.next, + obscureText: false, + decoration: InputDecoration( + isDense: true, + labelText: + FFLocalizations.of( + context) + .getText( + '1ltg0ylb' /* Email */, + ), + labelStyle: FlutterFlowTheme + .of(context) + .labelLarge + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme + .of(context) + .primaryText, + fontSize: 16.0, + letterSpacing: 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: + GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + enabledBorder: + OutlineInputBorder( + borderSide: BorderSide( + color: + FlutterFlowTheme.of( + context) + .customColor1, + width: 0.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), + ), + suffixIcon: Icon( + Icons.email, + color: + FlutterFlowTheme.of( + context) + .accent1, + size: 22.0, + ), + ), + style: FlutterFlowTheme.of( + context) + .bodyLarge + .override( + fontFamily: + 'Plus Jakarta Sans', + color: + FlutterFlowTheme.of( + context) + .primaryText, + fontSize: 16.0, + letterSpacing: 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + keyboardType: TextInputType + .emailAddress, + validator: _model + .emailAddressTextControllerValidator + .asValidator(context), + ), + ), + ), + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 0.0, 0.0, 16.0), + child: SizedBox( + width: double.infinity, + child: TextFormField( + controller: _model + .passwordTextController, + focusNode: + _model.passwordFocusNode, + onChanged: (_) => + EasyDebounce.debounce( + '_model.passwordTextController', + const Duration(milliseconds: 500), + () => setState(() {}), + ), + autofocus: true, + autofillHints: const [ + AutofillHints.password + ], + textInputAction: + TextInputAction.send, + obscureText: !_model + .passwordVisibility, + decoration: InputDecoration( + isDense: true, + labelText: + FFLocalizations.of( + context) + .getText( + '2x19ce8k' /* 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 + .passwordVisibility = + !_model + .passwordVisibility, + ), + focusNode: FocusNode( + skipTraversal: true), + child: Icon( + _model.passwordVisibility + ? Icons + .visibility_outlined + : Icons + .visibility_off_outlined, + color: + FlutterFlowTheme.of( + context) + .accent1, + size: 24.0, + ), + ), + ), + style: FlutterFlowTheme.of( + context) + .bodyLarge + .override( + fontFamily: + 'Plus Jakarta Sans', + color: + FlutterFlowTheme.of( + context) + .primaryText, + fontSize: 16.0, + letterSpacing: 0.0, + fontWeight: + FontWeight.w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + validator: _model + .passwordTextControllerValidator + .asValidator(context), + ), + ), + ), + ], + ), + ), + Builder( + builder: (context) { + if (MediaQuery.sizeOf(context).width < + kBreakpointSmall + ? true + : false) { + return Column( + mainAxisSize: MainAxisSize.max, + children: [ + Padding( + padding: const EdgeInsetsDirectional + .fromSTEB( + 0.0, 0.0, 0.0, 16.0), + child: FFButtonWidget( + onPressed: ((_model.emailAddressTextController + .text == + '') && + (_model.passwordTextController + .text == + '')) + ? null + : () async { + await action_blocks + .singInLoginAction( + context, + emailAdress: _model + .emailAddressTextController + .text, + password: _model + .passwordTextController + .text, + ); + setState(() {}); + }, + text: FFLocalizations.of( + context) + .getText( + 'k44tm7wo' /* 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), + disabledColor: + FlutterFlowTheme.of( + context) + .customColor5, + disabledTextColor: + Colors.white, + ), + 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( + '14u7ipws' /* Cadastrar */, + ), + options: FFButtonOptions( + width: double.infinity, + height: 44.0, + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + iconPadding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + color: + FlutterFlowTheme.of( + context) + .customColor1, + textStyle: + FlutterFlowTheme.of( + context) + .titleSmall + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .secondaryText, + fontSize: 16.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + elevation: 3.0, + borderSide: const BorderSide( + color: + Colors.transparent, + width: 1.0, + ), + borderRadius: + BorderRadius.circular( + 12.0), + ), + showLoadingIndicator: false, + ), + ), + ], + ); + } else { + return Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: + MainAxisAlignment.spaceEvenly, + children: [ + Expanded( + child: Padding( + padding: + const EdgeInsetsDirectional + .fromSTEB(0.0, 0.0, + 0.0, 16.0), + child: FFButtonWidget( + onPressed: (((_model.emailAddressTextController + .text == + '') || + ((_model.emailAddressFocusNode + ?.hasFocus ?? + false) != + null)) && + ((_model.emailAddressTextController + .text == + '') || + ((_model.passwordTextController.text == + '') || + ((_model.passwordFocusNode?.hasFocus ?? + false) != + null)))) + ? null + : () async { + await action_blocks + .singInLoginAction( + context, + emailAdress: _model + .emailAddressTextController + .text, + password: _model + .passwordTextController + .text, + ); + setState(() {}); + }, + text: FFLocalizations.of( + context) + .getText( + '1x926nsn' /* Entrar */, + ), + options: FFButtonOptions( + width: double.infinity, + height: 44.0, + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + iconPadding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + color: + FlutterFlowTheme.of( + context) + .accent1, + textStyle: + FlutterFlowTheme.of( + context) + .titleSmall + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .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), + disabledColor: + const Color(0xE81AAB5F), + ), + 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( + 'jwvd4ai1' /* Cadastrar */, + ), + options: FFButtonOptions( + width: double.infinity, + height: 44.0, + padding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + iconPadding: + const EdgeInsetsDirectional + .fromSTEB( + 0.0, + 0.0, + 0.0, + 0.0), + color: + FlutterFlowTheme.of( + context) + .customColor1, + textStyle: + FlutterFlowTheme.of( + context) + .titleSmall + .override( + fontFamily: + 'Plus Jakarta Sans', + color: FlutterFlowTheme.of( + context) + .secondaryText, + fontSize: + 16.0, + letterSpacing: + 0.0, + fontWeight: + FontWeight + .w500, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + elevation: 3.0, + borderSide: const BorderSide( + color: Colors + .transparent, + width: 1.0, + ), + borderRadius: + BorderRadius + .circular(12.0), + ), + showLoadingIndicator: + false, + ), + ), + ), + ].divide(const SizedBox(width: 7.0)), + ); + } + }, + ), + + // You will have to add an action on this rich text to go to your login page. + Padding( + padding: const EdgeInsetsDirectional.fromSTEB( + 0.0, 12.0, 0.0, 12.0), + child: InkWell( + splashColor: Colors.transparent, + focusColor: Colors.transparent, + hoverColor: Colors.transparent, + highlightColor: Colors.transparent, + onTap: () async { + await showModalBottomSheet( + isScrollControlled: true, + backgroundColor: + Colors.transparent, + enableDrag: false, + context: context, + builder: (context) { + return Padding( + padding: + MediaQuery.viewInsetsOf( + context), + child: + const ForgotPasswordTemplateComponentWidget(), + ); + }, + ).then( + (value) => safeSetState(() {})); + }, + child: RichText( + textScaler: MediaQuery.of(context) + .textScaler, + text: TextSpan( + children: [ + TextSpan( + text: FFLocalizations.of( + context) + .getText( + '05dx91ku' /* Você esqueceu a sua senha? */, + ), + style: TextStyle( + color: FlutterFlowTheme.of( + context) + .primaryText, + ), + ), + TextSpan( + text: FFLocalizations.of( + context) + .getText( + 'p5c6d54y' /* Recupere aqui */, + ), + style: FlutterFlowTheme.of( + context) + .bodyMedium + .override( + fontFamily: + 'Plus Jakarta Sans', + color: + FlutterFlowTheme.of( + context) + .primary, + fontSize: 14.0, + letterSpacing: 0.0, + fontWeight: + FontWeight.normal, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + 'Plus Jakarta Sans'), + ), + mouseCursor: + SystemMouseCursors.click, + recognizer: + TapGestureRecognizer() + ..onTap = () async { + await showModalBottomSheet( + isScrollControlled: + true, + backgroundColor: + Colors + .transparent, + context: context, + builder: (context) { + return Padding( + padding: MediaQuery + .viewInsetsOf( + context), + child: + const ForgotPasswordTemplateComponentWidget(), + ); + }, + ).then((value) => + safeSetState( + () {})); + }, + ) + ], + style: + FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: + FlutterFlowTheme.of( + context) + .bodyMediumFamily, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + FlutterFlowTheme.of( + context) + .bodyMediumFamily), + ), + ), + ), + ), + ), + Text( + FFLocalizations.of(context).getText( + 'olf967cj' /* Termo de Uso */, + ), + style: FlutterFlowTheme.of(context) + .bodyMedium + .override( + fontFamily: + FlutterFlowTheme.of(context) + .bodyMediumFamily, + color: + FlutterFlowTheme.of(context) + .primaryText, + fontSize: 14.0, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts + .asMap() + .containsKey( + FlutterFlowTheme.of( + context) + .bodyMediumFamily), + ), + ), + ], + ), + ), + ), + ).animateOnPageLoad( + animationsMap['containerOnPageLoadAnimation']!), + ), + ), + ], + ), + ], + ), + ), + ), + ), + ), + ], + ); + } +} diff --git a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart new file mode 100644 index 00000000..bbcd4725 --- /dev/null +++ b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_model.dart @@ -0,0 +1,91 @@ +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 { + /// State fields for stateful widgets in this component. + + final formKey = GlobalKey(); + // 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(); + } +} diff --git a/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart new file mode 100644 index 00000000..0d5327b0 --- /dev/null +++ b/lib/components/templates_components/sign_up_template_component/sign_up_template_component_widget.dart @@ -0,0 +1,866 @@ +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 createState() => + _SignUpTemplateComponentWidgetState(); +} + +class _SignUpTemplateComponentWidgetState + extends State with TickerProviderStateMixin { + late SignUpTemplateComponentModel _model; + + final animationsMap = {}; + + @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(); + + 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), + ), + ), + ], + ), + ), + ), + ), + ), + ], + ); + } +} diff --git a/lib/modals/view_visit_detail/view_visit_detail_model.dart b/lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart similarity index 100% rename from lib/modals/view_visit_detail/view_visit_detail_model.dart rename to lib/components/templates_components/view_visit_detail/view_visit_detail_model.dart diff --git a/lib/modals/view_visit_detail/view_visit_detail_widget.dart b/lib/components/templates_components/view_visit_detail/view_visit_detail_widget.dart similarity index 99% rename from lib/modals/view_visit_detail/view_visit_detail_widget.dart rename to lib/components/templates_components/view_visit_detail/view_visit_detail_widget.dart index a9e1fa7a..73f3e397 100644 --- a/lib/modals/view_visit_detail/view_visit_detail_widget.dart +++ b/lib/components/templates_components/view_visit_detail/view_visit_detail_widget.dart @@ -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'; diff --git a/lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_model.dart b/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart similarity index 84% rename from lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_model.dart rename to lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart index 66664873..a4052e41 100644 --- a/lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_model.dart +++ b/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_model.dart @@ -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'; diff --git a/lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart b/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart similarity index 95% rename from lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart rename to lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart index 0bd52e6c..7e668742 100644 --- a/lib/modals/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart +++ b/lib/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart @@ -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'; diff --git a/lib/modals/visit_request_template_component/visit_request_template_component_model.dart b/lib/components/templates_components/visit_request_template_component/visit_request_template_component_model.dart similarity index 100% rename from lib/modals/visit_request_template_component/visit_request_template_component_model.dart rename to lib/components/templates_components/visit_request_template_component/visit_request_template_component_model.dart diff --git a/lib/modals/visit_request_template_component/visit_request_template_component_widget.dart b/lib/components/templates_components/visit_request_template_component/visit_request_template_component_widget.dart similarity index 100% rename from lib/modals/visit_request_template_component/visit_request_template_component_widget.dart rename to lib/components/templates_components/visit_request_template_component/visit_request_template_component_widget.dart diff --git a/lib/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart b/lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart similarity index 100% rename from lib/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart rename to lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_model.dart diff --git a/lib/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart b/lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart similarity index 100% rename from lib/modals/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart rename to lib/components/templates_components/visitor_details_modal_template_component/visitor_details_modal_template_component_widget.dart diff --git a/lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart similarity index 100% rename from lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart rename to lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_model.dart diff --git a/lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart similarity index 99% rename from lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart rename to lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart index 3961ff49..f393b4ec 100644 --- a/lib/modals/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart +++ b/lib/components/templates_components/visitor_search_modal_template_component/visitor_search_modal_template_component_widget.dart @@ -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'; diff --git a/lib/components/templates_components/welcome_template_component/welcome_template_component_model.dart b/lib/components/templates_components/welcome_template_component/welcome_template_component_model.dart new file mode 100644 index 00000000..17ea3047 --- /dev/null +++ b/lib/components/templates_components/welcome_template_component/welcome_template_component_model.dart @@ -0,0 +1,13 @@ +import '/flutter_flow/flutter_flow_util.dart'; +import 'welcome_template_component_widget.dart' + show WelcomeTemplateComponentWidget; +import 'package:flutter/material.dart'; + +class WelcomeTemplateComponentModel + extends FlutterFlowModel { + @override + void initState(BuildContext context) {} + + @override + void dispose() {} +} diff --git a/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart b/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart new file mode 100644 index 00000000..bdb465b1 --- /dev/null +++ b/lib/components/templates_components/welcome_template_component/welcome_template_component_widget.dart @@ -0,0 +1,445 @@ +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 createState() => + _WelcomeTemplateComponentWidgetState(); +} + +class _WelcomeTemplateComponentWidgetState + extends State + with TickerProviderStateMixin { + late WelcomeTemplateComponentModel _model; + + final animationsMap = {}; + + @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']!), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/flutter_flow/internationalization.dart b/lib/flutter_flow/internationalization.dart index 90baffdf..91cb14b0 100644 --- a/lib/flutter_flow/internationalization.dart +++ b/lib/flutter_flow/internationalization.dart @@ -151,86 +151,6 @@ final kTranslationsMap = >>[ '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': '', @@ -504,66 +424,6 @@ final kTranslationsMap = >>[ }, // 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': '', @@ -571,66 +431,6 @@ final kTranslationsMap = >>[ }, // 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': '', @@ -638,30 +438,6 @@ final kTranslationsMap = >>[ }, // 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': '', @@ -971,6 +747,248 @@ final kTranslationsMap = >>[ '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': { diff --git a/lib/pages/acess_history_page/acess_history_page_model.dart b/lib/pages/acess_history_page/acess_history_page_model.dart index 15d9230c..71a5824f 100644 --- a/lib/pages/acess_history_page/acess_history_page_model.dart +++ b/lib/pages/acess_history_page/acess_history_page_model.dart @@ -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; diff --git a/lib/pages/acess_history_page/acess_history_page_widget.dart b/lib/pages/acess_history_page/acess_history_page_widget.dart index b3e81a86..8b4f8b03 100644 --- a/lib/pages/acess_history_page/acess_history_page_widget.dart +++ b/lib/pages/acess_history_page/acess_history_page_widget.dart @@ -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'; diff --git a/lib/pages/home_page/home_page_model.dart b/lib/pages/home_page/home_page_model.dart index f4c7637a..01e742ae 100644 --- a/lib/pages/home_page/home_page_model.dart +++ b/lib/pages/home_page/home_page_model.dart @@ -1,3 +1,6 @@ +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'; @@ -14,14 +17,30 @@ class HomePageModel extends FlutterFlowModel { 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) {} + void initState(BuildContext context) { + localComponentModel = + createModel(context, () => LocalProfileComponentModel()); + menuComponentModel = createModel(context, () => MenuComponentModel()); + messageWellComponentModel = + createModel(context, () => MessageWellComponentModel()); + } @override void dispose() { unfocusNode.dispose(); textFieldFocusNode?.dispose(); textController?.dispose(); + + localComponentModel.dispose(); + menuComponentModel.dispose(); + messageWellComponentModel.dispose(); } } diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index f7fe3b51..e28895db 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -1,12 +1,13 @@ +import '/components/organism_components/bottom_arrow_linked_locals_component/bottom_arrow_linked_locals_component_widget.dart'; +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_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 '/flutter_flow/custom_functions.dart' as functions; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; -import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; import 'package:google_fonts/google_fonts.dart'; import 'package:provider/provider.dart'; import 'home_page_model.dart'; @@ -1071,124 +1072,10 @@ class _HomePageWidgetState extends State { ), ], ), - 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 GestureDetector( - onTap: () => _model.unfocusNode - .canRequestFocus - ? FocusScope.of(context) - .requestFocus( - _model.unfocusNode) - : FocusScope.of(context) - .unfocus(), - child: 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( - '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( - 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)), - ), - ), - ), - ), + wrapWithModel( + model: _model.localComponentModel, + updateCallback: () => setState(() {}), + child: const LocalProfileComponentWidget(), ), Wrap( spacing: 0.0, @@ -1200,3048 +1087,17 @@ class _HomePageWidgetState extends State { verticalDirection: VerticalDirection.down, clipBehavior: Clip.none, children: [ - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 0.0, 10.0, 0.0, 0.0), - child: Builder( - builder: (context) { - if (_model.isGrid == true) { - return Wrap( - spacing: 0.0, - runSpacing: 0.0, - alignment: WrapAlignment.start, - crossAxisAlignment: WrapCrossAlignment.start, - direction: Axis.horizontal, - runAlignment: WrapAlignment.start, - verticalDirection: VerticalDirection.down, - clipBehavior: Clip.none, - children: [ - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 5.0, 0.0, 5.0, 0.0), - child: Container( - width: double.infinity, - height: 125.0, - decoration: const BoxDecoration(), - child: ListView( - padding: const EdgeInsets.fromLTRB( - 10.0, - 0, - 10.0, - 0, - ), - scrollDirection: Axis.horizontal, - children: [ - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - FFIcons - .kvector1, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'b2qdcsh0' /* Agendar -Visita */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - FFIcons - .kvector, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'intigjrx' /* Cadastrar -Visitante */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - FFIcons - .khome, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'dcpn2r8i' /* Vincular -Condomínio */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - FFIcons - .kpets, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'rt57fpea' /* Cadastrar -Pet */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - FFIcons - .kvector2, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'e7o77oeh' /* QR Code -de Acesso */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - Icons - .people, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'xua67fn9' /* Pessoas na -Propriedade */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - Icons - .history_sharp, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'hli1jd0i' /* Consultar -Históricos */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - Icons - .history_sharp, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'kbvld4ht' /* Histórico -de Acesso */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 10.0, 0.0, 20.0), - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: - FlutterFlowTheme.of( - context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: FlutterFlowTheme.of( - context) - .primaryBackground, - shape: BoxShape - .circle, - ), - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Icon( - Icons - .history_sharp, - color: FlutterFlowTheme.of( - context) - .accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'csz6cjye' /* Histórico -de Liberação */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Nunito'), - ), - ), - ), - ], - ), - ), - ].divide( - const SizedBox(height: 0.0)), - ), - ), - ), - ), - ].divide(const SizedBox(width: 15.0)), - ), - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: FlutterFlowIconButton( - borderColor: Colors.transparent, - borderRadius: 20.0, - borderWidth: 1.0, - buttonSize: 50.0, - fillColor: const Color(0x00FFFFFF), - icon: Icon( - Icons.keyboard_arrow_down_outlined, - color: FlutterFlowTheme.of(context) - .primary, - ), - onPressed: () { - print('IconButton pressed ...'); - }, - ), - ), - ], - ); - } else { - return Wrap( - spacing: 0.0, - runSpacing: 0.0, - alignment: WrapAlignment.start, - crossAxisAlignment: WrapCrossAlignment.start, - direction: Axis.horizontal, - runAlignment: WrapAlignment.start, - verticalDirection: VerticalDirection.down, - clipBehavior: Clip.none, - children: [ - Container( - width: double.infinity, - height: - MediaQuery.sizeOf(context).height * - 0.498, - decoration: const BoxDecoration(), - child: Padding( - padding: const EdgeInsets.all(14.0), - child: MasonryGridView.builder( - physics: - const NeverScrollableScrollPhysics(), - gridDelegate: - const SliverSimpleGridDelegateWithFixedCrossAxisCount( - crossAxisCount: 3, - ), - crossAxisSpacing: 10.0, - mainAxisSpacing: 10.0, - itemCount: 9, - padding: const EdgeInsets.fromLTRB( - 0, - 10.0, - 0, - 10.0, - ), - shrinkWrap: true, - itemBuilder: (context, index) { - return [ - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - FFIcons - .kvector1, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'lzag0674' /* Agendar -Visita */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - FFIcons - .kvector, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'mopkb1cs' /* Cadastrar - Visitante */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - FFIcons - .khome, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - '9n0bfmlf' /* Vincular -Condomínio */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - FFIcons - .kpets, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - '3hkp1x8r' /* Cadastrar -Pet */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - FFIcons - .kvector2, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'fi81uwmz' /* QR Code -de Acesso */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - Icons - .people, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - '1djx7nvm' /* Pessoas na -Propriedade */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - Icons - .history_sharp, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'ttj9zmi8' /* Histórico -de Acesso */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - Icons - .history_sharp, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'h989n5uy' /* Histórico -de Liberação */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - () => Container( - width: 100.0, - height: 100.0, - decoration: BoxDecoration( - color: FlutterFlowTheme - .of(context) - .primaryBackground, - boxShadow: [ - BoxShadow( - blurRadius: 4.0, - color: FlutterFlowTheme - .of(context) - .customColor5, - offset: const Offset( - 0.0, - 2.0, - ), - ) - ], - borderRadius: - BorderRadius.circular( - 24.0), - shape: BoxShape.rectangle, - border: Border.all( - color: - FlutterFlowTheme.of( - context) - .alternate, - width: 0.5, - ), - ), - child: Padding( - padding: - const EdgeInsets.all(4.0), - child: Column( - mainAxisSize: - MainAxisSize.min, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - crossAxisAlignment: - CrossAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .max, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional( - -1.0, - 0.0), - child: - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 8.0, - 0.0, - 0.0, - 0.0), - child: - Container( - width: - 30.0, - height: - 30.0, - decoration: - BoxDecoration( - color: - FlutterFlowTheme.of(context).primaryBackground, - shape: - BoxShape.circle, - ), - alignment: const AlignmentDirectional( - 0.0, - 0.0), - child: - Icon( - Icons - .settings_rounded, - color: - FlutterFlowTheme.of(context).accent1, - size: - 24.0, - ), - ), - ), - ), - ), - ], - ), - ), - Align( - alignment: - const AlignmentDirectional( - 0.0, 0.0), - child: Row( - mainAxisSize: - MainAxisSize - .min, - mainAxisAlignment: - MainAxisAlignment - .center, - children: [ - Align( - alignment: - const AlignmentDirectional( - 0.0, - 0.0), - child: Text( - FFLocalizations.of( - context) - .getText( - 'fx7ci8gw' /* Preferencias -do Sistema */ - , - ), - style: FlutterFlowTheme.of( - context) - .titleLarge - .override( - fontFamily: - 'Nunito', - color: - FlutterFlowTheme.of(context).primaryText, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Nunito'), - ), - ), - ), - ], - ), - ), - ].divide(const SizedBox( - height: 0.0)), - ), - ), - ), - ][index](); - }, - ), - ), - ), - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Container( - decoration: const BoxDecoration( - borderRadius: BorderRadius.only( - bottomLeft: Radius.circular(0.0), - bottomRight: Radius.circular(0.0), - topLeft: Radius.circular(0.0), - topRight: Radius.circular(0.0), - ), - ), - alignment: - const AlignmentDirectional(0.0, 0.0), - child: Align( - alignment: - const AlignmentDirectional(0.0, 0.0), - child: FlutterFlowIconButton( - borderColor: Colors.transparent, - borderRadius: 20.0, - borderWidth: 1.0, - buttonSize: 50.0, - fillColor: const Color(0x00FFFFFF), - icon: Icon( - Icons.keyboard_arrow_up_sharp, - color: - FlutterFlowTheme.of(context) - .primary, - ), - onPressed: () { - print('IconButton pressed ...'); - }, - ), - ), - ), - ), - ], - ); - } - }, - ), + wrapWithModel( + model: _model.menuComponentModel, + updateCallback: () => setState(() {}), + child: const MenuComponentWidget(), ), 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( - 'rgpcq2s6' /* 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( - 'bdvbpuo8' /* 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 [], - ), - ), - ), - ), - ], - ), - ), + child: wrapWithModel( + model: _model.messageWellComponentModel, + updateCallback: () => setState(() {}), + child: const MessageWellComponentWidget(), ), ), ], diff --git a/lib/pages/qr_code_page/qr_code_page_widget.dart b/lib/pages/qr_code_page/qr_code_page_widget.dart index b7da1d61..3d37a4c5 100644 --- a/lib/pages/qr_code_page/qr_code_page_widget.dart +++ b/lib/pages/qr_code_page/qr_code_page_widget.dart @@ -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'; diff --git a/lib/pages/register_visitor_page/register_visitor_page_widget.dart b/lib/pages/register_visitor_page/register_visitor_page_widget.dart index 62a92670..6f9e7722 100644 --- a/lib/pages/register_visitor_page/register_visitor_page_widget.dart +++ b/lib/pages/register_visitor_page/register_visitor_page_widget.dart @@ -1,4 +1,5 @@ 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'; @@ -6,7 +7,6 @@ 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'; diff --git a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart index 230ce3c0..8643f7c6 100644 --- a/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart +++ b/lib/pages/schedule_complete_visit_page/schedule_complete_visit_page_widget.dart @@ -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'; diff --git a/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart b/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart index bc791565..b8528fa3 100644 --- a/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart +++ b/lib/pages/schedule_provisional_visit_page/schedule_provisional_visit_page_widget.dart @@ -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'; diff --git a/lib/pages/sign_in_page/sign_in_page_model.dart b/lib/pages/sign_in_page/sign_in_page_model.dart index df0ba706..e8b945bd 100644 --- a/lib/pages/sign_in_page/sign_in_page_model.dart +++ b/lib/pages/sign_in_page/sign_in_page_model.dart @@ -1,3 +1,4 @@ +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'; @@ -6,56 +7,18 @@ class SignInPageModel extends FlutterFlowModel { /// State fields for stateful widgets in this page. final unfocusNode = FocusNode(); - final formKey = GlobalKey(); - // 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; - } + // Model for signInTemplateComponent component. + late SignInTemplateComponentModel signInTemplateComponentModel; @override void initState(BuildContext context) { - emailAddressTextControllerValidator = _emailAddressTextControllerValidator; - passwordVisibility = false; - passwordTextControllerValidator = _passwordTextControllerValidator; + signInTemplateComponentModel = + createModel(context, () => SignInTemplateComponentModel()); } @override void dispose() { unfocusNode.dispose(); - emailAddressFocusNode?.dispose(); - emailAddressTextController?.dispose(); - - passwordFocusNode?.dispose(); - passwordTextController?.dispose(); + signInTemplateComponentModel.dispose(); } } diff --git a/lib/pages/sign_in_page/sign_in_page_widget.dart b/lib/pages/sign_in_page/sign_in_page_widget.dart index 7945a411..da1727c7 100644 --- a/lib/pages/sign_in_page/sign_in_page_widget.dart +++ b/lib/pages/sign_in_page/sign_in_page_widget.dart @@ -1,14 +1,8 @@ -import '/flutter_flow/flutter_flow_animations.dart'; +import '/components/templates_components/sign_in_template_component/sign_in_template_component_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/forgot_password_template_component/forgot_password_template_component_widget.dart'; import '/actions/actions.dart' as action_blocks; -import 'package:easy_debounce/easy_debounce.dart'; -import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_animate/flutter_animate.dart'; -import 'package:google_fonts/google_fonts.dart'; import 'sign_in_page_model.dart'; export 'sign_in_page_model.dart'; @@ -19,61 +13,15 @@ class SignInPageWidget extends StatefulWidget { State createState() => _SignInPageWidgetState(); } -class _SignInPageWidgetState extends State - with TickerProviderStateMixin { +class _SignInPageWidgetState extends State { late SignInPageModel _model; final scaffoldKey = GlobalKey(); - final animationsMap = {}; - @override void initState() { super.initState(); _model = createModel(context, () => SignInPageModel()); - - _model.emailAddressTextController ??= TextEditingController(); - _model.emailAddressFocusNode ??= FocusNode(); - - _model.passwordTextController ??= TextEditingController(); - _model.passwordFocusNode ??= FocusNode(); - - animationsMap.addAll({ - 'containerOnPageLoadAnimation': AnimationInfo( - trigger: AnimationTrigger.onPageLoad, - effectsBuilder: () => [ - VisibilityEffect(duration: 1.ms), - FadeEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: 0.0, - end: 1.0, - ), - MoveEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(0.0, 140.0), - end: const Offset(0.0, 0.0), - ), - ScaleEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(0.9, 0.9), - end: const Offset(1.0, 1.0), - ), - TiltEffect( - curve: Curves.easeInOut, - delay: 0.0.ms, - duration: 300.0.ms, - begin: const Offset(-0.349, 0), - end: const Offset(0, 0), - ), - ], - ), - }); } @override @@ -94,1035 +42,15 @@ class _SignInPageWidgetState extends State backgroundColor: FlutterFlowTheme.of(context).primaryBackground, body: SafeArea( top: true, - child: Row( - mainAxisSize: MainAxisSize.max, - children: [ - Expanded( - flex: 6, - child: Container( - width: 100.0, - height: double.infinity, - decoration: const BoxDecoration(), - alignment: const AlignmentDirectional(0.0, -1.0), - child: Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 0.0, 35.0, 0.0, 35.0), - child: Container( - width: 548.0, - height: 112.0, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(16.0), - ), - alignment: const AlignmentDirectional(0.0, 0.0), - child: Padding( - padding: const EdgeInsets.all(20.0), - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(0.0, 1.0), - child: Padding( - padding: const EdgeInsets.all(3.0), - child: Text( - FFLocalizations.of(context).getText( - 'v9f4ae9n' /* VAMOS LA! ENTRE COM A SUA CONT... */, - ), - textAlign: TextAlign.start, - style: FlutterFlowTheme.of(context) - .displaySmall - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: 24.0, - letterSpacing: 0.0, - fontWeight: FontWeight.w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - ), - ), - ), - ), - ], - ), - ), - ), - ), - Container( - width: 291.0, - height: 167.0, - decoration: const BoxDecoration(), - child: ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image.network( - 'https://storage.googleapis.com/flutterflow-io-6f20.appspot.com/projects/flutter-freaccess-hub-0xgz9q/assets/sr43ucngg4a4/Vector.png', - width: 603.0, - height: 155.0, - fit: BoxFit.contain, - ), - ), - ), - Column( - mainAxisSize: MainAxisSize.max, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Padding( - padding: const EdgeInsetsDirectional.fromSTEB( - 34.0, 0.0, 34.0, 0.0), - child: Container( - width: double.infinity, - constraints: const BoxConstraints( - maxWidth: 570.0, - ), - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context) - .primaryBackground, - borderRadius: BorderRadius.circular(12.0), - shape: BoxShape.rectangle, - ), - child: Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Padding( - padding: const EdgeInsets.all(32.0), - child: Column( - mainAxisSize: MainAxisSize.max, - crossAxisAlignment: - CrossAxisAlignment.center, - children: [ - Form( - key: _model.formKey, - autovalidateMode: - AutovalidateMode.always, - 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 - .emailAddressTextController, - focusNode: _model - .emailAddressFocusNode, - onChanged: (_) => - EasyDebounce - .debounce( - '_model.emailAddressTextController', - const Duration( - milliseconds: - 500), - () => setState(() {}), - ), - autofocus: true, - autofillHints: const [ - AutofillHints.email - ], - textCapitalization: - TextCapitalization - .none, - textInputAction: - TextInputAction - .next, - obscureText: false, - decoration: - InputDecoration( - isDense: true, - labelText: - FFLocalizations.of( - context) - .getText( - 'i6dx9dz4' /* Email */, - ), - labelStyle: - FlutterFlowTheme.of( - context) - .labelLarge - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - enabledBorder: - OutlineInputBorder( - borderSide: - BorderSide( - color: FlutterFlowTheme - .of(context) - .customColor1, - width: 0.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), - ), - suffixIcon: Icon( - Icons.email, - color: FlutterFlowTheme - .of(context) - .accent1, - size: 22.0, - ), - ), - style: - FlutterFlowTheme.of( - context) - .bodyLarge - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - keyboardType: - TextInputType - .emailAddress, - validator: _model - .emailAddressTextControllerValidator - .asValidator( - context), - ), - ), - ), - Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB(0.0, 0.0, - 0.0, 16.0), - child: SizedBox( - width: double.infinity, - child: TextFormField( - controller: _model - .passwordTextController, - focusNode: _model - .passwordFocusNode, - onChanged: (_) => - EasyDebounce - .debounce( - '_model.passwordTextController', - const Duration( - milliseconds: - 500), - () => setState(() {}), - ), - autofocus: true, - autofillHints: const [ - AutofillHints.password - ], - textInputAction: - TextInputAction - .send, - obscureText: !_model - .passwordVisibility, - decoration: - InputDecoration( - isDense: true, - labelText: - FFLocalizations.of( - context) - .getText( - 'kpsqzbuz' /* 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 - .passwordVisibility = - !_model - .passwordVisibility, - ), - focusNode: FocusNode( - skipTraversal: - true), - child: Icon( - _model.passwordVisibility - ? Icons - .visibility_outlined - : Icons - .visibility_off_outlined, - color: FlutterFlowTheme - .of(context) - .accent1, - size: 24.0, - ), - ), - ), - style: - FlutterFlowTheme.of( - context) - .bodyLarge - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .primaryText, - fontSize: - 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - validator: _model - .passwordTextControllerValidator - .asValidator( - context), - ), - ), - ), - ], - ), - ), - Builder( - builder: (context) { - if (MediaQuery.sizeOf(context) - .width < - kBreakpointSmall - ? true - : false) { - return Column( - mainAxisSize: - MainAxisSize.max, - children: [ - Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 16.0), - child: FFButtonWidget( - onPressed: ((_model.emailAddressTextController - .text == - '') && - (_model.passwordTextController - .text == - '')) - ? null - : () async { - await action_blocks - .singInLoginAction( - context, - emailAdress: - _model - .emailAddressTextController - .text, - password: _model - .passwordTextController - .text, - ); - setState( - () {}); - }, - text: FFLocalizations - .of(context) - .getText( - 'q4tx90yp' /* 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), - disabledColor: - FlutterFlowTheme.of( - context) - .customColor5, - disabledTextColor: - Colors.white, - ), - showLoadingIndicator: - false, - ), - ), - Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 16.0), - child: FFButtonWidget( - onPressed: () { - print( - 'signUpButtonLoginForm pressed ...'); - }, - text: FFLocalizations - .of(context) - .getText( - 'lzfmqkly' /* Cadastrar */, - ), - options: - FFButtonOptions( - width: - double.infinity, - height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - color: FlutterFlowTheme - .of(context) - .customColor1, - textStyle: - FlutterFlowTheme.of( - context) - .titleSmall - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .secondaryText, - fontSize: - 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .w500, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - elevation: 3.0, - borderSide: - const BorderSide( - color: Colors - .transparent, - width: 1.0, - ), - borderRadius: - BorderRadius - .circular( - 12.0), - ), - showLoadingIndicator: - false, - ), - ), - ], - ); - } else { - return Row( - mainAxisSize: - MainAxisSize.max, - mainAxisAlignment: - MainAxisAlignment - .spaceEvenly, - children: [ - Expanded( - child: Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 16.0), - child: FFButtonWidget( - onPressed: (((_model.emailAddressTextController.text == - '') || - ((_model.emailAddressFocusNode?.hasFocus ?? - false) != - null)) && - ((_model.emailAddressTextController.text == - '') || - ((_model.passwordTextController.text == '') || - ((_model.passwordFocusNode?.hasFocus ?? false) != - null)))) - ? null - : () async { - await action_blocks - .singInLoginAction( - context, - emailAdress: _model - .emailAddressTextController - .text, - password: _model - .passwordTextController - .text, - ); - setState( - () {}); - }, - text: FFLocalizations - .of(context) - .getText( - '7niwis9z' /* Entrar */, - ), - options: - FFButtonOptions( - width: double - .infinity, - height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - color: FlutterFlowTheme - .of(context) - .accent1, - textStyle: - FlutterFlowTheme.of( - context) - .titleSmall - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of(context) - .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), - disabledColor: - const Color( - 0xE81AAB5F), - ), - showLoadingIndicator: - false, - ), - ), - ), - Expanded( - child: Padding( - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 16.0), - child: FFButtonWidget( - onPressed: () { - print( - 'signUpButtonLoginForm pressed ...'); - }, - text: FFLocalizations - .of(context) - .getText( - 'bl377mgi' /* Cadastrar */, - ), - options: - FFButtonOptions( - width: double - .infinity, - height: 44.0, - padding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - iconPadding: - const EdgeInsetsDirectional - .fromSTEB( - 0.0, - 0.0, - 0.0, - 0.0), - color: FlutterFlowTheme - .of(context) - .customColor1, - textStyle: - FlutterFlowTheme.of( - context) - .titleSmall - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of(context) - .secondaryText, - fontSize: - 16.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight.w500, - useGoogleFonts: - GoogleFonts.asMap().containsKey('Plus Jakarta Sans'), - ), - elevation: 3.0, - borderSide: - const BorderSide( - color: Colors - .transparent, - width: 1.0, - ), - borderRadius: - BorderRadius - .circular( - 12.0), - ), - showLoadingIndicator: - false, - ), - ), - ), - ].divide( - const SizedBox(width: 7.0)), - ); - } - }, - ), - - // You will have to add an action on this rich text to go to your login page. - Padding( - padding: const EdgeInsetsDirectional - .fromSTEB( - 0.0, 12.0, 0.0, 12.0), - child: InkWell( - splashColor: Colors.transparent, - focusColor: Colors.transparent, - hoverColor: Colors.transparent, - highlightColor: - Colors.transparent, - onTap: () async { - await showModalBottomSheet( - isScrollControlled: true, - backgroundColor: - Colors.transparent, - enableDrag: false, - context: context, - builder: (context) { - return GestureDetector( - onTap: () => _model - .unfocusNode - .canRequestFocus - ? FocusScope.of( - context) - .requestFocus(_model - .unfocusNode) - : FocusScope.of( - context) - .unfocus(), - child: Padding( - padding: MediaQuery - .viewInsetsOf( - context), - child: - const ForgotPasswordTemplateComponentWidget(), - ), - ); - }, - ).then((value) => - safeSetState(() {})); - }, - child: RichText( - textScaler: - MediaQuery.of(context) - .textScaler, - text: TextSpan( - children: [ - TextSpan( - text: - FFLocalizations.of( - context) - .getText( - '7dntd49d' /* Você esqueceu a sua senha? */, - ), - style: TextStyle( - color: FlutterFlowTheme - .of(context) - .primaryText, - ), - ), - TextSpan( - text: - FFLocalizations.of( - context) - .getText( - '31y04wkg' /* Recupere aqui */, - ), - style: - FlutterFlowTheme.of( - context) - .bodyMedium - .override( - fontFamily: - 'Plus Jakarta Sans', - color: FlutterFlowTheme.of( - context) - .primary, - fontSize: - 14.0, - letterSpacing: - 0.0, - fontWeight: - FontWeight - .normal, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - 'Plus Jakarta Sans'), - ), - mouseCursor: - SystemMouseCursors - .click, - recognizer: - TapGestureRecognizer() - ..onTap = - () async { - await showModalBottomSheet( - isScrollControlled: - true, - backgroundColor: - Colors - .transparent, - context: - context, - builder: - (context) { - return GestureDetector( - onTap: () => _model - .unfocusNode - .canRequestFocus - ? FocusScope.of(context).requestFocus(_model - .unfocusNode) - : FocusScope.of(context) - .unfocus(), - child: - Padding( - padding: - MediaQuery.viewInsetsOf(context), - child: - const ForgotPasswordTemplateComponentWidget(), - ), - ); - }, - ).then((value) => - safeSetState( - () {})); - }, - ) - ], - style: FlutterFlowTheme.of( - context) - .bodyMedium - .override( - fontFamily: - FlutterFlowTheme.of( - context) - .bodyMediumFamily, - letterSpacing: 0.0, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - FlutterFlowTheme.of( - context) - .bodyMediumFamily), - ), - ), - ), - ), - ), - Text( - FFLocalizations.of(context) - .getText( - 'jou5axcb' /* Termo de Uso */, - ), - style: - FlutterFlowTheme.of(context) - .bodyMedium - .override( - fontFamily: - FlutterFlowTheme.of( - context) - .bodyMediumFamily, - color: - FlutterFlowTheme.of( - context) - .primaryText, - fontSize: 14.0, - letterSpacing: 0.0, - useGoogleFonts: GoogleFonts - .asMap() - .containsKey( - FlutterFlowTheme.of( - context) - .bodyMediumFamily), - ), - ), - ], - ), - ), - ), - ).animateOnPageLoad(animationsMap[ - 'containerOnPageLoadAnimation']!), - ), - ), - ], - ), - ], - ), - ), - ), - ), - ), - ], + child: wrapWithModel( + model: _model.signInTemplateComponentModel, + updateCallback: () => setState(() {}), + updateOnChange: true, + child: SignInTemplateComponentWidget( + toggleSignUpPage: () async { + await action_blocks.toggleSignUpPage(context); + }, + ), ), ), ), diff --git a/lib/pages/sign_up_page/sign_up_page_model.dart b/lib/pages/sign_up_page/sign_up_page_model.dart index c2bbea7c..938a3b46 100644 --- a/lib/pages/sign_up_page/sign_up_page_model.dart +++ b/lib/pages/sign_up_page/sign_up_page_model.dart @@ -1,3 +1,4 @@ +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'; @@ -6,86 +7,18 @@ class SignUpPageModel extends FlutterFlowModel { /// State fields for stateful widgets in this page. final unfocusNode = FocusNode(); - final formKey = GlobalKey(); - // 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; + // Model for signUpTemplateComponent component. + late SignUpTemplateComponentModel signUpTemplateComponentModel; @override void initState(BuildContext context) { - nameRegisterFormTextControllerValidator = - _nameRegisterFormTextControllerValidator; - emailRegisterFormTextControllerValidator = - _emailRegisterFormTextControllerValidator; - passwordRegisterFormVisibility = false; - passwordRegisterFormTextControllerValidator = - _passwordRegisterFormTextControllerValidator; + signUpTemplateComponentModel = + createModel(context, () => SignUpTemplateComponentModel()); } @override void dispose() { unfocusNode.dispose(); - nameRegisterFormFocusNode?.dispose(); - nameRegisterFormTextController?.dispose(); - - emailRegisterFormFocusNode?.dispose(); - emailRegisterFormTextController?.dispose(); - - passwordRegisterFormFocusNode?.dispose(); - passwordRegisterFormTextController?.dispose(); + signUpTemplateComponentModel.dispose(); } } diff --git a/lib/pages/sign_up_page/sign_up_page_widget.dart b/lib/pages/sign_up_page/sign_up_page_widget.dart index 3c087762..18c575ec 100644 --- a/lib/pages/sign_up_page/sign_up_page_widget.dart +++ b/lib/pages/sign_up_page/sign_up_page_widget.dart @@ -1,14 +1,8 @@ -import '/flutter_flow/flutter_flow_animations.dart'; +import '/components/templates_components/sign_up_template_component/sign_up_template_component_widget.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'; @@ -19,64 +13,15 @@ class SignUpPageWidget extends StatefulWidget { State createState() => _SignUpPageWidgetState(); } -class _SignUpPageWidgetState extends State - with TickerProviderStateMixin { +class _SignUpPageWidgetState extends State { late SignUpPageModel _model; final scaffoldKey = GlobalKey(); - final animationsMap = {}; - @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 @@ -88,8 +33,6 @@ class _SignUpPageWidgetState extends State @override Widget build(BuildContext context) { - context.watch(); - return GestureDetector( onTap: () => _model.unfocusNode.canRequestFocus ? FocusScope.of(context).requestFocus(_model.unfocusNode) @@ -99,819 +42,16 @@ class _SignUpPageWidgetState extends State backgroundColor: FlutterFlowTheme.of(context).primaryBackground, body: SafeArea( top: true, - child: Row( - mainAxisSize: MainAxisSize.max, - children: [ - Expanded( - flex: 6, - child: Container( - width: 100.0, - height: double.infinity, - decoration: BoxDecoration( - color: FlutterFlowTheme.of(context).primaryBackground, - ), - alignment: const AlignmentDirectional(0.0, -1.0), - child: Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Padding( - padding: const EdgeInsets.all(4.0), - child: Container( - width: 669.0, - height: 112.0, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(16.0), - ), - alignment: const AlignmentDirectional(0.0, 0.0), - child: Padding( - padding: const EdgeInsets.all(20.0), - child: Column( - mainAxisSize: MainAxisSize.max, - children: [ - Expanded( - child: Align( - alignment: - const AlignmentDirectional(0.0, -1.0), - child: Padding( - padding: const EdgeInsets.all(4.0), - child: Text( - FFLocalizations.of(context).getText( - '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), - ), - ), - ], - ), - ), - ), - ), - ), - ], + child: wrapWithModel( + model: _model.signUpTemplateComponentModel, + updateCallback: () => setState(() {}), + updateOnChange: true, + child: SignUpTemplateComponentWidget( + toggleSignInPage: () async { + await action_blocks.toggleSignInPage(context); + setState(() {}); + }, + ), ), ), ), diff --git a/lib/pages/welcome_page/welcome_page_model.dart b/lib/pages/welcome_page/welcome_page_model.dart index ae64ac31..b8a54a7e 100644 --- a/lib/pages/welcome_page/welcome_page_model.dart +++ b/lib/pages/welcome_page/welcome_page_model.dart @@ -1,3 +1,4 @@ +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'; @@ -10,12 +11,18 @@ class WelcomePageModel extends FlutterFlowModel { /// State fields for stateful widgets in this page. final unfocusNode = FocusNode(); + // Model for welcomeTemplateComponent component. + late WelcomeTemplateComponentModel welcomeTemplateComponentModel; @override - void initState(BuildContext context) {} + void initState(BuildContext context) { + welcomeTemplateComponentModel = + createModel(context, () => WelcomeTemplateComponentModel()); + } @override void dispose() { unfocusNode.dispose(); + welcomeTemplateComponentModel.dispose(); } } diff --git a/lib/pages/welcome_page/welcome_page_widget.dart b/lib/pages/welcome_page/welcome_page_widget.dart index 7c0bab8f..6089703a 100644 --- a/lib/pages/welcome_page/welcome_page_widget.dart +++ b/lib/pages/welcome_page/welcome_page_widget.dart @@ -1,12 +1,9 @@ -import '/flutter_flow/flutter_flow_animations.dart'; +import '/components/templates_components/welcome_template_component/welcome_template_component_widget.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; -import '/flutter_flow/flutter_flow_widgets.dart'; +import '/actions/actions.dart' as action_blocks; import 'package:flutter/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'; @@ -18,14 +15,11 @@ class WelcomePageWidget extends StatefulWidget { State createState() => _WelcomePageWidgetState(); } -class _WelcomePageWidgetState extends State - with TickerProviderStateMixin { +class _WelcomePageWidgetState extends State { late WelcomePageModel _model; final scaffoldKey = GlobalKey(); - final animationsMap = {}; - @override void initState() { super.initState(); @@ -44,43 +38,6 @@ class _WelcomePageWidgetState extends State 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 @@ -103,381 +60,17 @@ class _WelcomePageWidgetState extends State backgroundColor: FlutterFlowTheme.of(context).primaryBackground, body: SafeArea( top: true, - child: Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: SingleChildScrollView( - child: Column( - mainAxisSize: MainAxisSize.max, - mainAxisAlignment: MainAxisAlignment.spaceAround, - children: [ - Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: SafeArea( - child: Container( - width: 648.0, - height: 208.0, - decoration: BoxDecoration( - borderRadius: BorderRadius.circular(16.0), - ), - alignment: const AlignmentDirectional(0.0, 0.0), - child: Align( - alignment: const AlignmentDirectional(0.0, 0.0), - child: Padding( - padding: const EdgeInsets.all(14.0), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Text( - FFLocalizations.of(context).getText( - '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']!), - ), - ), - ], - ), + 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); + }, ), ), ),