This commit is contained in:
jantunesmesias 2024-08-23 08:56:52 -03:00
parent fdcc3d9c33
commit 98dc243aa2
3 changed files with 229 additions and 108 deletions

View File

@ -39,6 +39,45 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
isGrid = !isGrid;
}
Future scheduleCompleteVisitAction(BuildContext context) async {
context.pushNamed(
'scheduleCompleteVisitPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
Future scheduleProvisionalVisitAction(BuildContext context) async {
context.pushNamed(
'scheduleProvisionalVisitPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
Future fastPassAction(BuildContext context) async {
context.pushNamed(
'fastPassPage',
extra: <String, dynamic>{
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<MenuComponentWidget> {
).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<MenuComponentWidget> {
);
}
Future liberationHistoryAction(BuildContext context) async {
context.pushNamed(
'liberationHistory',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
Future accessHistoryAction(BuildContext context) async {
context.pushNamed(
'acessHistoryPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
Future visitHistoryAction(BuildContext context) async {
context.pushNamed(
'scheduleCompleteVisitPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
Future accessQRCodeOptAction(BuildContext context) async {
context.pushNamed(
'qrCodePage',

View File

@ -57,14 +57,36 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
if (widget.item == MenuItem.button) {
return <MenuEntry>[
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<MenuComponentWidget> {
),
),
MenuButtonWidget(
icon: Icons.people,
icon: Icons.group_add,
action: () async {
await _model.peopleOnThePropertyAction(context);
setState(() {});
@ -103,12 +125,45 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
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<MenuComponentWidget> {
}
if (widget.item == MenuItem.card) {
return <MenuEntry>[
MenuCardItem(
MenuButtonWidget(
icon: FFIcons.kvector1,
action: () async {
await _model.scheduleVisitOptAction(context);
@ -137,7 +192,7 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
ptText: 'Agendar\nVisita',
),
),
MenuCardItem(
MenuButtonWidget(
icon: FFIcons.khome,
action: () async {
await _model.registerVisitorOptAction(context);
@ -148,7 +203,7 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
ptText: 'Cadastro\nde Visitante',
),
),
MenuCardItem(
MenuButtonWidget(
icon: Icons.qr_code,
action: () async {
await _model.accessQRCodeOptAction(context);
@ -159,7 +214,7 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
ptText: 'QRCode\nde Acesso',
),
),
MenuCardItem(
MenuButtonWidget(
icon: Icons.people,
action: () async {
await _model.peopleOnThePropertyAction(context);
@ -170,10 +225,10 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
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<MenuComponentWidget> {
ptText: 'Consultar\nHistoricos',
),
),
MenuCardItem(
MenuButtonWidget(
icon: Icons.settings,
action: () async {
await _model.preferencesSettings(context);
@ -243,7 +298,7 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
MenuCardItem(
icon: Icons.history_sharp,
action: () async {
await _model.liberationHistoryOptAction(context);
await _model.consultHistoriesAction(context);
setState(() {});
},
title: FFLocalizations.of(context).getVariableText(

View File

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