chore: Update iOS platform version to 14.0
This commit is contained in:
commit
352031e243
|
@ -21,6 +21,6 @@
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.0</string>
|
<string>1.0</string>
|
||||||
<key>MinimumOSVersion</key>
|
<key>MinimumOSVersion</key>
|
||||||
<string>13.0</string>
|
<string>14.0</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Uncomment this line to define a global platform for your project
|
# 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.
|
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
|
||||||
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
|
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>"; };
|
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>"; };
|
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>"; };
|
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>"; };
|
6436409927A31CDE00820AF7 /* 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>"; };
|
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>"; };
|
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
@ -225,8 +225,8 @@
|
||||||
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
|
6436409C27A31CD800820AF7 /* InfoPlist.strings */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
6436409827A31CD000820AF7 /* pt */,
|
6436409927A31CDE00820AF7 /* pt */,
|
||||||
6436409527A31CDA00820AF7 /* en */,
|
6436409C27A31CD500820AF7 /* en */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -291,7 +291,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SUPPORTED_PLATFORMS = iphoneos;
|
SUPPORTED_PLATFORMS = iphoneos;
|
||||||
|
@ -373,7 +373,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
|
@ -422,7 +422,7 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SUPPORTED_PLATFORMS = iphoneos;
|
SUPPORTED_PLATFORMS = iphoneos;
|
||||||
|
|
|
@ -143,7 +143,7 @@ Future singInLoginAction(
|
||||||
await showModalBottomSheet(
|
await showModalBottomSheet(
|
||||||
isScrollControlled: true,
|
isScrollControlled: true,
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
enableDrag: false,
|
useSafeArea: true,
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
return Padding(
|
return Padding(
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
import '/flutter_flow/flutter_flow_util.dart';
|
||||||
|
import '/flutter_flow/form_field_controller.dart';
|
||||||
import 'opt_modal_widget.dart' show OptModalWidget;
|
import 'opt_modal_widget.dart' show OptModalWidget;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
@ -9,10 +10,19 @@ class OptModalModel extends FlutterFlowModel<OptModalWidget> {
|
||||||
FocusNode? textFieldFocusNode;
|
FocusNode? textFieldFocusNode;
|
||||||
TextEditingController? textController;
|
TextEditingController? textController;
|
||||||
String? Function(BuildContext, String?)? textControllerValidator;
|
String? Function(BuildContext, String?)? textControllerValidator;
|
||||||
// State field(s) for CheckboxListTile widget.
|
// State field(s) for CheckboxGroup widget.
|
||||||
bool? checkboxListTileValue1;
|
FormFieldController<List<String>>? checkboxGroupValueController1;
|
||||||
// State field(s) for CheckboxListTile widget.
|
List<String>? get checkboxGroupValues1 =>
|
||||||
bool? checkboxListTileValue2;
|
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
|
@override
|
||||||
void initState(BuildContext context) {}
|
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_theme.dart';
|
||||||
import '/flutter_flow/flutter_flow_util.dart';
|
import '/flutter_flow/flutter_flow_util.dart';
|
||||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||||
|
import '/flutter_flow/form_field_controller.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:google_fonts/google_fonts.dart';
|
import 'package:google_fonts/google_fonts.dart';
|
||||||
import 'opt_modal_model.dart';
|
import 'opt_modal_model.dart';
|
||||||
|
@ -47,7 +49,10 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
||||||
height: 400.0,
|
height: 400.0,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
color: FlutterFlowTheme.of(context).primaryBackground,
|
||||||
|
borderRadius: BorderRadius.circular(24.0),
|
||||||
),
|
),
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(4.0),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
children: [
|
children: [
|
||||||
|
@ -56,7 +61,8 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
|
padding:
|
||||||
|
const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
|
||||||
child: Icon(
|
child: Icon(
|
||||||
Icons.filter_list,
|
Icons.filter_list,
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
color: FlutterFlowTheme.of(context).primary,
|
||||||
|
@ -75,18 +81,24 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
||||||
decoration: InputDecoration(
|
decoration: InputDecoration(
|
||||||
isDense: true,
|
isDense: true,
|
||||||
labelText: FFLocalizations.of(context).getText(
|
labelText: FFLocalizations.of(context).getText(
|
||||||
'0enrtljz' /* Label here... */,
|
'0enrtljz' /* Pesquise aqui..... */,
|
||||||
),
|
),
|
||||||
labelStyle: FlutterFlowTheme.of(context).labelMedium.override(
|
labelStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
fontFamily:
|
fontFamily:
|
||||||
FlutterFlowTheme.of(context).labelMediumFamily,
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).labelMediumFamily),
|
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||||
),
|
),
|
||||||
hintStyle: FlutterFlowTheme.of(context).labelMedium.override(
|
hintStyle: FlutterFlowTheme.of(context)
|
||||||
|
.labelMedium
|
||||||
|
.override(
|
||||||
fontFamily:
|
fontFamily:
|
||||||
FlutterFlowTheme.of(context).labelMediumFamily,
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).labelMediumFamily),
|
FlutterFlowTheme.of(context).labelMediumFamily),
|
||||||
|
@ -119,17 +131,21 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(8.0),
|
borderRadius: BorderRadius.circular(8.0),
|
||||||
),
|
),
|
||||||
|
filled: true,
|
||||||
|
fillColor: FlutterFlowTheme.of(context).alternate,
|
||||||
suffixIcon: const Icon(
|
suffixIcon: const Icon(
|
||||||
Icons.search_outlined,
|
Icons.search_outlined,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
fontFamily: FlutterFlowTheme.of(context).bodyMediumFamily,
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||||
),
|
),
|
||||||
validator: _model.textControllerValidator.asValidator(context),
|
validator:
|
||||||
|
_model.textControllerValidator.asValidator(context),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Column(
|
Column(
|
||||||
|
@ -147,50 +163,48 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
FlutterFlowTheme.of(context)
|
||||||
|
.bodyMediumFamily),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
].addToStart(const SizedBox(width: 24.0)),
|
].addToStart(const SizedBox(width: 24.0)),
|
||||||
),
|
),
|
||||||
Theme(
|
FlutterFlowCheckboxGroup(
|
||||||
data: ThemeData(
|
options: [
|
||||||
checkboxTheme: CheckboxThemeData(
|
|
||||||
visualDensity: VisualDensity.compact,
|
|
||||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
|
||||||
shape: RoundedRectangleBorder(
|
|
||||||
borderRadius: BorderRadius.circular(25),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
unselectedWidgetColor:
|
|
||||||
FlutterFlowTheme.of(context).secondaryText,
|
|
||||||
),
|
|
||||||
child: CheckboxListTile(
|
|
||||||
value: _model.checkboxListTileValue1 ??= true,
|
|
||||||
onChanged: (newValue) async {
|
|
||||||
setState(() => _model.checkboxListTileValue1 = newValue!);
|
|
||||||
},
|
|
||||||
title: Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
FFLocalizations.of(context).getText(
|
||||||
'dkvmdln1' /* Title */,
|
'zok7lu4w' /* Visitante */,
|
||||||
),
|
),
|
||||||
style: FlutterFlowTheme.of(context).titleLarge.override(
|
FFLocalizations.of(context).getText(
|
||||||
fontFamily:
|
'oonqk812' /* Morador */,
|
||||||
FlutterFlowTheme.of(context).titleLargeFamily,
|
)
|
||||||
fontSize: 10.0,
|
],
|
||||||
letterSpacing: 0.0,
|
onChanged: (val) =>
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
setState(() => _model.checkboxGroupValues1 = val),
|
||||||
FlutterFlowTheme.of(context).titleLargeFamily),
|
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,
|
activeColor: FlutterFlowTheme.of(context).primary,
|
||||||
checkColor: FlutterFlowTheme.of(context).info,
|
checkColor: FlutterFlowTheme.of(context).info,
|
||||||
dense: true,
|
checkboxBorderColor:
|
||||||
controlAffinity: ListTileControlAffinity.leading,
|
FlutterFlowTheme.of(context).secondaryText,
|
||||||
shape: RoundedRectangleBorder(
|
textStyle: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
borderRadius: BorderRadius.circular(0.0),
|
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,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
.addToStart(const SizedBox(height: 10.0))
|
.addToStart(const SizedBox(height: 10.0))
|
||||||
|
@ -211,50 +225,48 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
FlutterFlowTheme.of(context)
|
||||||
|
.bodyMediumFamily),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
].addToStart(const SizedBox(width: 24.0)),
|
].addToStart(const SizedBox(width: 24.0)),
|
||||||
),
|
),
|
||||||
Theme(
|
FlutterFlowCheckboxGroup(
|
||||||
data: ThemeData(
|
options: [
|
||||||
checkboxTheme: CheckboxThemeData(
|
|
||||||
visualDensity: VisualDensity.compact,
|
|
||||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
|
||||||
shape: RoundedRectangleBorder(
|
|
||||||
borderRadius: BorderRadius.circular(25),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
unselectedWidgetColor:
|
|
||||||
FlutterFlowTheme.of(context).secondaryText,
|
|
||||||
),
|
|
||||||
child: CheckboxListTile(
|
|
||||||
value: _model.checkboxListTileValue2 ??= true,
|
|
||||||
onChanged: (newValue) async {
|
|
||||||
setState(() => _model.checkboxListTileValue2 = newValue!);
|
|
||||||
},
|
|
||||||
title: Text(
|
|
||||||
FFLocalizations.of(context).getText(
|
FFLocalizations.of(context).getText(
|
||||||
'qos4r9fy' /* Title */,
|
'580z80ct' /* Entrada */,
|
||||||
),
|
),
|
||||||
style: FlutterFlowTheme.of(context).titleLarge.override(
|
FFLocalizations.of(context).getText(
|
||||||
fontFamily:
|
'1nbwqtzs' /* Saida */,
|
||||||
FlutterFlowTheme.of(context).titleLargeFamily,
|
)
|
||||||
fontSize: 10.0,
|
],
|
||||||
letterSpacing: 0.0,
|
onChanged: (val) =>
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
setState(() => _model.checkboxGroupValues2 = val),
|
||||||
FlutterFlowTheme.of(context).titleLargeFamily),
|
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,
|
activeColor: FlutterFlowTheme.of(context).primary,
|
||||||
checkColor: FlutterFlowTheme.of(context).info,
|
checkColor: FlutterFlowTheme.of(context).info,
|
||||||
dense: true,
|
checkboxBorderColor:
|
||||||
controlAffinity: ListTileControlAffinity.leading,
|
FlutterFlowTheme.of(context).secondaryText,
|
||||||
shape: RoundedRectangleBorder(
|
textStyle: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
borderRadius: BorderRadius.circular(0.0),
|
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))
|
.addToStart(const SizedBox(height: 10.0))
|
||||||
|
@ -264,27 +276,25 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
print('Button pressed ...');
|
print('Button pressed ...');
|
||||||
},
|
},
|
||||||
text: '',
|
text: FFLocalizations.of(context).getText(
|
||||||
icon: const Icon(
|
'88kshkph' /* Salvar */,
|
||||||
Icons.done,
|
|
||||||
size: 15.0,
|
|
||||||
),
|
),
|
||||||
options: FFButtonOptions(
|
options: FFButtonOptions(
|
||||||
height: 40.0,
|
height: 40.0,
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.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),
|
iconPadding:
|
||||||
|
const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
color: FlutterFlowTheme.of(context).primary,
|
||||||
textStyle: FlutterFlowTheme.of(context).titleSmall.override(
|
textStyle: FlutterFlowTheme.of(context).titleSmall.override(
|
||||||
fontFamily: FlutterFlowTheme.of(context).titleSmallFamily,
|
fontFamily:
|
||||||
|
FlutterFlowTheme.of(context).titleSmallFamily,
|
||||||
color: Colors.white,
|
color: Colors.white,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).titleSmallFamily),
|
FlutterFlowTheme.of(context).titleSmallFamily),
|
||||||
),
|
),
|
||||||
elevation: 3.0,
|
|
||||||
borderSide: const BorderSide(
|
borderSide: const BorderSide(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
width: 1.0,
|
|
||||||
),
|
),
|
||||||
borderRadius: BorderRadius.circular(8.0),
|
borderRadius: BorderRadius.circular(8.0),
|
||||||
),
|
),
|
||||||
|
@ -295,6 +305,7 @@ class _OptModalWidgetState extends State<OptModalWidget> {
|
||||||
.addToEnd(const SizedBox(height: 10.0)),
|
.addToEnd(const SizedBox(height: 10.0)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,14 @@ class _ThrowExceptionWidgetState extends State<ThrowExceptionWidget>
|
||||||
children: [
|
children: [
|
||||||
Padding(
|
Padding(
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(10.0, 0.0, 10.0, 0.0),
|
padding: const EdgeInsetsDirectional.fromSTEB(10.0, 0.0, 10.0, 0.0),
|
||||||
|
child: InkWell(
|
||||||
|
splashColor: Colors.transparent,
|
||||||
|
focusColor: Colors.transparent,
|
||||||
|
hoverColor: Colors.transparent,
|
||||||
|
highlightColor: Colors.transparent,
|
||||||
|
onTap: () async {
|
||||||
|
Navigator.pop(context);
|
||||||
|
},
|
||||||
child: Container(
|
child: Container(
|
||||||
height: 400.0,
|
height: 400.0,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
|
@ -101,7 +109,8 @@ class _ThrowExceptionWidgetState extends State<ThrowExceptionWidget>
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
).animateOnPageLoad(animationsMap['stackOnPageLoadAnimation']!),
|
).animateOnPageLoad(
|
||||||
|
animationsMap['stackOnPageLoadAnimation']!),
|
||||||
Column(
|
Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
@ -117,7 +126,8 @@ class _ThrowExceptionWidgetState extends State<ThrowExceptionWidget>
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
fontWeight: FontWeight.bold,
|
fontWeight: FontWeight.bold,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily),
|
FlutterFlowTheme.of(context)
|
||||||
|
.bodyMediumFamily),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Padding(
|
Padding(
|
||||||
|
@ -128,9 +138,11 @@ class _ThrowExceptionWidgetState extends State<ThrowExceptionWidget>
|
||||||
widget.msg,
|
widget.msg,
|
||||||
'Message Not Found',
|
'Message Not Found',
|
||||||
),
|
),
|
||||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
style: FlutterFlowTheme.of(context)
|
||||||
fontFamily:
|
.bodyMedium
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
.override(
|
||||||
|
fontFamily: FlutterFlowTheme.of(context)
|
||||||
|
.bodyMediumFamily,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context)
|
FlutterFlowTheme.of(context)
|
||||||
|
@ -144,6 +156,7 @@ class _ThrowExceptionWidgetState extends State<ThrowExceptionWidget>
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -70,8 +70,7 @@ class MenuComponentModel extends FlutterFlowModel<MenuComponentWidget> {
|
||||||
extra: <String, dynamic>{
|
extra: <String, dynamic>{
|
||||||
kTransitionInfoKey: const TransitionInfo(
|
kTransitionInfoKey: const TransitionInfo(
|
||||||
hasTransition: true,
|
hasTransition: true,
|
||||||
transitionType: PageTransitionType.scale,
|
transitionType: PageTransitionType.fade,
|
||||||
alignment: Alignment.bottomCenter,
|
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -65,10 +65,10 @@ class _MenuStaggeredViewComponentWidgetState
|
||||||
children: [
|
children: [
|
||||||
Container(
|
Container(
|
||||||
width: double.infinity,
|
width: double.infinity,
|
||||||
height: MediaQuery.sizeOf(context).height * 0.44,
|
height: MediaQuery.sizeOf(context).height * 0.498,
|
||||||
decoration: const BoxDecoration(),
|
decoration: const BoxDecoration(),
|
||||||
child: Padding(
|
child: Padding(
|
||||||
padding: const EdgeInsets.all(16.0),
|
padding: const EdgeInsets.all(14.0),
|
||||||
child: MasonryGridView.builder(
|
child: MasonryGridView.builder(
|
||||||
physics: const NeverScrollableScrollPhysics(),
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
gridDelegate: const SliverSimpleGridDelegateWithFixedCrossAxisCount(
|
gridDelegate: const SliverSimpleGridDelegateWithFixedCrossAxisCount(
|
||||||
|
@ -77,6 +77,12 @@ class _MenuStaggeredViewComponentWidgetState
|
||||||
crossAxisSpacing: 10.0,
|
crossAxisSpacing: 10.0,
|
||||||
mainAxisSpacing: 10.0,
|
mainAxisSpacing: 10.0,
|
||||||
itemCount: 7,
|
itemCount: 7,
|
||||||
|
padding: const EdgeInsets.fromLTRB(
|
||||||
|
0,
|
||||||
|
10.0,
|
||||||
|
0,
|
||||||
|
10.0,
|
||||||
|
),
|
||||||
shrinkWrap: true,
|
shrinkWrap: true,
|
||||||
itemBuilder: (context, index) {
|
itemBuilder: (context, index) {
|
||||||
return [
|
return [
|
||||||
|
|
|
@ -499,14 +499,7 @@ class _SignInTemplateComponentWidgetState
|
||||||
.fromSTEB(
|
.fromSTEB(
|
||||||
0.0, 0.0, 0.0, 16.0),
|
0.0, 0.0, 0.0, 16.0),
|
||||||
child: FFButtonWidget(
|
child: FFButtonWidget(
|
||||||
onPressed: ((_model.emailAddressTextController
|
onPressed: () async {
|
||||||
.text ==
|
|
||||||
'') &&
|
|
||||||
(_model.passwordTextController
|
|
||||||
.text ==
|
|
||||||
''))
|
|
||||||
? null
|
|
||||||
: () async {
|
|
||||||
await action_blocks
|
await action_blocks
|
||||||
.singInLoginAction(
|
.singInLoginAction(
|
||||||
context,
|
context,
|
||||||
|
@ -575,8 +568,6 @@ class _SignInTemplateComponentWidgetState
|
||||||
borderRadius:
|
borderRadius:
|
||||||
BorderRadius.circular(
|
BorderRadius.circular(
|
||||||
12.0),
|
12.0),
|
||||||
disabledColor:
|
|
||||||
const Color(0xE81AAB5F),
|
|
||||||
),
|
),
|
||||||
showLoadingIndicator: false,
|
showLoadingIndicator: false,
|
||||||
),
|
),
|
||||||
|
|
|
@ -708,16 +708,16 @@ class _FlutterFlowButtonTabBarState extends State<FlutterFlowButtonTabBar>
|
||||||
child: TextButton(
|
child: TextButton(
|
||||||
onPressed: () => _handleTap(index),
|
onPressed: () => _handleTap(index),
|
||||||
style: ButtonStyle(
|
style: ButtonStyle(
|
||||||
elevation: MaterialStateProperty.all(
|
elevation: WidgetStateProperty.all(
|
||||||
widget.useToggleButtonStyle ? 0 : widget.elevation),
|
widget.useToggleButtonStyle ? 0 : widget.elevation),
|
||||||
|
|
||||||
/// give a pretty small minimum size
|
/// give a pretty small minimum size
|
||||||
minimumSize: MaterialStateProperty.all(const Size(10, 10)),
|
minimumSize: WidgetStateProperty.all(const Size(10, 10)),
|
||||||
padding: MaterialStateProperty.all(EdgeInsets.zero),
|
padding: WidgetStateProperty.all(EdgeInsets.zero),
|
||||||
textStyle: MaterialStateProperty.all(textStyle),
|
textStyle: WidgetStateProperty.all(textStyle),
|
||||||
foregroundColor: MaterialStateProperty.all(textColor),
|
foregroundColor: WidgetStateProperty.all(textColor),
|
||||||
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
tapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
||||||
shape: MaterialStateProperty.all(
|
shape: WidgetStateProperty.all(
|
||||||
widget.useToggleButtonStyle
|
widget.useToggleButtonStyle
|
||||||
? const RoundedRectangleBorder(
|
? const RoundedRectangleBorder(
|
||||||
side: BorderSide.none,
|
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();
|
.toList();
|
||||||
|
|
||||||
Widget _buildDropdown() {
|
Widget _buildDropdown() {
|
||||||
final overlayColor = MaterialStateProperty.resolveWith<Color?>((states) =>
|
final overlayColor = WidgetStateProperty.resolveWith<Color?>((states) =>
|
||||||
states.contains(MaterialState.focused) ? Colors.transparent : null);
|
states.contains(WidgetState.focused) ? Colors.transparent : null);
|
||||||
final iconStyleData = widget.icon != null
|
final iconStyleData = widget.icon != null
|
||||||
? IconStyleData(icon: widget.icon!)
|
? IconStyleData(icon: widget.icon!)
|
||||||
: const IconStyleData();
|
: const IconStyleData();
|
||||||
|
|
|
@ -77,7 +77,7 @@ class _FlutterFlowIconButtonState extends State<FlutterFlowIconButton> {
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
ButtonStyle style = ButtonStyle(
|
ButtonStyle style = ButtonStyle(
|
||||||
shape: MaterialStateProperty.resolveWith<OutlinedBorder>(
|
shape: WidgetStateProperty.resolveWith<OutlinedBorder>(
|
||||||
(states) {
|
(states) {
|
||||||
return RoundedRectangleBorder(
|
return RoundedRectangleBorder(
|
||||||
borderRadius: BorderRadius.circular(widget.borderRadius ?? 0),
|
borderRadius: BorderRadius.circular(widget.borderRadius ?? 0),
|
||||||
|
@ -88,26 +88,26 @@ class _FlutterFlowIconButtonState extends State<FlutterFlowIconButton> {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
iconColor: MaterialStateProperty.resolveWith<Color?>(
|
iconColor: WidgetStateProperty.resolveWith<Color?>(
|
||||||
(states) {
|
(states) {
|
||||||
if (states.contains(MaterialState.disabled) &&
|
if (states.contains(WidgetState.disabled) &&
|
||||||
widget.disabledIconColor != null) {
|
widget.disabledIconColor != null) {
|
||||||
return widget.disabledIconColor;
|
return widget.disabledIconColor;
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.hovered) &&
|
if (states.contains(WidgetState.hovered) &&
|
||||||
widget.hoverIconColor != null) {
|
widget.hoverIconColor != null) {
|
||||||
return widget.hoverIconColor;
|
return widget.hoverIconColor;
|
||||||
}
|
}
|
||||||
return iconColor;
|
return iconColor;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
backgroundColor: MaterialStateProperty.resolveWith<Color?>(
|
backgroundColor: WidgetStateProperty.resolveWith<Color?>(
|
||||||
(states) {
|
(states) {
|
||||||
if (states.contains(MaterialState.disabled) &&
|
if (states.contains(WidgetState.disabled) &&
|
||||||
widget.disabledColor != null) {
|
widget.disabledColor != null) {
|
||||||
return widget.disabledColor;
|
return widget.disabledColor;
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.hovered) &&
|
if (states.contains(WidgetState.hovered) &&
|
||||||
widget.hoverColor != null) {
|
widget.hoverColor != null) {
|
||||||
return widget.hoverColor;
|
return widget.hoverColor;
|
||||||
}
|
}
|
||||||
|
@ -115,8 +115,8 @@ class _FlutterFlowIconButtonState extends State<FlutterFlowIconButton> {
|
||||||
return widget.fillColor;
|
return widget.fillColor;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
overlayColor: MaterialStateProperty.resolveWith<Color?>((states) {
|
overlayColor: WidgetStateProperty.resolveWith<Color?>((states) {
|
||||||
if (states.contains(MaterialState.pressed)) {
|
if (states.contains(WidgetState.pressed)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return widget.hoverColor == null ? null : Colors.transparent;
|
return widget.hoverColor == null ? null : Colors.transparent;
|
||||||
|
|
|
@ -65,11 +65,11 @@ Theme wrapInMaterialDatePickerTheme(
|
||||||
}) {
|
}) {
|
||||||
final baseTheme = Theme.of(context);
|
final baseTheme = Theme.of(context);
|
||||||
final dateTimeMaterialStateForegroundColor =
|
final dateTimeMaterialStateForegroundColor =
|
||||||
MaterialStateProperty.resolveWith((states) {
|
WidgetStateProperty.resolveWith((states) {
|
||||||
if (states.contains(MaterialState.disabled)) {
|
if (states.contains(WidgetState.disabled)) {
|
||||||
return pickerForegroundColor.withOpacity(0.60);
|
return pickerForegroundColor.withOpacity(0.60);
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.selected)) {
|
if (states.contains(WidgetState.selected)) {
|
||||||
return selectedDateTimeForegroundColor;
|
return selectedDateTimeForegroundColor;
|
||||||
}
|
}
|
||||||
if (states.isEmpty) {
|
if (states.isEmpty) {
|
||||||
|
@ -79,8 +79,8 @@ Theme wrapInMaterialDatePickerTheme(
|
||||||
});
|
});
|
||||||
|
|
||||||
final dateTimeMaterialStateBackgroundColor =
|
final dateTimeMaterialStateBackgroundColor =
|
||||||
MaterialStateProperty.resolveWith((states) {
|
WidgetStateProperty.resolveWith((states) {
|
||||||
if (states.contains(MaterialState.selected)) {
|
if (states.contains(WidgetState.selected)) {
|
||||||
return selectedDateTimeBackgroundColor;
|
return selectedDateTimeBackgroundColor;
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -101,15 +101,15 @@ Theme wrapInMaterialDatePickerTheme(
|
||||||
),
|
),
|
||||||
textButtonTheme: TextButtonThemeData(
|
textButtonTheme: TextButtonThemeData(
|
||||||
style: ButtonStyle(
|
style: ButtonStyle(
|
||||||
foregroundColor: MaterialStatePropertyAll(
|
foregroundColor: WidgetStatePropertyAll(
|
||||||
actionButtonForegroundColor,
|
actionButtonForegroundColor,
|
||||||
),
|
),
|
||||||
overlayColor: MaterialStateProperty.resolveWith((states) {
|
overlayColor: WidgetStateProperty.resolveWith((states) {
|
||||||
if (states.contains(MaterialState.hovered)) {
|
if (states.contains(WidgetState.hovered)) {
|
||||||
return actionButtonForegroundColor.withOpacity(0.04);
|
return actionButtonForegroundColor.withOpacity(0.04);
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.focused) ||
|
if (states.contains(WidgetState.focused) ||
|
||||||
states.contains(MaterialState.pressed)) {
|
states.contains(WidgetState.pressed)) {
|
||||||
return actionButtonForegroundColor.withOpacity(0.12);
|
return actionButtonForegroundColor.withOpacity(0.12);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -155,15 +155,15 @@ Theme wrapInMaterialTimePickerTheme(
|
||||||
),
|
),
|
||||||
textButtonTheme: TextButtonThemeData(
|
textButtonTheme: TextButtonThemeData(
|
||||||
style: ButtonStyle(
|
style: ButtonStyle(
|
||||||
foregroundColor: MaterialStatePropertyAll(
|
foregroundColor: WidgetStatePropertyAll(
|
||||||
actionButtonForegroundColor,
|
actionButtonForegroundColor,
|
||||||
),
|
),
|
||||||
overlayColor: MaterialStateProperty.resolveWith((states) {
|
overlayColor: WidgetStateProperty.resolveWith((states) {
|
||||||
if (states.contains(MaterialState.hovered)) {
|
if (states.contains(WidgetState.hovered)) {
|
||||||
return actionButtonForegroundColor.withOpacity(0.04);
|
return actionButtonForegroundColor.withOpacity(0.04);
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.focused) ||
|
if (states.contains(WidgetState.focused) ||
|
||||||
states.contains(MaterialState.pressed)) {
|
states.contains(WidgetState.pressed)) {
|
||||||
return actionButtonForegroundColor.withOpacity(0.12);
|
return actionButtonForegroundColor.withOpacity(0.12);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
@ -173,19 +173,19 @@ Theme wrapInMaterialTimePickerTheme(
|
||||||
backgroundColor: pickerBackgroundColor,
|
backgroundColor: pickerBackgroundColor,
|
||||||
hourMinuteTextColor: pickerForegroundColor,
|
hourMinuteTextColor: pickerForegroundColor,
|
||||||
dialHandColor: selectedDateTimeBackgroundColor,
|
dialHandColor: selectedDateTimeBackgroundColor,
|
||||||
dialTextColor: MaterialStateColor.resolveWith((states) =>
|
dialTextColor: WidgetStateColor.resolveWith((states) =>
|
||||||
states.contains(MaterialState.selected)
|
states.contains(WidgetState.selected)
|
||||||
? selectedDateTimeForegroundColor
|
? selectedDateTimeForegroundColor
|
||||||
: pickerForegroundColor),
|
: pickerForegroundColor),
|
||||||
dayPeriodBorderSide: BorderSide(
|
dayPeriodBorderSide: BorderSide(
|
||||||
color: pickerForegroundColor,
|
color: pickerForegroundColor,
|
||||||
),
|
),
|
||||||
dayPeriodTextColor: MaterialStateColor.resolveWith((states) =>
|
dayPeriodTextColor: WidgetStateColor.resolveWith((states) =>
|
||||||
states.contains(MaterialState.selected)
|
states.contains(WidgetState.selected)
|
||||||
? selectedDateTimeForegroundColor
|
? selectedDateTimeForegroundColor
|
||||||
: pickerForegroundColor),
|
: pickerForegroundColor),
|
||||||
dayPeriodColor: MaterialStateColor.resolveWith((states) =>
|
dayPeriodColor: WidgetStateColor.resolveWith((states) =>
|
||||||
states.contains(MaterialState.selected)
|
states.contains(WidgetState.selected)
|
||||||
? selectedDateTimeBackgroundColor
|
? selectedDateTimeBackgroundColor
|
||||||
: Colors.transparent),
|
: Colors.transparent),
|
||||||
entryModeIconColor: pickerForegroundColor,
|
entryModeIconColor: pickerForegroundColor,
|
||||||
|
|
|
@ -124,9 +124,9 @@ class _FFButtonWidgetState extends State<FFButtonWidget> {
|
||||||
: null;
|
: null;
|
||||||
|
|
||||||
ButtonStyle style = ButtonStyle(
|
ButtonStyle style = ButtonStyle(
|
||||||
shape: MaterialStateProperty.resolveWith<OutlinedBorder>(
|
shape: WidgetStateProperty.resolveWith<OutlinedBorder>(
|
||||||
(states) {
|
(states) {
|
||||||
if (states.contains(MaterialState.hovered) &&
|
if (states.contains(WidgetState.hovered) &&
|
||||||
widget.options.hoverBorderSide != null) {
|
widget.options.hoverBorderSide != null) {
|
||||||
return RoundedRectangleBorder(
|
return RoundedRectangleBorder(
|
||||||
borderRadius:
|
borderRadius:
|
||||||
|
@ -141,43 +141,43 @@ class _FFButtonWidgetState extends State<FFButtonWidget> {
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
foregroundColor: MaterialStateProperty.resolveWith<Color?>(
|
foregroundColor: WidgetStateProperty.resolveWith<Color?>(
|
||||||
(states) {
|
(states) {
|
||||||
if (states.contains(MaterialState.disabled) &&
|
if (states.contains(WidgetState.disabled) &&
|
||||||
widget.options.disabledTextColor != null) {
|
widget.options.disabledTextColor != null) {
|
||||||
return widget.options.disabledTextColor;
|
return widget.options.disabledTextColor;
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.hovered) &&
|
if (states.contains(WidgetState.hovered) &&
|
||||||
widget.options.hoverTextColor != null) {
|
widget.options.hoverTextColor != null) {
|
||||||
return widget.options.hoverTextColor;
|
return widget.options.hoverTextColor;
|
||||||
}
|
}
|
||||||
return widget.options.textStyle?.color ?? Colors.white;
|
return widget.options.textStyle?.color ?? Colors.white;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
backgroundColor: MaterialStateProperty.resolveWith<Color?>(
|
backgroundColor: WidgetStateProperty.resolveWith<Color?>(
|
||||||
(states) {
|
(states) {
|
||||||
if (states.contains(MaterialState.disabled) &&
|
if (states.contains(WidgetState.disabled) &&
|
||||||
widget.options.disabledColor != null) {
|
widget.options.disabledColor != null) {
|
||||||
return widget.options.disabledColor;
|
return widget.options.disabledColor;
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.hovered) &&
|
if (states.contains(WidgetState.hovered) &&
|
||||||
widget.options.hoverColor != null) {
|
widget.options.hoverColor != null) {
|
||||||
return widget.options.hoverColor;
|
return widget.options.hoverColor;
|
||||||
}
|
}
|
||||||
return widget.options.color;
|
return widget.options.color;
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
overlayColor: MaterialStateProperty.resolveWith<Color?>((states) {
|
overlayColor: WidgetStateProperty.resolveWith<Color?>((states) {
|
||||||
if (states.contains(MaterialState.pressed)) {
|
if (states.contains(WidgetState.pressed)) {
|
||||||
return widget.options.splashColor;
|
return widget.options.splashColor;
|
||||||
}
|
}
|
||||||
return widget.options.hoverColor == null ? null : Colors.transparent;
|
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)),
|
const EdgeInsets.symmetric(horizontal: 12.0, vertical: 4.0)),
|
||||||
elevation: MaterialStateProperty.resolveWith<double?>(
|
elevation: WidgetStateProperty.resolveWith<double?>(
|
||||||
(states) {
|
(states) {
|
||||||
if (states.contains(MaterialState.hovered) &&
|
if (states.contains(WidgetState.hovered) &&
|
||||||
widget.options.hoverElevation != null) {
|
widget.options.hoverElevation != null) {
|
||||||
return widget.options.hoverElevation!;
|
return widget.options.hoverElevation!;
|
||||||
}
|
}
|
||||||
|
|
|
@ -513,25 +513,53 @@ final kTranslationsMap = <Map<String, Map<String, String>>>[
|
||||||
// optModal
|
// optModal
|
||||||
{
|
{
|
||||||
'0enrtljz': {
|
'0enrtljz': {
|
||||||
'pt': 'Label here...',
|
'pt': 'Pesquise aqui.....',
|
||||||
'en': '',
|
'en': 'Search here.....',
|
||||||
},
|
},
|
||||||
'l7tw8b92': {
|
'l7tw8b92': {
|
||||||
'pt': 'Tipo de Pessoa',
|
'pt': 'Tipo de Pessoa',
|
||||||
|
'en': 'Kind of person',
|
||||||
|
},
|
||||||
|
'zok7lu4w': {
|
||||||
|
'pt': 'Visitante',
|
||||||
|
'en': 'Visitor',
|
||||||
|
},
|
||||||
|
'oonqk812': {
|
||||||
|
'pt': 'Morador',
|
||||||
|
'en': 'Resident',
|
||||||
|
},
|
||||||
|
'yfj9pd6k': {
|
||||||
|
'pt': 'Visitante',
|
||||||
'en': '',
|
'en': '',
|
||||||
},
|
},
|
||||||
'dkvmdln1': {
|
'svfcf5xs': {
|
||||||
'pt': 'Title',
|
'pt': 'Morador',
|
||||||
'en': '',
|
'en': '',
|
||||||
},
|
},
|
||||||
'pepv7gl9': {
|
'pepv7gl9': {
|
||||||
'pt': 'Tipo de Acesso',
|
'pt': 'Tipo de Acesso',
|
||||||
|
'en': 'Access Type',
|
||||||
|
},
|
||||||
|
'580z80ct': {
|
||||||
|
'pt': 'Entrada',
|
||||||
|
'en': 'Prohibited',
|
||||||
|
},
|
||||||
|
'1nbwqtzs': {
|
||||||
|
'pt': 'Saida',
|
||||||
|
'en': 'Exit',
|
||||||
|
},
|
||||||
|
'5zn9x69v': {
|
||||||
|
'pt': 'Entrada',
|
||||||
'en': '',
|
'en': '',
|
||||||
},
|
},
|
||||||
'qos4r9fy': {
|
'8uf522zq': {
|
||||||
'pt': 'Title',
|
'pt': 'Saida',
|
||||||
'en': '',
|
'en': '',
|
||||||
},
|
},
|
||||||
|
'88kshkph': {
|
||||||
|
'pt': 'Salvar',
|
||||||
|
'en': 'To save',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
// throwException
|
// throwException
|
||||||
{
|
{
|
||||||
|
|
|
@ -94,6 +94,12 @@ class _MyAppState extends State<MyApp> {
|
||||||
thumbVisibility: WidgetStateProperty.all(false),
|
thumbVisibility: WidgetStateProperty.all(false),
|
||||||
interactive: false,
|
interactive: false,
|
||||||
thumbColor: WidgetStateProperty.resolveWith((states) {
|
thumbColor: WidgetStateProperty.resolveWith((states) {
|
||||||
|
if (states.contains(WidgetState.dragged)) {
|
||||||
|
return const Color(0xff1aab5f);
|
||||||
|
}
|
||||||
|
if (states.contains(WidgetState.hovered)) {
|
||||||
|
return const Color(0xff1aab5f);
|
||||||
|
}
|
||||||
return const Color(0xff1aab5f);
|
return const Color(0xff1aab5f);
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
|
@ -104,6 +110,12 @@ class _MyAppState extends State<MyApp> {
|
||||||
thumbVisibility: WidgetStateProperty.all(false),
|
thumbVisibility: WidgetStateProperty.all(false),
|
||||||
interactive: false,
|
interactive: false,
|
||||||
thumbColor: WidgetStateProperty.resolveWith((states) {
|
thumbColor: WidgetStateProperty.resolveWith((states) {
|
||||||
|
if (states.contains(WidgetState.dragged)) {
|
||||||
|
return const Color(0xff1aab5f);
|
||||||
|
}
|
||||||
|
if (states.contains(WidgetState.hovered)) {
|
||||||
|
return const Color(0xff1aab5f);
|
||||||
|
}
|
||||||
return const Color(0xff1aab5f);
|
return const Color(0xff1aab5f);
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import '/backend/api_requests/api_calls.dart';
|
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/flutter_flow_util.dart';
|
||||||
import '/flutter_flow/request_manager.dart';
|
import '/flutter_flow/request_manager.dart';
|
||||||
|
|
||||||
|
@ -78,4 +79,25 @@ class AcessHistoryPageModel extends FlutterFlowModel<AcessHistoryPageWidget> {
|
||||||
|
|
||||||
clearAccessHistoryCache();
|
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
|
@ -72,6 +72,10 @@ dependencies:
|
||||||
path_provider_android: 2.2.5
|
path_provider_android: 2.2.5
|
||||||
path_provider_foundation: 2.4.0
|
path_provider_foundation: 2.4.0
|
||||||
path_provider_platform_interface: 2.1.2
|
path_provider_platform_interface: 2.1.2
|
||||||
|
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
|
plugin_platform_interface: 2.1.8
|
||||||
provider: 6.1.2
|
provider: 6.1.2
|
||||||
shared_preferences: 2.2.3
|
shared_preferences: 2.2.3
|
||||||
|
@ -98,8 +102,10 @@ dependencies:
|
||||||
cupertino_icons: ^1.0.0
|
cupertino_icons: ^1.0.0
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
|
http: 1.2.1
|
||||||
http: 1.2.1
|
http: 1.2.1
|
||||||
uuid: ^4.0.0
|
uuid: ^4.0.0
|
||||||
|
win32: 5.5.1
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_launcher_icons: 0.13.1
|
flutter_launcher_icons: 0.13.1
|
||||||
|
|
Loading…
Reference in New Issue