add opt modal and fix misc
This commit is contained in:
parent
6d79130aad
commit
5e96c8d5a8
|
@ -75,5 +75,5 @@ flutter {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.10"
|
||||
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.10"
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ pluginManagement {
|
|||
plugins {
|
||||
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||
id "com.android.application" version "7.3.0" apply false
|
||||
id "org.jetbrains.kotlin.android" version "1.7.10" apply false
|
||||
id "org.jetbrains.kotlin.android" version "1.8.10" apply false
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -21,6 +21,6 @@
|
|||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>13.0</string>
|
||||
<string>14.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Uncomment this line to define a global platform for your project
|
||||
platform :ios, '13.0'
|
||||
platform :ios, '14.0'
|
||||
|
||||
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
||||
|
|
|
@ -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>"; };
|
||||
6436409827A31CD000820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
6436409527A31CDA00820AF7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
6436409E27A31CDB00820AF7 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
6436409C27A31CDE00820AF7 /* 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 = (
|
||||
6436409827A31CD000820AF7 /* pt */,
|
||||
6436409527A31CDA00820AF7 /* en */,
|
||||
6436409E27A31CDB00820AF7 /* pt */,
|
||||
6436409C27A31CDE00820AF7 /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
|
@ -291,7 +291,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
|
@ -373,7 +373,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
|
@ -422,7 +422,7 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
|
|
|
@ -143,7 +143,7 @@ Future singInLoginAction(
|
|||
await showModalBottomSheet(
|
||||
isScrollControlled: true,
|
||||
backgroundColor: Colors.transparent,
|
||||
enableDrag: false,
|
||||
useSafeArea: true,
|
||||
context: context,
|
||||
builder: (context) {
|
||||
return Padding(
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/form_field_controller.dart';
|
||||
import 'opt_modal_widget.dart' show OptModalWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
|
@ -9,10 +10,19 @@ class OptModalModel extends FlutterFlowModel<OptModalWidget> {
|
|||
FocusNode? textFieldFocusNode;
|
||||
TextEditingController? textController;
|
||||
String? Function(BuildContext, String?)? textControllerValidator;
|
||||
// State field(s) for CheckboxListTile widget.
|
||||
bool? checkboxListTileValue1;
|
||||
// State field(s) for CheckboxListTile widget.
|
||||
bool? checkboxListTileValue2;
|
||||
// State field(s) for CheckboxGroup widget.
|
||||
FormFieldController<List<String>>? checkboxGroupValueController1;
|
||||
List<String>? get checkboxGroupValues1 =>
|
||||
checkboxGroupValueController1?.value;
|
||||
set checkboxGroupValues1(List<String>? v) =>
|
||||
checkboxGroupValueController1?.value = v;
|
||||
|
||||
// State field(s) for CheckboxGroup widget.
|
||||
FormFieldController<List<String>>? checkboxGroupValueController2;
|
||||
List<String>? get checkboxGroupValues2 =>
|
||||
checkboxGroupValueController2?.value;
|
||||
set checkboxGroupValues2(List<String>? v) =>
|
||||
checkboxGroupValueController2?.value = v;
|
||||
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
import '/flutter_flow/flutter_flow_checkbox_group.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||
import '/flutter_flow/form_field_controller.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'opt_modal_model.dart';
|
||||
|
@ -47,252 +49,261 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
|||
height: 400.0,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
||||
borderRadius: BorderRadius.circular(24.0),
|
||||
),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
|
||||
child: Icon(
|
||||
Icons.filter_list,
|
||||
color: FlutterFlowTheme.of(context).primary,
|
||||
size: 24.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
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(
|
||||
isDense: true,
|
||||
labelText: FFLocalizations.of(context).getText(
|
||||
'0enrtljz' /* Label here... */,
|
||||
),
|
||||
labelStyle: FlutterFlowTheme.of(context).labelMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||
),
|
||||
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(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(4.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
|
||||
child: Icon(
|
||||
Icons.filter_list,
|
||||
color: FlutterFlowTheme.of(context).primary,
|
||||
width: 2.0,
|
||||
size: 24.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),
|
||||
),
|
||||
suffixIcon: const Icon(
|
||||
Icons.search_outlined,
|
||||
),
|
||||
),
|
||||
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),
|
||||
],
|
||||
),
|
||||
),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Text(
|
||||
FFLocalizations.of(context).getText(
|
||||
'l7tw8b92' /* Tipo de Pessoa */,
|
||||
),
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||
),
|
||||
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(
|
||||
isDense: true,
|
||||
labelText: FFLocalizations.of(context).getText(
|
||||
'0enrtljz' /* Pesquise aqui..... */,
|
||||
),
|
||||
].addToStart(const SizedBox(width: 24.0)),
|
||||
),
|
||||
Theme(
|
||||
data: ThemeData(
|
||||
checkboxTheme: CheckboxThemeData(
|
||||
visualDensity: VisualDensity.compact,
|
||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(25),
|
||||
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,
|
||||
suffixIcon: const Icon(
|
||||
Icons.search_outlined,
|
||||
),
|
||||
unselectedWidgetColor:
|
||||
FlutterFlowTheme.of(context).secondaryText,
|
||||
),
|
||||
child: CheckboxListTile(
|
||||
value: _model.checkboxListTileValue1 ??= true,
|
||||
onChanged: (newValue) async {
|
||||
setState(() => _model.checkboxListTileValue1 = newValue!);
|
||||
},
|
||||
title: Text(
|
||||
FFLocalizations.of(context).getText(
|
||||
'dkvmdln1' /* Title */,
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||
),
|
||||
style: FlutterFlowTheme.of(context).titleLarge.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).titleLargeFamily,
|
||||
fontSize: 10.0,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).titleLargeFamily),
|
||||
),
|
||||
validator:
|
||||
_model.textControllerValidator.asValidator(context),
|
||||
),
|
||||
),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Text(
|
||||
FFLocalizations.of(context).getText(
|
||||
'l7tw8b92' /* Tipo de Pessoa */,
|
||||
),
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context)
|
||||
.bodyMediumFamily),
|
||||
),
|
||||
),
|
||||
].addToStart(const SizedBox(width: 24.0)),
|
||||
),
|
||||
FlutterFlowCheckboxGroup(
|
||||
options: [
|
||||
FFLocalizations.of(context).getText(
|
||||
'zok7lu4w' /* Visitante */,
|
||||
),
|
||||
FFLocalizations.of(context).getText(
|
||||
'oonqk812' /* Morador */,
|
||||
)
|
||||
],
|
||||
onChanged: (val) =>
|
||||
setState(() => _model.checkboxGroupValues1 = val),
|
||||
controller: _model.checkboxGroupValueController1 ??=
|
||||
FormFieldController<List<String>>(
|
||||
List.from([
|
||||
FFLocalizations.of(context).getText(
|
||||
'yfj9pd6k' /* Visitante */,
|
||||
),
|
||||
FFLocalizations.of(context).getText(
|
||||
'svfcf5xs' /* Morador */,
|
||||
)
|
||||
] ??
|
||||
[]),
|
||||
),
|
||||
tileColor: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
activeColor: FlutterFlowTheme.of(context).primary,
|
||||
checkColor: FlutterFlowTheme.of(context).info,
|
||||
dense: true,
|
||||
controlAffinity: ListTileControlAffinity.leading,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(0.0),
|
||||
),
|
||||
),
|
||||
),
|
||||
]
|
||||
.addToStart(const SizedBox(height: 10.0))
|
||||
.addToEnd(const SizedBox(height: 10.0)),
|
||||
),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Text(
|
||||
FFLocalizations.of(context).getText(
|
||||
'pepv7gl9' /* Tipo de Acesso */,
|
||||
),
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||
),
|
||||
),
|
||||
].addToStart(const SizedBox(width: 24.0)),
|
||||
),
|
||||
Theme(
|
||||
data: ThemeData(
|
||||
checkboxTheme: CheckboxThemeData(
|
||||
visualDensity: VisualDensity.compact,
|
||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(25),
|
||||
),
|
||||
),
|
||||
unselectedWidgetColor:
|
||||
checkboxBorderColor:
|
||||
FlutterFlowTheme.of(context).secondaryText,
|
||||
textStyle: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||
),
|
||||
checkboxBorderRadius: BorderRadius.circular(6.0),
|
||||
initialized: _model.checkboxGroupValues1 != null,
|
||||
),
|
||||
child: CheckboxListTile(
|
||||
value: _model.checkboxListTileValue2 ??= true,
|
||||
onChanged: (newValue) async {
|
||||
setState(() => _model.checkboxListTileValue2 = newValue!);
|
||||
},
|
||||
title: Text(
|
||||
FFLocalizations.of(context).getText(
|
||||
'qos4r9fy' /* Title */,
|
||||
]
|
||||
.addToStart(const SizedBox(height: 10.0))
|
||||
.addToEnd(const SizedBox(height: 10.0)),
|
||||
),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Text(
|
||||
FFLocalizations.of(context).getText(
|
||||
'pepv7gl9' /* Tipo de Acesso */,
|
||||
),
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context)
|
||||
.bodyMediumFamily),
|
||||
),
|
||||
),
|
||||
style: FlutterFlowTheme.of(context).titleLarge.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).titleLargeFamily,
|
||||
fontSize: 10.0,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).titleLargeFamily),
|
||||
),
|
||||
].addToStart(const SizedBox(width: 24.0)),
|
||||
),
|
||||
FlutterFlowCheckboxGroup(
|
||||
options: [
|
||||
FFLocalizations.of(context).getText(
|
||||
'580z80ct' /* Entrada */,
|
||||
),
|
||||
FFLocalizations.of(context).getText(
|
||||
'1nbwqtzs' /* Saida */,
|
||||
)
|
||||
],
|
||||
onChanged: (val) =>
|
||||
setState(() => _model.checkboxGroupValues2 = val),
|
||||
controller: _model.checkboxGroupValueController2 ??=
|
||||
FormFieldController<List<String>>(
|
||||
List.from([
|
||||
FFLocalizations.of(context).getText(
|
||||
'5zn9x69v' /* Entrada */,
|
||||
),
|
||||
FFLocalizations.of(context).getText(
|
||||
'8uf522zq' /* Saida */,
|
||||
)
|
||||
] ??
|
||||
[]),
|
||||
),
|
||||
tileColor: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
activeColor: FlutterFlowTheme.of(context).primary,
|
||||
checkColor: FlutterFlowTheme.of(context).info,
|
||||
dense: true,
|
||||
controlAffinity: ListTileControlAffinity.leading,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(0.0),
|
||||
),
|
||||
checkboxBorderColor:
|
||||
FlutterFlowTheme.of(context).secondaryText,
|
||||
textStyle: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||
),
|
||||
checkboxBorderRadius: BorderRadius.circular(6.0),
|
||||
initialized: _model.checkboxGroupValues2 != null,
|
||||
),
|
||||
),
|
||||
]
|
||||
.addToStart(const SizedBox(height: 10.0))
|
||||
.addToEnd(const SizedBox(height: 10.0)),
|
||||
),
|
||||
FFButtonWidget(
|
||||
onPressed: () {
|
||||
print('Button pressed ...');
|
||||
},
|
||||
text: '',
|
||||
icon: const Icon(
|
||||
Icons.done,
|
||||
size: 15.0,
|
||||
]
|
||||
.addToStart(const SizedBox(height: 10.0))
|
||||
.addToEnd(const SizedBox(height: 10.0)),
|
||||
),
|
||||
options: FFButtonOptions(
|
||||
height: 40.0,
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
|
||||
iconPadding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
||||
color: FlutterFlowTheme.of(context).primary,
|
||||
textStyle: FlutterFlowTheme.of(context).titleSmall.override(
|
||||
fontFamily: FlutterFlowTheme.of(context).titleSmallFamily,
|
||||
color: Colors.white,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).titleSmallFamily),
|
||||
),
|
||||
elevation: 3.0,
|
||||
borderSide: const BorderSide(
|
||||
color: Colors.transparent,
|
||||
width: 1.0,
|
||||
FFButtonWidget(
|
||||
onPressed: () {
|
||||
print('Button pressed ...');
|
||||
},
|
||||
text: FFLocalizations.of(context).getText(
|
||||
'88kshkph' /* Salvar */,
|
||||
),
|
||||
options: FFButtonOptions(
|
||||
height: 40.0,
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
|
||||
iconPadding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
||||
color: FlutterFlowTheme.of(context).primary,
|
||||
textStyle: FlutterFlowTheme.of(context).titleSmall.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).titleSmallFamily,
|
||||
color: Colors.white,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).titleSmallFamily),
|
||||
),
|
||||
borderSide: const BorderSide(
|
||||
color: Colors.transparent,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
),
|
||||
]
|
||||
.divide(const SizedBox(height: 10.0))
|
||||
.addToStart(const SizedBox(height: 10.0))
|
||||
.addToEnd(const SizedBox(height: 10.0)),
|
||||
]
|
||||
.divide(const SizedBox(height: 10.0))
|
||||
.addToStart(const SizedBox(height: 10.0))
|
||||
.addToEnd(const SizedBox(height: 10.0)),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
|
@ -67,80 +67,93 @@ class _ThrowExceptionWidgetState extends State<ThrowExceptionWidget>
|
|||
children: [
|
||||
Padding(
|
||||
padding: const EdgeInsetsDirectional.fromSTEB(10.0, 0.0, 10.0, 0.0),
|
||||
child: Container(
|
||||
height: 400.0,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
||||
borderRadius: const BorderRadius.only(
|
||||
bottomLeft: Radius.circular(10.0),
|
||||
bottomRight: Radius.circular(10.0),
|
||||
topLeft: Radius.circular(10.0),
|
||||
topRight: Radius.circular(10.0),
|
||||
child: InkWell(
|
||||
splashColor: Colors.transparent,
|
||||
focusColor: Colors.transparent,
|
||||
hoverColor: Colors.transparent,
|
||||
highlightColor: Colors.transparent,
|
||||
onTap: () async {
|
||||
Navigator.pop(context);
|
||||
},
|
||||
child: Container(
|
||||
height: 400.0,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
||||
borderRadius: const BorderRadius.only(
|
||||
bottomLeft: Radius.circular(10.0),
|
||||
bottomRight: Radius.circular(10.0),
|
||||
topLeft: Radius.circular(10.0),
|
||||
topRight: Radius.circular(10.0),
|
||||
),
|
||||
),
|
||||
),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Stack(
|
||||
children: [
|
||||
Align(
|
||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
||||
child: Icon(
|
||||
Icons.circle_outlined,
|
||||
color: FlutterFlowTheme.of(context).error,
|
||||
size: 200.0,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Stack(
|
||||
children: [
|
||||
Align(
|
||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
||||
child: Icon(
|
||||
Icons.circle_outlined,
|
||||
color: FlutterFlowTheme.of(context).error,
|
||||
size: 200.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Align(
|
||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
||||
child: Icon(
|
||||
Icons.close_outlined,
|
||||
color: FlutterFlowTheme.of(context).error,
|
||||
size: 200.0,
|
||||
Align(
|
||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
||||
child: Icon(
|
||||
Icons.close_outlined,
|
||||
color: FlutterFlowTheme.of(context).error,
|
||||
size: 200.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
).animateOnPageLoad(animationsMap['stackOnPageLoadAnimation']!),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
FFLocalizations.of(context).getText(
|
||||
'e58xxxiq' /* ERRO */,
|
||||
),
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
fontSize: 20.0,
|
||||
letterSpacing: 0.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
valueOrDefault<String>(
|
||||
widget.msg,
|
||||
'Message Not Found',
|
||||
],
|
||||
).animateOnPageLoad(
|
||||
animationsMap['stackOnPageLoadAnimation']!),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
FFLocalizations.of(context).getText(
|
||||
'e58xxxiq' /* ERRO */,
|
||||
),
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily:
|
||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||
fontSize: 20.0,
|
||||
letterSpacing: 0.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context)
|
||||
.bodyMediumFamily),
|
||||
),
|
||||
),
|
||||
),
|
||||
].addToStart(const SizedBox(height: 50.0)),
|
||||
),
|
||||
],
|
||||
Padding(
|
||||
padding:
|
||||
const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
valueOrDefault<String>(
|
||||
widget.msg,
|
||||
'Message Not Found',
|
||||
),
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.bodyMedium
|
||||
.override(
|
||||
fontFamily: FlutterFlowTheme.of(context)
|
||||
.bodyMediumFamily,
|
||||
letterSpacing: 0.0,
|
||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||
FlutterFlowTheme.of(context)
|
||||
.bodyMediumFamily),
|
||||
),
|
||||
),
|
||||
),
|
||||
].addToStart(const SizedBox(height: 50.0)),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -70,8 +70,7 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
|||
extra: <String, dynamic>{
|
||||
kTransitionInfoKey: const TransitionInfo(
|
||||
hasTransition: true,
|
||||
transitionType: PageTransitionType.scale,
|
||||
alignment: Alignment.bottomCenter,
|
||||
transitionType: PageTransitionType.fade,
|
||||
),
|
||||
},
|
||||
);
|
||||
|
|
|
@ -499,26 +499,19 @@ class _SignInTemplateComponentWidgetState
|
|||
.fromSTEB(
|
||||
0.0, 0.0, 0.0, 16.0),
|
||||
child: FFButtonWidget(
|
||||
onPressed: ((_model.emailAddressTextController
|
||||
.text ==
|
||||
'') &&
|
||||
(_model.passwordTextController
|
||||
.text ==
|
||||
''))
|
||||
? null
|
||||
: () async {
|
||||
await action_blocks
|
||||
.singInLoginAction(
|
||||
context,
|
||||
emailAdress: _model
|
||||
.emailAddressTextController
|
||||
.text,
|
||||
password: _model
|
||||
.passwordTextController
|
||||
.text,
|
||||
);
|
||||
setState(() {});
|
||||
},
|
||||
onPressed: () async {
|
||||
await action_blocks
|
||||
.singInLoginAction(
|
||||
context,
|
||||
emailAdress: _model
|
||||
.emailAddressTextController
|
||||
.text,
|
||||
password: _model
|
||||
.passwordTextController
|
||||
.text,
|
||||
);
|
||||
setState(() {});
|
||||
},
|
||||
text: FFLocalizations.of(
|
||||
context)
|
||||
.getText(
|
||||
|
@ -575,8 +568,6 @@ class _SignInTemplateComponentWidgetState
|
|||
borderRadius:
|
||||
BorderRadius.circular(
|
||||
12.0),
|
||||
disabledColor:
|
||||
const Color(0xE81AAB5F),
|
||||
),
|
||||
showLoadingIndicator: false,
|
||||
),
|
||||
|
|
|
@ -708,16 +708,16 @@ class _FlutterFlowButtonTabBarState extends State<FlutterFlowButtonTabBar>
|
|||
child: TextButton(
|
||||
onPressed: () => _handleTap(index),
|
||||
style: ButtonStyle(
|
||||
elevation: MaterialStateProperty.all(
|
||||
elevation: WidgetStateProperty.all(
|
||||
widget.useToggleButtonStyle ? 0 : widget.elevation),
|
||||
|
||||
/// give a pretty small minimum size
|
||||
minimumSize: MaterialStateProperty.all(const Size(10, 10)),
|
||||
padding: MaterialStateProperty.all(EdgeInsets.zero),
|
||||
textStyle: MaterialStateProperty.all(textStyle),
|
||||
foregroundColor: MaterialStateProperty.all(textColor),
|
||||
minimumSize: WidgetStateProperty.all(const Size(10, 10)),
|
||||
padding: WidgetStateProperty.all(EdgeInsets.zero),
|
||||
textStyle: WidgetStateProperty.all(textStyle),
|
||||
foregroundColor: WidgetStateProperty.all(textColor),
|
||||
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||
shape: MaterialStateProperty.all(
|
||||
shape: WidgetStateProperty.all(
|
||||
widget.useToggleButtonStyle
|
||||
? const RoundedRectangleBorder(
|
||||
side: BorderSide.none,
|
||||
|
|
|
@ -0,0 +1,134 @@
|
|||
import 'form_field_controller.dart';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
|
||||
class FlutterFlowCheckboxGroup extends StatefulWidget {
|
||||
const FlutterFlowCheckboxGroup({
|
||||
super.key,
|
||||
required this.options,
|
||||
required this.onChanged,
|
||||
required this.controller,
|
||||
required this.textStyle,
|
||||
this.labelPadding,
|
||||
this.itemPadding,
|
||||
required this.activeColor,
|
||||
required this.checkColor,
|
||||
this.checkboxBorderRadius,
|
||||
required this.checkboxBorderColor,
|
||||
this.initialized = true,
|
||||
this.unselectedTextStyle,
|
||||
});
|
||||
|
||||
final List<String> options;
|
||||
final void Function(List<String>)? onChanged;
|
||||
final FormFieldController<List<String>> controller;
|
||||
final TextStyle textStyle;
|
||||
final EdgeInsetsGeometry? labelPadding;
|
||||
final EdgeInsetsGeometry? itemPadding;
|
||||
final Color activeColor;
|
||||
final Color checkColor;
|
||||
final BorderRadius? checkboxBorderRadius;
|
||||
final Color checkboxBorderColor;
|
||||
final bool initialized;
|
||||
final TextStyle? unselectedTextStyle;
|
||||
|
||||
@override
|
||||
State<FlutterFlowCheckboxGroup> createState() =>
|
||||
_FlutterFlowCheckboxGroupState();
|
||||
}
|
||||
|
||||
class _FlutterFlowCheckboxGroupState extends State<FlutterFlowCheckboxGroup> {
|
||||
late List<String> checkboxValues;
|
||||
late void Function() _selectedValueListener;
|
||||
ValueListenable<List<String>?> get changeSelectedValues => widget.controller;
|
||||
List<String> get selectedValues => widget.controller.value ?? [];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
checkboxValues = List.from(widget.controller.initialValue ?? []);
|
||||
if (!widget.initialized && checkboxValues.isNotEmpty) {
|
||||
SchedulerBinding.instance.addPostFrameCallback(
|
||||
(_) {
|
||||
if (widget.onChanged != null) {
|
||||
widget.onChanged!(checkboxValues);
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
_selectedValueListener = () {
|
||||
if (!listEquals(checkboxValues, selectedValues)) {
|
||||
setState(() => checkboxValues = List.from(selectedValues));
|
||||
}
|
||||
if (widget.onChanged != null) {
|
||||
widget.onChanged!(selectedValues);
|
||||
}
|
||||
};
|
||||
changeSelectedValues.addListener(_selectedValueListener);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
changeSelectedValues.removeListener(_selectedValueListener);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) => ListView.builder(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
padding: EdgeInsets.zero,
|
||||
itemCount: widget.options.length,
|
||||
itemBuilder: (context, index) {
|
||||
final option = widget.options[index];
|
||||
final selected = selectedValues.contains(option);
|
||||
final unselectedTextStyle =
|
||||
widget.unselectedTextStyle ?? widget.textStyle;
|
||||
return Theme(
|
||||
data: ThemeData(unselectedWidgetColor: widget.checkboxBorderColor),
|
||||
child: Padding(
|
||||
padding: widget.itemPadding ?? EdgeInsets.zero,
|
||||
child: Row(
|
||||
children: [
|
||||
Checkbox(
|
||||
value: selected,
|
||||
onChanged: widget.onChanged != null
|
||||
? (isSelected) {
|
||||
if (isSelected == null) {
|
||||
return;
|
||||
}
|
||||
isSelected
|
||||
? checkboxValues.add(option)
|
||||
: checkboxValues.remove(option);
|
||||
widget.controller.value = List.from(checkboxValues);
|
||||
setState(() {});
|
||||
}
|
||||
: null,
|
||||
activeColor: widget.activeColor,
|
||||
checkColor: widget.checkColor,
|
||||
shape: RoundedRectangleBorder(
|
||||
borderRadius:
|
||||
widget.checkboxBorderRadius ?? BorderRadius.zero,
|
||||
),
|
||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||
visualDensity: VisualDensity.compact,
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: widget.labelPadding ?? EdgeInsets.zero,
|
||||
child: Text(
|
||||
widget.options[index],
|
||||
style:
|
||||
selected ? widget.textStyle : unselectedTextStyle,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
|
@ -270,8 +270,8 @@ class _FlutterFlowDropDownState<T> extends State<FlutterFlowDropDown<T>> {
|
|||
.toList();
|
||||
|
||||
Widget _buildDropdown() {
|
||||
final overlayColor = MaterialStateProperty.resolveWith<Color?>((states) =>
|
||||
states.contains(MaterialState.focused) ? Colors.transparent : null);
|
||||
final overlayColor = WidgetStateProperty.resolveWith<Color?>((states) =>
|
||||
states.contains(WidgetState.focused) ? Colors.transparent : null);
|
||||
final iconStyleData = widget.icon != null
|
||||
? IconStyleData(icon: widget.icon!)
|
||||
: const IconStyleData();
|
||||
|
|
|
@ -77,7 +77,7 @@ class _FlutterFlowIconButtonState extends State<FlutterFlowIconButton> {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
ButtonStyle style = ButtonStyle(
|
||||
shape: MaterialStateProperty.resolveWith<OutlinedBorder>(
|
||||
shape: WidgetStateProperty.resolveWith<OutlinedBorder>(
|
||||
(states) {
|
||||
return RoundedRectangleBorder(
|
||||
borderRadius: BorderRadius.circular(widget.borderRadius ?? 0),
|
||||
|
@ -88,26 +88,26 @@ class _FlutterFlowIconButtonState extends State<FlutterFlowIconButton> {
|
|||
);
|
||||
},
|
||||
),
|
||||
iconColor: MaterialStateProperty.resolveWith<Color?>(
|
||||
iconColor: WidgetStateProperty.resolveWith<Color?>(
|
||||
(states) {
|
||||
if (states.contains(MaterialState.disabled) &&
|
||||
if (states.contains(WidgetState.disabled) &&
|
||||
widget.disabledIconColor != null) {
|
||||
return widget.disabledIconColor;
|
||||
}
|
||||
if (states.contains(MaterialState.hovered) &&
|
||||
if (states.contains(WidgetState.hovered) &&
|
||||
widget.hoverIconColor != null) {
|
||||
return widget.hoverIconColor;
|
||||
}
|
||||
return iconColor;
|
||||
},
|
||||
),
|
||||
backgroundColor: MaterialStateProperty.resolveWith<Color?>(
|
||||
backgroundColor: WidgetStateProperty.resolveWith<Color?>(
|
||||
(states) {
|
||||
if (states.contains(MaterialState.disabled) &&
|
||||
if (states.contains(WidgetState.disabled) &&
|
||||
widget.disabledColor != null) {
|
||||
return widget.disabledColor;
|
||||
}
|
||||
if (states.contains(MaterialState.hovered) &&
|
||||
if (states.contains(WidgetState.hovered) &&
|
||||
widget.hoverColor != null) {
|
||||
return widget.hoverColor;
|
||||
}
|
||||
|
@ -115,8 +115,8 @@ class _FlutterFlowIconButtonState extends State<FlutterFlowIconButton> {
|
|||
return widget.fillColor;
|
||||
},
|
||||
),
|
||||
overlayColor: MaterialStateProperty.resolveWith<Color?>((states) {
|
||||
if (states.contains(MaterialState.pressed)) {
|
||||
overlayColor: WidgetStateProperty.resolveWith<Color?>((states) {
|
||||
if (states.contains(WidgetState.pressed)) {
|
||||
return null;
|
||||
}
|
||||
return widget.hoverColor == null ? null : Colors.transparent;
|
||||
|
|
|
@ -65,11 +65,11 @@ Theme wrapInMaterialDatePickerTheme(
|
|||
}) {
|
||||
final baseTheme = Theme.of(context);
|
||||
final dateTimeMaterialStateForegroundColor =
|
||||
MaterialStateProperty.resolveWith((states) {
|
||||
if (states.contains(MaterialState.disabled)) {
|
||||
WidgetStateProperty.resolveWith((states) {
|
||||
if (states.contains(WidgetState.disabled)) {
|
||||
return pickerForegroundColor.withOpacity(0.60);
|
||||
}
|
||||
if (states.contains(MaterialState.selected)) {
|
||||
if (states.contains(WidgetState.selected)) {
|
||||
return selectedDateTimeForegroundColor;
|
||||
}
|
||||
if (states.isEmpty) {
|
||||
|
@ -79,8 +79,8 @@ Theme wrapInMaterialDatePickerTheme(
|
|||
});
|
||||
|
||||
final dateTimeMaterialStateBackgroundColor =
|
||||
MaterialStateProperty.resolveWith((states) {
|
||||
if (states.contains(MaterialState.selected)) {
|
||||
WidgetStateProperty.resolveWith((states) {
|
||||
if (states.contains(WidgetState.selected)) {
|
||||
return selectedDateTimeBackgroundColor;
|
||||
}
|
||||
return null;
|
||||
|
@ -101,15 +101,15 @@ Theme wrapInMaterialDatePickerTheme(
|
|||
),
|
||||
textButtonTheme: TextButtonThemeData(
|
||||
style: ButtonStyle(
|
||||
foregroundColor: MaterialStatePropertyAll(
|
||||
foregroundColor: WidgetStatePropertyAll(
|
||||
actionButtonForegroundColor,
|
||||
),
|
||||
overlayColor: MaterialStateProperty.resolveWith((states) {
|
||||
if (states.contains(MaterialState.hovered)) {
|
||||
overlayColor: WidgetStateProperty.resolveWith((states) {
|
||||
if (states.contains(WidgetState.hovered)) {
|
||||
return actionButtonForegroundColor.withOpacity(0.04);
|
||||
}
|
||||
if (states.contains(MaterialState.focused) ||
|
||||
states.contains(MaterialState.pressed)) {
|
||||
if (states.contains(WidgetState.focused) ||
|
||||
states.contains(WidgetState.pressed)) {
|
||||
return actionButtonForegroundColor.withOpacity(0.12);
|
||||
}
|
||||
return null;
|
||||
|
@ -155,15 +155,15 @@ Theme wrapInMaterialTimePickerTheme(
|
|||
),
|
||||
textButtonTheme: TextButtonThemeData(
|
||||
style: ButtonStyle(
|
||||
foregroundColor: MaterialStatePropertyAll(
|
||||
foregroundColor: WidgetStatePropertyAll(
|
||||
actionButtonForegroundColor,
|
||||
),
|
||||
overlayColor: MaterialStateProperty.resolveWith((states) {
|
||||
if (states.contains(MaterialState.hovered)) {
|
||||
overlayColor: WidgetStateProperty.resolveWith((states) {
|
||||
if (states.contains(WidgetState.hovered)) {
|
||||
return actionButtonForegroundColor.withOpacity(0.04);
|
||||
}
|
||||
if (states.contains(MaterialState.focused) ||
|
||||
states.contains(MaterialState.pressed)) {
|
||||
if (states.contains(WidgetState.focused) ||
|
||||
states.contains(WidgetState.pressed)) {
|
||||
return actionButtonForegroundColor.withOpacity(0.12);
|
||||
}
|
||||
return null;
|
||||
|
@ -173,19 +173,19 @@ Theme wrapInMaterialTimePickerTheme(
|
|||
backgroundColor: pickerBackgroundColor,
|
||||
hourMinuteTextColor: pickerForegroundColor,
|
||||
dialHandColor: selectedDateTimeBackgroundColor,
|
||||
dialTextColor: MaterialStateColor.resolveWith((states) =>
|
||||
states.contains(MaterialState.selected)
|
||||
dialTextColor: WidgetStateColor.resolveWith((states) =>
|
||||
states.contains(WidgetState.selected)
|
||||
? selectedDateTimeForegroundColor
|
||||
: pickerForegroundColor),
|
||||
dayPeriodBorderSide: BorderSide(
|
||||
color: pickerForegroundColor,
|
||||
),
|
||||
dayPeriodTextColor: MaterialStateColor.resolveWith((states) =>
|
||||
states.contains(MaterialState.selected)
|
||||
dayPeriodTextColor: WidgetStateColor.resolveWith((states) =>
|
||||
states.contains(WidgetState.selected)
|
||||
? selectedDateTimeForegroundColor
|
||||
: pickerForegroundColor),
|
||||
dayPeriodColor: MaterialStateColor.resolveWith((states) =>
|
||||
states.contains(MaterialState.selected)
|
||||
dayPeriodColor: WidgetStateColor.resolveWith((states) =>
|
||||
states.contains(WidgetState.selected)
|
||||
? selectedDateTimeBackgroundColor
|
||||
: Colors.transparent),
|
||||
entryModeIconColor: pickerForegroundColor,
|
||||
|
|
|
@ -124,9 +124,9 @@ class _FFButtonWidgetState extends State<FFButtonWidget> {
|
|||
: null;
|
||||
|
||||
ButtonStyle style = ButtonStyle(
|
||||
shape: MaterialStateProperty.resolveWith<OutlinedBorder>(
|
||||
shape: WidgetStateProperty.resolveWith<OutlinedBorder>(
|
||||
(states) {
|
||||
if (states.contains(MaterialState.hovered) &&
|
||||
if (states.contains(WidgetState.hovered) &&
|
||||
widget.options.hoverBorderSide != null) {
|
||||
return RoundedRectangleBorder(
|
||||
borderRadius:
|
||||
|
@ -141,43 +141,43 @@ class _FFButtonWidgetState extends State<FFButtonWidget> {
|
|||
);
|
||||
},
|
||||
),
|
||||
foregroundColor: MaterialStateProperty.resolveWith<Color?>(
|
||||
foregroundColor: WidgetStateProperty.resolveWith<Color?>(
|
||||
(states) {
|
||||
if (states.contains(MaterialState.disabled) &&
|
||||
if (states.contains(WidgetState.disabled) &&
|
||||
widget.options.disabledTextColor != null) {
|
||||
return widget.options.disabledTextColor;
|
||||
}
|
||||
if (states.contains(MaterialState.hovered) &&
|
||||
if (states.contains(WidgetState.hovered) &&
|
||||
widget.options.hoverTextColor != null) {
|
||||
return widget.options.hoverTextColor;
|
||||
}
|
||||
return widget.options.textStyle?.color ?? Colors.white;
|
||||
},
|
||||
),
|
||||
backgroundColor: MaterialStateProperty.resolveWith<Color?>(
|
||||
backgroundColor: WidgetStateProperty.resolveWith<Color?>(
|
||||
(states) {
|
||||
if (states.contains(MaterialState.disabled) &&
|
||||
if (states.contains(WidgetState.disabled) &&
|
||||
widget.options.disabledColor != null) {
|
||||
return widget.options.disabledColor;
|
||||
}
|
||||
if (states.contains(MaterialState.hovered) &&
|
||||
if (states.contains(WidgetState.hovered) &&
|
||||
widget.options.hoverColor != null) {
|
||||
return widget.options.hoverColor;
|
||||
}
|
||||
return widget.options.color;
|
||||
},
|
||||
),
|
||||
overlayColor: MaterialStateProperty.resolveWith<Color?>((states) {
|
||||
if (states.contains(MaterialState.pressed)) {
|
||||
overlayColor: WidgetStateProperty.resolveWith<Color?>((states) {
|
||||
if (states.contains(WidgetState.pressed)) {
|
||||
return widget.options.splashColor;
|
||||
}
|
||||
return widget.options.hoverColor == null ? null : Colors.transparent;
|
||||
}),
|
||||
padding: MaterialStateProperty.all(widget.options.padding ??
|
||||
padding: WidgetStateProperty.all(widget.options.padding ??
|
||||
const EdgeInsets.symmetric(horizontal: 12.0, vertical: 4.0)),
|
||||
elevation: MaterialStateProperty.resolveWith<double?>(
|
||||
elevation: WidgetStateProperty.resolveWith<double?>(
|
||||
(states) {
|
||||
if (states.contains(MaterialState.hovered) &&
|
||||
if (states.contains(WidgetState.hovered) &&
|
||||
widget.options.hoverElevation != null) {
|
||||
return widget.options.hoverElevation!;
|
||||
}
|
||||
|
|
|
@ -513,25 +513,53 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
|
|||
// optModal
|
||||
{
|
||||
'0enrtljz': {
|
||||
'pt': 'Label here...',
|
||||
'en': '',
|
||||
'pt': 'Pesquise aqui.....',
|
||||
'en': 'Search here.....',
|
||||
},
|
||||
'l7tw8b92': {
|
||||
'pt': 'Tipo de Pessoa',
|
||||
'en': 'Kind of person',
|
||||
},
|
||||
'zok7lu4w': {
|
||||
'pt': 'Visitante',
|
||||
'en': 'Visitor',
|
||||
},
|
||||
'oonqk812': {
|
||||
'pt': 'Morador',
|
||||
'en': 'Resident',
|
||||
},
|
||||
'yfj9pd6k': {
|
||||
'pt': 'Visitante',
|
||||
'en': '',
|
||||
},
|
||||
'dkvmdln1': {
|
||||
'pt': 'Title',
|
||||
'svfcf5xs': {
|
||||
'pt': 'Morador',
|
||||
'en': '',
|
||||
},
|
||||
'pepv7gl9': {
|
||||
'pt': 'Tipo de Acesso',
|
||||
'en': 'Access Type',
|
||||
},
|
||||
'580z80ct': {
|
||||
'pt': 'Entrada',
|
||||
'en': 'Prohibited',
|
||||
},
|
||||
'1nbwqtzs': {
|
||||
'pt': 'Saida',
|
||||
'en': 'Exit',
|
||||
},
|
||||
'5zn9x69v': {
|
||||
'pt': 'Entrada',
|
||||
'en': '',
|
||||
},
|
||||
'qos4r9fy': {
|
||||
'pt': 'Title',
|
||||
'8uf522zq': {
|
||||
'pt': 'Saida',
|
||||
'en': '',
|
||||
},
|
||||
'88kshkph': {
|
||||
'pt': 'Salvar',
|
||||
'en': 'To save',
|
||||
},
|
||||
},
|
||||
// throwException
|
||||
{
|
||||
|
|
|
@ -85,13 +85,13 @@ class _MyAppState extends State<MyApp> {
|
|||
theme: ThemeData(
|
||||
brightness: Brightness.light,
|
||||
scrollbarTheme: ScrollbarThemeData(
|
||||
thumbVisibility: MaterialStateProperty.all(false),
|
||||
thumbVisibility: WidgetStateProperty.all(false),
|
||||
interactive: false,
|
||||
thumbColor: MaterialStateProperty.resolveWith((states) {
|
||||
if (states.contains(MaterialState.dragged)) {
|
||||
thumbColor: WidgetStateProperty.resolveWith((states) {
|
||||
if (states.contains(WidgetState.dragged)) {
|
||||
return const Color(0xff1aab5f);
|
||||
}
|
||||
if (states.contains(MaterialState.hovered)) {
|
||||
if (states.contains(WidgetState.hovered)) {
|
||||
return const Color(0xff1aab5f);
|
||||
}
|
||||
return const Color(0xff1aab5f);
|
||||
|
@ -101,13 +101,13 @@ class _MyAppState extends State<MyApp> {
|
|||
darkTheme: ThemeData(
|
||||
brightness: Brightness.dark,
|
||||
scrollbarTheme: ScrollbarThemeData(
|
||||
thumbVisibility: MaterialStateProperty.all(false),
|
||||
thumbVisibility: WidgetStateProperty.all(false),
|
||||
interactive: false,
|
||||
thumbColor: MaterialStateProperty.resolveWith((states) {
|
||||
if (states.contains(MaterialState.dragged)) {
|
||||
thumbColor: WidgetStateProperty.resolveWith((states) {
|
||||
if (states.contains(WidgetState.dragged)) {
|
||||
return const Color(0xff1aab5f);
|
||||
}
|
||||
if (states.contains(MaterialState.hovered)) {
|
||||
if (states.contains(WidgetState.hovered)) {
|
||||
return const Color(0xff1aab5f);
|
||||
}
|
||||
return const Color(0xff1aab5f);
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import '/backend/api_requests/api_calls.dart';
|
||||
import '/components/molecular_components/opt_modal/opt_modal_widget.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/request_manager.dart';
|
||||
|
||||
|
@ -78,4 +79,25 @@ class AcessHistoryPageModel extends FlutterFlowModel<AcessHistoryPageWidget> {
|
|||
|
||||
clearAccessHistoryCache();
|
||||
}
|
||||
|
||||
/// Action blocks.
|
||||
Future toggleOptionsAction(BuildContext context) async {
|
||||
await showModalBottomSheet(
|
||||
isScrollControlled: true,
|
||||
backgroundColor: Colors.transparent,
|
||||
useSafeArea: true,
|
||||
context: context,
|
||||
builder: (context) {
|
||||
return GestureDetector(
|
||||
onTap: () => unfocusNode.canRequestFocus
|
||||
? FocusScope.of(context).requestFocus(unfocusNode)
|
||||
: FocusScope.of(context).unfocus(),
|
||||
child: Padding(
|
||||
padding: MediaQuery.viewInsetsOf(context),
|
||||
child: const OptModalWidget(),
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
55
pubspec.yaml
55
pubspec.yaml
|
@ -29,21 +29,21 @@ dependencies:
|
|||
cached_network_image: 3.3.1
|
||||
collection: 1.18.0
|
||||
crop_your_image: 1.0.0
|
||||
csv: 5.0.1
|
||||
csv: 6.0.0
|
||||
device_info_plus: 9.1.2
|
||||
dropdown_button2: 2.3.9
|
||||
easy_debounce: 2.0.1
|
||||
equatable: 2.0.5
|
||||
file_picker: 6.1.1
|
||||
flutter_animate: 4.1.1+1
|
||||
file_picker: 8.0.3
|
||||
flutter_animate: 4.5.0
|
||||
flutter_cache_manager: 3.3.1
|
||||
flutter_plugin_android_lifecycle: 2.0.17
|
||||
flutter_secure_storage: 8.0.0
|
||||
flutter_secure_storage_linux: 1.2.0
|
||||
flutter_secure_storage_macos: 3.0.1
|
||||
flutter_secure_storage_platform_interface: 1.0.2
|
||||
flutter_secure_storage_web: 1.1.2
|
||||
flutter_secure_storage_windows: 2.1.1
|
||||
flutter_plugin_android_lifecycle: 2.0.20
|
||||
flutter_secure_storage: 9.2.2
|
||||
flutter_secure_storage_linux: 1.2.1
|
||||
flutter_secure_storage_macos: 3.1.2
|
||||
flutter_secure_storage_platform_interface: 1.1.2
|
||||
flutter_secure_storage_web: 1.2.1
|
||||
flutter_secure_storage_windows: 3.1.2
|
||||
flutter_spinkit: 5.2.0
|
||||
flutter_staggered_grid_view: 0.7.0
|
||||
flutter_svg: 2.0.9
|
||||
|
@ -51,22 +51,22 @@ dependencies:
|
|||
from_css_color: 2.0.0
|
||||
go_router: 12.1.3
|
||||
google_fonts: 6.1.0
|
||||
http: 1.2.0
|
||||
http: 1.2.1
|
||||
image_picker: 1.0.4
|
||||
image_picker_android: 0.8.8
|
||||
image_picker_for_web: 3.0.1
|
||||
image_picker_ios: 0.8.8+2
|
||||
image_picker_platform_interface: 2.9.1
|
||||
intl: 0.18.1
|
||||
json_path: 0.6.2
|
||||
intl: 0.19.0
|
||||
json_path: 0.7.2
|
||||
mime_type: 1.0.0
|
||||
page_transition: 2.1.0
|
||||
path_provider: 2.0.14
|
||||
path_provider_android: 2.0.25
|
||||
path_provider_foundation: 2.2.2
|
||||
path_provider_platform_interface: 2.0.6
|
||||
path_provider: 2.1.3
|
||||
path_provider_android: 2.2.5
|
||||
path_provider_foundation: 2.4.0
|
||||
path_provider_platform_interface: 2.1.2
|
||||
plugin_platform_interface: 2.1.8
|
||||
provider: 6.0.5
|
||||
provider: 6.1.2
|
||||
shared_preferences: 2.2.2
|
||||
shared_preferences_android: 2.2.1
|
||||
shared_preferences_foundation: 2.3.4
|
||||
|
@ -74,16 +74,16 @@ dependencies:
|
|||
shared_preferences_web: 2.2.1
|
||||
sqflite: 2.2.6
|
||||
synchronized: 3.1.0
|
||||
timeago: 3.2.2
|
||||
timeago: 3.6.1
|
||||
url_launcher: 6.2.5
|
||||
url_launcher_android: 6.3.0
|
||||
url_launcher_ios: 6.2.5
|
||||
url_launcher_platform_interface: 2.3.2
|
||||
video_player: 2.8.1
|
||||
video_player_android: 2.4.10
|
||||
video_player_avfoundation: 2.5.1
|
||||
video_player_platform_interface: 6.2.1
|
||||
video_player_web: 2.1.2
|
||||
video_player: 2.8.6
|
||||
video_player_android: 2.4.16
|
||||
video_player_avfoundation: 2.6.1
|
||||
video_player_platform_interface: 6.2.2
|
||||
video_player_web: 2.3.1
|
||||
|
||||
|
||||
# The following adds the Cupertino Icons font to your application.
|
||||
|
@ -91,14 +91,15 @@ dependencies:
|
|||
cupertino_icons: ^1.0.0
|
||||
|
||||
dependency_overrides:
|
||||
http: 1.2.0
|
||||
http: 1.2.1
|
||||
uuid: ^4.0.0
|
||||
win32: 5.5.1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_launcher_icons: 0.13.1
|
||||
flutter_lints: 3.0.0
|
||||
flutter_lints: 4.0.0
|
||||
image: 4.0.17
|
||||
lints: 3.0.0
|
||||
lints: 4.0.0
|
||||
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
|
|
Loading…
Reference in New Issue