From 90a6196a309a8ae30a6dbfe3ced4b316091d3b7b Mon Sep 17 00:00:00 2001 From: FlutterFlow <140657486+FlutterFlowEng@users.noreply.github.com> Date: Tue, 25 Jun 2024 12:20:32 +0000 Subject: [PATCH] add accessNotification route --- ios/Runner.xcodeproj/project.pbxproj | 8 +- .../menu_component/menu_component_model.dart | 13 ++ .../menu_component/menu_component_widget.dart | 5 + .../menu_list_view_component_widget.dart | 114 ++++++++++++ .../menu_staggered_view_component_widget.dart | 123 ++++++++++++- lib/flutter_flow/internationalization.dart | 12 ++ .../liberation_history_widget.dart | 169 +++++++++++------- 7 files changed, 376 insertions(+), 68 deletions(-) diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index c1a93a29..02fe82cc 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 = ""; }; - 6436409D27A31CD200820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; - 6436409627A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409327A31CD200820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = ""; }; + 6436409C27A31CD500820AF7 /* 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 = ( - 6436409D27A31CD200820AF7 /* pt */, - 6436409627A31CD500820AF7 /* en */, + 6436409327A31CD200820AF7 /* pt */, + 6436409C27A31CD500820AF7 /* en */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/lib/components/organism_components/menu_component/menu_component_model.dart b/lib/components/organism_components/menu_component/menu_component_model.dart index 86868ce2..17dc9b4d 100644 --- a/lib/components/organism_components/menu_component/menu_component_model.dart +++ b/lib/components/organism_components/menu_component/menu_component_model.dart @@ -76,4 +76,17 @@ class MenuComponentModel extends FlutterFlowModel { }, ); } + + Future acessHistoryOptAction(BuildContext context) async { + context.pushNamed( + 'acessHistoryPage', + 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 index f3894415..b37bfd27 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -62,6 +62,10 @@ class _MenuComponentWidgetState extends State { await _model.peopleOnThePropertyAction(context); setState(() {}); }, + acessHistoryOptAction: () async { + await _model.acessHistoryOptAction(context); + setState(() {}); + }, ), ); } else { @@ -86,6 +90,7 @@ class _MenuComponentWidgetState extends State { await _model.peopleOnThePropertyAction(context); setState(() {}); }, + accessHistoryOptAction: () async {}, ), ); } 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 index 75cd40af..f2daf6a8 100644 --- 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 @@ -13,12 +13,14 @@ class MenuListViewComponentWidget extends StatefulWidget { required this.registerVisitorOptAction, required this.scheduleVisitOptAction, required this.peopleOnThePropertyOptAction, + required this.acessHistoryOptAction, }); final Future Function()? changeMenuStyle; final Future Function()? registerVisitorOptAction; final Future Function()? scheduleVisitOptAction; final Future Function()? peopleOnThePropertyOptAction; + final Future Function()? acessHistoryOptAction; @override State createState() => @@ -717,6 +719,118 @@ Propriedade */ ), ), ), + 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' /* 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)), + ), + ), + ), + ), + ), ].divide(const SizedBox(width: 15.0)), ), ), diff --git a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart index c85631c4..9096f332 100644 --- a/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart +++ b/lib/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_widget.dart @@ -14,12 +14,14 @@ class MenuStaggeredViewComponentWidget extends StatefulWidget { required this.registerVisitorOptAction, required this.scheduleVisitOptAction, required this.peopleOnThePropertyOptAction, + required this.accessHistoryOptAction, }); final Future Function()? changeMenuStyleAction; final Future Function()? registerVisitorOptAction; final Future Function()? scheduleVisitOptAction; final Future Function()? peopleOnThePropertyOptAction; + final Future Function()? accessHistoryOptAction; @override State createState() => @@ -63,7 +65,7 @@ class _MenuStaggeredViewComponentWidgetState children: [ Container( width: double.infinity, - height: MediaQuery.sizeOf(context).height * 0.35, + height: MediaQuery.sizeOf(context).height * 0.44, decoration: const BoxDecoration(), child: Padding( padding: const EdgeInsets.all(16.0), @@ -74,7 +76,7 @@ class _MenuStaggeredViewComponentWidgetState ), crossAxisSpacing: 10.0, mainAxisSpacing: 10.0, - itemCount: 6, + itemCount: 7, shrinkWrap: true, itemBuilder: (context, index) { return [ @@ -744,6 +746,123 @@ Propriedade */ ), ), ), + () => 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)), + ), + ), + ), + ), ][index](); }, ), diff --git a/lib/flutter_flow/internationalization.dart b/lib/flutter_flow/internationalization.dart index 9e8be8f3..625432b8 100644 --- a/lib/flutter_flow/internationalization.dart +++ b/lib/flutter_flow/internationalization.dart @@ -461,6 +461,10 @@ final kTranslationsMap = >>[ 'pt': 'Fim em: ', 'en': 'End in:', }, + '784f83pc': { + 'pt': 'Histórico de Liberação', + 'en': 'Liberation History', + }, '1skj43ye': { 'pt': 'Home', 'en': '', @@ -766,6 +770,10 @@ final kTranslationsMap = >>[ 'pt': 'Pessoas na\nPropriedade', 'en': 'People on\nthe Property', }, + 'nxssjz3q': { + 'pt': 'Histórico \nde Acesso', + 'en': 'Access \nHistory', + }, }, // menuStaggeredViewComponent { @@ -793,6 +801,10 @@ final kTranslationsMap = >>[ 'pt': 'Pessoas na\nPropriedade', 'en': 'People on\nthe Property', }, + '6jzghbyi': { + 'pt': 'Histórico\nde Acesso', + 'en': 'Access\nHistory', + }, }, // messageWellComponent { diff --git a/lib/pages/liberation_history/liberation_history_widget.dart b/lib/pages/liberation_history/liberation_history_widget.dart index f66a234a..7314f71f 100644 --- a/lib/pages/liberation_history/liberation_history_widget.dart +++ b/lib/pages/liberation_history/liberation_history_widget.dart @@ -1,5 +1,6 @@ import '/backend/api_requests/api_calls.dart'; import '/components/templates_components/visit_details_modal_template_component/visit_details_modal_template_component_widget.dart'; +import '/flutter_flow/flutter_flow_icon_button.dart'; import '/flutter_flow/flutter_flow_theme.dart'; import '/flutter_flow/flutter_flow_util.dart'; import '/flutter_flow/custom_functions.dart' as functions; @@ -51,6 +52,39 @@ class _LiberationHistoryWidgetState extends State { child: Scaffold( key: scaffoldKey, backgroundColor: FlutterFlowTheme.of(context).primaryBackground, + appBar: AppBar( + backgroundColor: FlutterFlowTheme.of(context).primaryBackground, + automaticallyImplyLeading: false, + leading: FlutterFlowIconButton( + borderColor: Colors.transparent, + borderRadius: 30.0, + borderWidth: 1.0, + buttonSize: 60.0, + icon: Icon( + Icons.keyboard_arrow_left, + color: FlutterFlowTheme.of(context).primaryText, + size: 30.0, + ), + onPressed: () async { + context.pop(); + }, + ), + title: Text( + FFLocalizations.of(context).getText( + '784f83pc' /* Histórico de Liberação */, + ), + style: FlutterFlowTheme.of(context).headlineMedium.override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 17.0, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts.asMap().containsKey('Nunito'), + ), + ), + actions: const [], + centerTitle: true, + elevation: 2.0, + ), body: SafeArea( top: true, child: Column( @@ -66,74 +100,85 @@ class _LiberationHistoryWidgetState extends State { alignment: const AlignmentDirectional(0.0, -1.0), child: Padding( padding: const EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0), - child: TextFormField( - controller: _model.textController, - focusNode: _model.textFieldFocusNode, - autofocus: true, - obscureText: false, - decoration: InputDecoration( - labelText: FFLocalizations.of(context).getText( - 'dy0mx15f' /* Label here... */, + child: SizedBox( + width: 300.0, + child: TextFormField( + controller: _model.textController, + focusNode: _model.textFieldFocusNode, + autofocus: true, + obscureText: false, + decoration: InputDecoration( + isDense: true, + labelText: FFLocalizations.of(context).getText( + 'dy0mx15f' /* Label here... */, + ), + labelStyle: FlutterFlowTheme.of(context) + .labelMedium + .override( + fontFamily: FlutterFlowTheme.of(context) + .labelMediumFamily, + color: FlutterFlowTheme.of(context).primaryText, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts.asMap().containsKey( + FlutterFlowTheme.of(context) + .labelMediumFamily), + ), + hintStyle: FlutterFlowTheme.of(context) + .labelMedium + .override( + fontFamily: FlutterFlowTheme.of(context) + .labelMediumFamily, + color: FlutterFlowTheme.of(context).primaryText, + letterSpacing: 0.0, + useGoogleFonts: GoogleFonts.asMap().containsKey( + FlutterFlowTheme.of(context) + .labelMediumFamily), + ), + enabledBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: FlutterFlowTheme.of(context).alternate, + width: 2.0, + ), + borderRadius: BorderRadius.circular(8.0), + ), + focusedBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: FlutterFlowTheme.of(context).primary, + width: 2.0, + ), + borderRadius: BorderRadius.circular(8.0), + ), + errorBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: FlutterFlowTheme.of(context).error, + width: 2.0, + ), + borderRadius: BorderRadius.circular(8.0), + ), + focusedErrorBorder: UnderlineInputBorder( + borderSide: BorderSide( + color: FlutterFlowTheme.of(context).error, + width: 2.0, + ), + borderRadius: BorderRadius.circular(8.0), + ), + filled: true, + fillColor: FlutterFlowTheme.of(context).alternate, + prefixIcon: Icon( + Icons.search_sharp, + color: FlutterFlowTheme.of(context).primaryText, + ), ), - labelStyle: FlutterFlowTheme.of(context) - .labelMedium - .override( + style: FlutterFlowTheme.of(context).bodyMedium.override( fontFamily: - FlutterFlowTheme.of(context).labelMediumFamily, + FlutterFlowTheme.of(context).bodyMediumFamily, letterSpacing: 0.0, useGoogleFonts: GoogleFonts.asMap().containsKey( - FlutterFlowTheme.of(context).labelMediumFamily), + FlutterFlowTheme.of(context).bodyMediumFamily), ), - hintStyle: FlutterFlowTheme.of(context) - .labelMedium - .override( - fontFamily: - FlutterFlowTheme.of(context).labelMediumFamily, - letterSpacing: 0.0, - useGoogleFonts: GoogleFonts.asMap().containsKey( - FlutterFlowTheme.of(context).labelMediumFamily), - ), - enabledBorder: UnderlineInputBorder( - borderSide: BorderSide( - color: FlutterFlowTheme.of(context).alternate, - width: 2.0, - ), - borderRadius: BorderRadius.circular(8.0), - ), - focusedBorder: UnderlineInputBorder( - borderSide: BorderSide( - color: FlutterFlowTheme.of(context).primary, - width: 2.0, - ), - borderRadius: BorderRadius.circular(8.0), - ), - errorBorder: UnderlineInputBorder( - borderSide: BorderSide( - color: FlutterFlowTheme.of(context).error, - width: 2.0, - ), - borderRadius: BorderRadius.circular(8.0), - ), - focusedErrorBorder: UnderlineInputBorder( - borderSide: BorderSide( - color: FlutterFlowTheme.of(context).error, - width: 2.0, - ), - borderRadius: BorderRadius.circular(8.0), - ), - prefixIcon: const Icon( - Icons.search_sharp, - ), + validator: + _model.textControllerValidator.asValidator(context), ), - style: FlutterFlowTheme.of(context).bodyMedium.override( - fontFamily: - FlutterFlowTheme.of(context).bodyMediumFamily, - letterSpacing: 0.0, - useGoogleFonts: GoogleFonts.asMap().containsKey( - FlutterFlowTheme.of(context).bodyMediumFamily), - ), - validator: - _model.textControllerValidator.asValidator(context), ), ), ),