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 9b95a8e8..0e80e7f3 100644 --- a/lib/components/organism_components/menu_component/menu_component_model.dart +++ b/lib/components/organism_components/menu_component/menu_component_model.dart @@ -39,6 +39,45 @@ class MenuComponentModel extends FlutterFlowModel { isGrid = !isGrid; } + Future scheduleCompleteVisitAction(BuildContext context) async { + context.pushNamed( + 'scheduleCompleteVisitPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + + Future scheduleProvisionalVisitAction(BuildContext context) async { + context.pushNamed( + 'scheduleProvisionalVisitPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + + Future fastPassAction(BuildContext context) async { + context.pushNamed( + 'fastPassPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + Future scheduleVisitOptAction(BuildContext context) async { final isWpp = AppState().whatsapp; final isProvisional = AppState().provisional; @@ -147,7 +186,7 @@ class MenuComponentModel extends FlutterFlowModel { ).then((value) => true); } - Future liberationHistoryOptAction(BuildContext context) async { + Future consultHistoriesAction(BuildContext context) async { await showAdaptiveDialog( // isScrollControlled: true, // backgroundColor: Colors.transparent, @@ -193,6 +232,45 @@ class MenuComponentModel extends FlutterFlowModel { ); } + Future liberationHistoryAction(BuildContext context) async { + context.pushNamed( + 'liberationHistory', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + + Future accessHistoryAction(BuildContext context) async { + context.pushNamed( + 'acessHistoryPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + + Future visitHistoryAction(BuildContext context) async { + context.pushNamed( + 'scheduleCompleteVisitPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } + Future accessQRCodeOptAction(BuildContext context) async { context.pushNamed( 'qrCodePage', 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 f86b84f0..906715ee 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -57,14 +57,36 @@ class _MenuComponentWidgetState extends State { if (widget.item == MenuItem.button) { return [ MenuButtonWidget( - icon: FFIcons.kvector1, + icon: Icons.event, action: () async { - await _model.scheduleVisitOptAction(context); + await _model.scheduleCompleteVisitAction(context); setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Schedule\nVisit', - ptText: 'Agendar\nVisita', + enText: 'Complete\nSchedule', + ptText: 'Agenda\nCompleta', + ), + ), + MenuButtonWidget( + icon: Icons.perm_contact_calendar_outlined, + action: () async { + await _model.scheduleProvisionalVisitAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Provisional\nSchedule', + ptText: 'Agenda\nProvisória', + ), + ), + MenuButtonWidget( + icon: Icons.event_repeat, + action: () async { + await _model.fastPassAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Fast\nSchedule', + ptText: 'Agenda\nRápida', ), ), MenuButtonWidget( @@ -90,7 +112,7 @@ class _MenuComponentWidgetState extends State { ), ), MenuButtonWidget( - icon: Icons.people, + icon: Icons.group_add, action: () async { await _model.peopleOnThePropertyAction(context); setState(() {}); @@ -103,12 +125,45 @@ class _MenuComponentWidgetState extends State { MenuButtonWidget( icon: Icons.history_sharp, action: () async { - await _model.liberationHistoryOptAction(context); + await _model.liberationHistoryAction(context); setState(() {}); }, title: FFLocalizations.of(context).getVariableText( - enText: 'Consult\nHistories', - ptText: 'Consultar\nHistóricos', + enText: 'Liberations\nHistory', + ptText: 'Consultar\nLiberações', + ), + ), + MenuButtonWidget( + icon: Icons.key, + action: () async { + await _model.accessHistoryAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Access\nHistory', + ptText: 'Consultar\nAcessos', + ), + ), + MenuButtonWidget( + icon: Icons.group, + action: () async { + await _model.visitHistoryAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Visit\nHistory', + ptText: 'Consultar\nVisitas', + ), + ), + MenuButtonWidget( + icon: Icons.sms_outlined, + action: () async { + await _model.consultHistoriesAction(context); + setState(() {}); + }, + title: FFLocalizations.of(context).getVariableText( + enText: 'Messages\nHistory', + ptText: 'Consultar\nMensagens', ), ), MenuButtonWidget( @@ -126,7 +181,7 @@ class _MenuComponentWidgetState extends State { } if (widget.item == MenuItem.card) { return [ - MenuCardItem( + MenuButtonWidget( icon: FFIcons.kvector1, action: () async { await _model.scheduleVisitOptAction(context); @@ -137,7 +192,7 @@ class _MenuComponentWidgetState extends State { ptText: 'Agendar\nVisita', ), ), - MenuCardItem( + MenuButtonWidget( icon: FFIcons.khome, action: () async { await _model.registerVisitorOptAction(context); @@ -148,7 +203,7 @@ class _MenuComponentWidgetState extends State { ptText: 'Cadastro\nde Visitante', ), ), - MenuCardItem( + MenuButtonWidget( icon: Icons.qr_code, action: () async { await _model.accessQRCodeOptAction(context); @@ -159,7 +214,7 @@ class _MenuComponentWidgetState extends State { ptText: 'QRCode\nde Acesso', ), ), - MenuCardItem( + MenuButtonWidget( icon: Icons.people, action: () async { await _model.peopleOnThePropertyAction(context); @@ -170,10 +225,10 @@ class _MenuComponentWidgetState extends State { ptText: 'Pessoas\nna Propriedade', ), ), - MenuCardItem( + MenuButtonWidget( icon: Icons.history_sharp, action: () async { - await _model.liberationHistoryOptAction(context); + await _model.consultHistoriesAction(context); setState(() {}); }, title: FFLocalizations.of(context).getVariableText( @@ -181,7 +236,7 @@ class _MenuComponentWidgetState extends State { ptText: 'Consultar\nHistoricos', ), ), - MenuCardItem( + MenuButtonWidget( icon: Icons.settings, action: () async { await _model.preferencesSettings(context); @@ -243,7 +298,7 @@ class _MenuComponentWidgetState extends State { MenuCardItem( icon: Icons.history_sharp, action: () async { - await _model.liberationHistoryOptAction(context); + await _model.consultHistoriesAction(context); setState(() {}); }, title: FFLocalizations.of(context).getVariableText( 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 e367e0b5..0afffeec 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 @@ -1,17 +1,10 @@ import 'package:flutter/material.dart'; -import 'package:flutter/widgets.dart'; -import 'package:flutter_expandable_fab/flutter_expandable_fab.dart'; -import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart'; -import 'package:google_fonts/google_fonts.dart'; import 'package:hub/backend/schema/enums/enums.dart'; import 'package:hub/components/molecular_components/menu_item/menu_item.dart'; import 'package:hub/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart'; -import 'package:hub/flutter_flow/custom_icons.dart'; import 'package:hub/flutter_flow/flutter_flow_icon_button.dart'; -import 'package:hub/flutter_flow/flutter_flow_model.dart'; import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; -import 'package:hub/flutter_flow/internationalization.dart'; class MenuStaggeredViewComponentWidget extends StatefulWidget { const MenuStaggeredViewComponentWidget({ @@ -58,97 +51,92 @@ class _MenuStaggeredViewComponentWidgetState @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, + return Column( 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, + GridView.builder( + physics: const NeverScrollableScrollPhysics(), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + crossAxisSpacing: 10.0, + mainAxisSpacing: 10.0, + ), + itemCount: widget.options.length, + padding: const EdgeInsets.all(14), + shrinkWrap: true, + itemBuilder: (context, index) { + return Container( + height: 100, + width: 100, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Colors.transparent, + boxShadow: const [ + BoxShadow( + color: Colors.transparent, + blurRadius: 4, + offset: Offset(0, 2), + ), + ], ), - crossAxisSpacing: 10.0, - mainAxisSpacing: 10.0, - itemCount: widget.options.length, - padding: const EdgeInsets.fromLTRB( - 0, - 10.0, - 0, - 10.0, - ), - shrinkWrap: true, - itemBuilder: (context, index) { - return SizedBox( - height: 100, width: 100, child: widget.options[index]); - }, - ), + child: Center(child: widget.options[index]), + ); + }, + ), + ].addToEnd(collapseExpandMethod(context)), + ); + } + + Align collapseExpandMethod(BuildContext context) { + return 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), ), ), - 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: Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.max, + children: [ + Text( + FFLocalizations.of(context).getVariableText( + enText: 'Minimize', + ptText: 'Minimizar', + ), + style: FlutterFlowTheme.of(context).title1.override( + fontFamily: 'Nunito', + color: FlutterFlowTheme.of(context).primaryText, + fontSize: 12.0, + fontWeight: FontWeight.w600, + fontStyle: FontStyle.normal, + ), + ), + 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.changeMenuStyle?.call(); + }, ), ), - alignment: const AlignmentDirectional(0.0, 0.0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - mainAxisSize: MainAxisSize.max, - children: [ - Text( - FFLocalizations.of(context).getVariableText( - enText: 'Minimize', - ptText: 'Minimizar', - ), - style: FlutterFlowTheme.of(context).title1.override( - fontFamily: 'Nunito', - color: FlutterFlowTheme.of(context).primaryText, - fontSize: 12.0, - fontWeight: FontWeight.w600, - fontStyle: FontStyle.normal, - ), - ), - 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.changeMenuStyle?.call(); - }, - ), - ), - ], - ), - ), + ], ), - ], + ), ); } }