add accessNotification route

This commit is contained in:
FlutterFlow 2024-06-25 12:20:32 +00:00
parent 5383f22dda
commit 90a6196a30
7 changed files with 376 additions and 68 deletions

View File

@ -44,8 +44,8 @@
97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
6436409D27A31CD200820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409627A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409327A31CD200820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
6436409C27A31CD500820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* 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 = "<group>";

View File

@ -76,4 +76,17 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
},
);
}
Future acessHistoryOptAction(BuildContext context) async {
context.pushNamed(
'acessHistoryPage',
extra: <String, dynamic>{
kTransitionInfoKey: const TransitionInfo(
hasTransition: true,
transitionType: PageTransitionType.scale,
alignment: Alignment.bottomCenter,
),
},
);
}
}

View File

@ -62,6 +62,10 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
await _model.peopleOnThePropertyAction(context);
setState(() {});
},
acessHistoryOptAction: () async {
await _model.acessHistoryOptAction(context);
setState(() {});
},
),
);
} else {
@ -86,6 +90,7 @@ class _MenuComponentWidgetState extends State<MenuComponentWidget> {
await _model.peopleOnThePropertyAction(context);
setState(() {});
},
accessHistoryOptAction: () async {},
),
);
}

View File

@ -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<MenuListViewComponentWidget> 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)),
),
),

View File

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

View File

@ -461,6 +461,10 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
'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 = <Map<String, Map<String, String>>>[
'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 = <Map<String, Map<String, String>>>[
'pt': 'Pessoas na\nPropriedade',
'en': 'People on\nthe Property',
},
'6jzghbyi': {
'pt': 'Histórico\nde Acesso',
'en': 'Access\nHistory',
},
},
// messageWellComponent
{

View File

@ -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<LiberationHistoryWidget> {
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,32 +100,39 @@ class _LiberationHistoryWidgetState extends State<LiberationHistoryWidget> {
alignment: const AlignmentDirectional(0.0, -1.0),
child: Padding(
padding: const EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0),
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,
fontFamily: FlutterFlowTheme.of(context)
.labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
FlutterFlowTheme.of(context)
.labelMediumFamily),
),
hintStyle: FlutterFlowTheme.of(context)
.labelMedium
.override(
fontFamily:
FlutterFlowTheme.of(context).labelMediumFamily,
fontFamily: FlutterFlowTheme.of(context)
.labelMediumFamily,
color: FlutterFlowTheme.of(context).primaryText,
letterSpacing: 0.0,
useGoogleFonts: GoogleFonts.asMap().containsKey(
FlutterFlowTheme.of(context).labelMediumFamily),
FlutterFlowTheme.of(context)
.labelMediumFamily),
),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(
@ -121,8 +162,11 @@ class _LiberationHistoryWidgetState extends State<LiberationHistoryWidget> {
),
borderRadius: BorderRadius.circular(8.0),
),
prefixIcon: const Icon(
filled: true,
fillColor: FlutterFlowTheme.of(context).alternate,
prefixIcon: Icon(
Icons.search_sharp,
color: FlutterFlowTheme.of(context).primaryText,
),
),
style: FlutterFlowTheme.of(context).bodyMedium.override(
@ -137,6 +181,7 @@ class _LiberationHistoryWidgetState extends State<LiberationHistoryWidget> {
),
),
),
),
Expanded(
child: Container(
width: double.infinity,