From 337a5dcb8212dff1381658c059a35c33bdb7f337 Mon Sep 17 00:00:00 2001 From: jantunesmesias Date: Mon, 26 Aug 2024 14:06:27 -0300 Subject: [PATCH] WIP --- .../menu_button_item_widget.dart | 2 +- .../menu_component/menu_component_model.dart | 51 ++++++++++------ .../menu_component/menu_component_widget.dart | 4 +- .../menu_list_view_component_widget.dart | 61 ++++++++----------- lib/pages/home_page/home_page_widget.dart | 2 +- lib/shared/extensions/dialog_extensions.dart | 16 +++++ .../widgets/drawer_widget/drawer_widget.dart | 20 +++--- 7 files changed, 86 insertions(+), 70 deletions(-) create mode 100644 lib/shared/extensions/dialog_extensions.dart rename lib/{ => shared}/widgets/drawer_widget/drawer_widget.dart (94%) diff --git a/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart b/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart index 6085e5f6..315555bb 100644 --- a/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart +++ b/lib/components/atomic_components/menu_button_item/menu_button_item_widget.dart @@ -57,7 +57,7 @@ class _MenuButtonWidgetState extends State { ), ), child: Padding( - padding: const EdgeInsets.all(4.0), + padding: const EdgeInsets.all(0.0), child: Column( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.spaceEvenly, 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 4ef1e277..378e00ed 100644 --- a/lib/components/organism_components/menu_component/menu_component_model.dart +++ b/lib/components/organism_components/menu_component/menu_component_model.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:hub/components/organism_components/menu_staggered_view_component/menu_staggered_view_component_model.dart'; import 'package:hub/flutter_flow/nav/nav.dart'; +import 'package:hub/shared/extensions/dialog_extensions.dart'; 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'; @@ -53,29 +54,39 @@ class MenuComponentModel extends FlutterFlowModel { } Future scheduleProvisionalVisitAction(BuildContext context) async { - context.pushNamed( - 'scheduleProvisionalVisitPage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); + final isProvisional = AppState().provisional; + if (isProvisional) { + context.pushNamed( + 'scheduleProvisionalVisitPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } else { + DialogUnavailable.unavailableFeature(context); + } } Future fastPassAction(BuildContext context) async { - context.pushNamed( - 'fastPassPage', - extra: { - kTransitionInfoKey: const TransitionInfo( - hasTransition: true, - transitionType: PageTransitionType.scale, - alignment: Alignment.bottomCenter, - ), - }, - ); + final isWpp = AppState().whatsapp; + if (isWpp) { + context.pushNamed( + 'fastPassPage', + extra: { + kTransitionInfoKey: const TransitionInfo( + hasTransition: true, + transitionType: PageTransitionType.scale, + alignment: Alignment.bottomCenter, + ), + }, + ); + } else { + DialogUnavailable.unavailableFeature(context); + } } Future scheduleVisitOptAction(BuildContext context) async { 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 586ad45b..798999dd 100644 --- a/lib/components/organism_components/menu_component/menu_component_widget.dart +++ b/lib/components/organism_components/menu_component/menu_component_widget.dart @@ -138,7 +138,7 @@ class _MenuComponentWidgetState extends State { ), ), MenuButtonWidget( - icon: Icons.confirmation_num_outlined, + icon: Icons.share_location_outlined, action: () async { await _model.fastPassAction(context); setState(() {}); @@ -355,7 +355,7 @@ class _MenuComponentWidgetState extends State { ), ), MenuCardItem( - icon: Icons.confirmation_num_outlined, + icon: Icons.share_location_outlined, action: () async { await _model.fastPassAction(context); setState(() {}); 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 5c8d930d..7f90939e 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 @@ -56,20 +56,7 @@ class _MenuListViewComponentWidgetState @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: [ - buildMenuItem(context), - if (widget.expandable) buildExpandableButton(context), - ], - ); + return buildMenuItem(context); } Widget buildMenuItem(BuildContext context) { @@ -115,30 +102,34 @@ class _MenuListViewComponentWidgetState ), ); case MenuItem.tile: - return SizedBox( - width: double.infinity, - height: MediaQuery.of(context).size.height * 0.7, - child: ListView.separated( - padding: const EdgeInsets.symmetric(horizontal: 15), - shrinkWrap: true, - physics: const AlwaysScrollableScrollPhysics(), - scrollDirection: Axis.vertical, - itemCount: widget.options.length, - itemBuilder: (context, index) { - return SizedBox( - // height: MediaQuery.of(context).size.height * 0.08, - // width: MediaQuery.of(context).size.width * 0.08, - child: widget.options[index], - ); - }, - separatorBuilder: (context, index) { - return const Divider(thickness: 0.2); - }, - ), - ); + return buildMenuList(context); } } + Widget buildMenuList(BuildContext context) { + return SizedBox( + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height * 0.8, + child: ListView.separated( + padding: const EdgeInsets.symmetric(horizontal: 15), + shrinkWrap: true, + physics: const AlwaysScrollableScrollPhysics(), + scrollDirection: Axis.vertical, + itemCount: widget.options.length, + itemBuilder: (context, index) { + return SizedBox( + // height: MediaQuery.of(context).size.height * 0.08, + // width: MediaQuery.of(context).size.width * 0.08, + child: widget.options[index], + ); + }, + separatorBuilder: (context, index) { + return const Divider(thickness: 0.2); + }, + ), + ); + } + Row buildExpandableButton(BuildContext context) { return Row( mainAxisSize: MainAxisSize.max, diff --git a/lib/pages/home_page/home_page_widget.dart b/lib/pages/home_page/home_page_widget.dart index a81b4d06..19dc8f0d 100644 --- a/lib/pages/home_page/home_page_widget.dart +++ b/lib/pages/home_page/home_page_widget.dart @@ -13,7 +13,7 @@ import 'package:hub/flutter_flow/flutter_flow_theme.dart'; import 'package:hub/flutter_flow/flutter_flow_util.dart'; import 'package:hub/pages/home_page/home_page_model.dart'; import 'package:hub/shared/utils/dialog_util.dart'; -import 'package:hub/widgets/drawer_widget/drawer_widget.dart'; +import 'package:hub/shared/widgets/drawer_widget/drawer_widget.dart'; import 'package:provider/provider.dart'; class HomePageWidget extends StatefulWidget { diff --git a/lib/shared/extensions/dialog_extensions.dart b/lib/shared/extensions/dialog_extensions.dart new file mode 100644 index 00000000..a2a571f0 --- /dev/null +++ b/lib/shared/extensions/dialog_extensions.dart @@ -0,0 +1,16 @@ +import 'package:flutter/material.dart'; +import 'package:hub/flutter_flow/internationalization.dart'; +import 'package:hub/shared/utils/dialog_util.dart'; + +export 'dialog_extensions.dart' show DialogUnavailable; + +extension DialogUnavailable on DialogUtil { + static Future unavailableFeature(BuildContext context) { + final message = FFLocalizations.of(context).getVariableText( + ptText: + "Essa funcionalidade não está disponível para este local. Por favor, selecione outro local ou entre em contato com os responsáveis para alterar o plano de contrato para sua localidade.", + enText: + "This functionality is not available for this location. Please select another location or contact the responsible parties to change the contract plan for your location."); + return DialogUtil.warning(context, message); + } +} diff --git a/lib/widgets/drawer_widget/drawer_widget.dart b/lib/shared/widgets/drawer_widget/drawer_widget.dart similarity index 94% rename from lib/widgets/drawer_widget/drawer_widget.dart rename to lib/shared/widgets/drawer_widget/drawer_widget.dart index 7d8cd7bf..e0cd6f59 100644 --- a/lib/widgets/drawer_widget/drawer_widget.dart +++ b/lib/shared/widgets/drawer_widget/drawer_widget.dart @@ -162,17 +162,15 @@ class CustomDrawer extends StatelessWidget { ); } - Expanded _buildDrawerBody() { - return Expanded( - child: SingleChildScrollView( - child: wrapWithModel( - model: model.menuComponentModel, - updateCallback: () {}, - child: const MenuComponentWidget( - expandable: false, - style: MenuView.list, - item: MenuItem.tile, - ), + Widget _buildDrawerBody() { + return SingleChildScrollView( + child: wrapWithModel( + model: model.menuComponentModel, + updateCallback: () {}, + child: const MenuComponentWidget( + expandable: false, + style: MenuView.list, + item: MenuItem.tile, ), ), );