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] 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); + }, ), ), ),