add opt modal and fix misc
This commit is contained in:
parent
6d79130aad
commit
5e96c8d5a8
|
@ -75,5 +75,5 @@ flutter {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
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 {
|
plugins {
|
||||||
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
|
||||||
id "com.android.application" version "7.3.0" apply false
|
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>
|
<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>"; };
|
6436409E27A31CDB00820AF7 /* 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>"; };
|
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>"; };
|
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 */,
|
6436409E27A31CDB00820AF7 /* pt */,
|
||||||
6436409527A31CDA00820AF7 /* en */,
|
6436409C27A31CDE00820AF7 /* 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,252 +49,261 @@ 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: Column(
|
child: Padding(
|
||||||
mainAxisSize: MainAxisSize.max,
|
padding: const EdgeInsets.all(4.0),
|
||||||
children: [
|
child: Column(
|
||||||
Row(
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisSize: MainAxisSize.max,
|
children: [
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
Row(
|
||||||
children: [
|
mainAxisSize: MainAxisSize.max,
|
||||||
Padding(
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
|
children: [
|
||||||
child: Icon(
|
Padding(
|
||||||
Icons.filter_list,
|
padding:
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
const EdgeInsetsDirectional.fromSTEB(0.0, 10.0, 0.0, 0.0),
|
||||||
size: 24.0,
|
child: Icon(
|
||||||
),
|
Icons.filter_list,
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
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(
|
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
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),
|
|
||||||
),
|
),
|
||||||
),
|
Padding(
|
||||||
Column(
|
padding: const EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0),
|
||||||
mainAxisSize: MainAxisSize.max,
|
child: TextFormField(
|
||||||
children: [
|
controller: _model.textController,
|
||||||
Row(
|
focusNode: _model.textFieldFocusNode,
|
||||||
mainAxisSize: MainAxisSize.max,
|
autofocus: true,
|
||||||
children: [
|
obscureText: false,
|
||||||
Text(
|
decoration: InputDecoration(
|
||||||
FFLocalizations.of(context).getText(
|
isDense: true,
|
||||||
'l7tw8b92' /* Tipo de Pessoa */,
|
labelText: FFLocalizations.of(context).getText(
|
||||||
),
|
'0enrtljz' /* Pesquise aqui..... */,
|
||||||
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)),
|
labelStyle: FlutterFlowTheme.of(context)
|
||||||
),
|
.labelMedium
|
||||||
Theme(
|
.override(
|
||||||
data: ThemeData(
|
fontFamily:
|
||||||
checkboxTheme: CheckboxThemeData(
|
FlutterFlowTheme.of(context).labelMediumFamily,
|
||||||
visualDensity: VisualDensity.compact,
|
color: FlutterFlowTheme.of(context).primaryText,
|
||||||
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
letterSpacing: 0.0,
|
||||||
shape: RoundedRectangleBorder(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
borderRadius: BorderRadius.circular(25),
|
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(
|
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
value: _model.checkboxListTileValue1 ??= true,
|
fontFamily:
|
||||||
onChanged: (newValue) async {
|
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||||
setState(() => _model.checkboxListTileValue1 = newValue!);
|
letterSpacing: 0.0,
|
||||||
},
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
title: Text(
|
FlutterFlowTheme.of(context).bodyMediumFamily),
|
||||||
FFLocalizations.of(context).getText(
|
|
||||||
'dkvmdln1' /* Title */,
|
|
||||||
),
|
),
|
||||||
style: FlutterFlowTheme.of(context).titleLarge.override(
|
validator:
|
||||||
fontFamily:
|
_model.textControllerValidator.asValidator(context),
|
||||||
FlutterFlowTheme.of(context).titleLargeFamily,
|
),
|
||||||
fontSize: 10.0,
|
),
|
||||||
letterSpacing: 0.0,
|
Column(
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
mainAxisSize: MainAxisSize.max,
|
||||||
FlutterFlowTheme.of(context).titleLargeFamily),
|
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,
|
activeColor: FlutterFlowTheme.of(context).primary,
|
||||||
checkColor: FlutterFlowTheme.of(context).info,
|
checkColor: FlutterFlowTheme.of(context).info,
|
||||||
dense: true,
|
checkboxBorderColor:
|
||||||
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:
|
|
||||||
FlutterFlowTheme.of(context).secondaryText,
|
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,
|
.addToStart(const SizedBox(height: 10.0))
|
||||||
onChanged: (newValue) async {
|
.addToEnd(const SizedBox(height: 10.0)),
|
||||||
setState(() => _model.checkboxListTileValue2 = newValue!);
|
),
|
||||||
},
|
Column(
|
||||||
title: Text(
|
mainAxisSize: MainAxisSize.max,
|
||||||
FFLocalizations.of(context).getText(
|
children: [
|
||||||
'qos4r9fy' /* Title */,
|
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(
|
].addToStart(const SizedBox(width: 24.0)),
|
||||||
fontFamily:
|
),
|
||||||
FlutterFlowTheme.of(context).titleLargeFamily,
|
FlutterFlowCheckboxGroup(
|
||||||
fontSize: 10.0,
|
options: [
|
||||||
letterSpacing: 0.0,
|
FFLocalizations.of(context).getText(
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
'580z80ct' /* Entrada */,
|
||||||
FlutterFlowTheme.of(context).titleLargeFamily),
|
),
|
||||||
),
|
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,
|
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))
|
.addToEnd(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,
|
|
||||||
),
|
),
|
||||||
options: FFButtonOptions(
|
FFButtonWidget(
|
||||||
height: 40.0,
|
onPressed: () {
|
||||||
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
|
print('Button pressed ...');
|
||||||
iconPadding: const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
},
|
||||||
color: FlutterFlowTheme.of(context).primary,
|
text: FFLocalizations.of(context).getText(
|
||||||
textStyle: FlutterFlowTheme.of(context).titleSmall.override(
|
'88kshkph' /* Salvar */,
|
||||||
fontFamily: FlutterFlowTheme.of(context).titleSmallFamily,
|
),
|
||||||
color: Colors.white,
|
options: FFButtonOptions(
|
||||||
letterSpacing: 0.0,
|
height: 40.0,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
padding: const EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
|
||||||
FlutterFlowTheme.of(context).titleSmallFamily),
|
iconPadding:
|
||||||
),
|
const EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
||||||
elevation: 3.0,
|
color: FlutterFlowTheme.of(context).primary,
|
||||||
borderSide: const BorderSide(
|
textStyle: FlutterFlowTheme.of(context).titleSmall.override(
|
||||||
color: Colors.transparent,
|
fontFamily:
|
||||||
width: 1.0,
|
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))
|
||||||
.divide(const SizedBox(height: 10.0))
|
.addToStart(const SizedBox(height: 10.0))
|
||||||
.addToStart(const SizedBox(height: 10.0))
|
.addToEnd(const SizedBox(height: 10.0)),
|
||||||
.addToEnd(const SizedBox(height: 10.0)),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -67,80 +67,93 @@ 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: Container(
|
child: InkWell(
|
||||||
height: 400.0,
|
splashColor: Colors.transparent,
|
||||||
decoration: BoxDecoration(
|
focusColor: Colors.transparent,
|
||||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
hoverColor: Colors.transparent,
|
||||||
borderRadius: const BorderRadius.only(
|
highlightColor: Colors.transparent,
|
||||||
bottomLeft: Radius.circular(10.0),
|
onTap: () async {
|
||||||
bottomRight: Radius.circular(10.0),
|
Navigator.pop(context);
|
||||||
topLeft: Radius.circular(10.0),
|
},
|
||||||
topRight: Radius.circular(10.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: Column(
|
||||||
child: Column(
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
children: [
|
||||||
children: [
|
Stack(
|
||||||
Stack(
|
children: [
|
||||||
children: [
|
Align(
|
||||||
Align(
|
alignment: const AlignmentDirectional(0.0, 0.0),
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
child: Icon(
|
||||||
child: Icon(
|
Icons.circle_outlined,
|
||||||
Icons.circle_outlined,
|
color: FlutterFlowTheme.of(context).error,
|
||||||
color: FlutterFlowTheme.of(context).error,
|
size: 200.0,
|
||||||
size: 200.0,
|
),
|
||||||
),
|
),
|
||||||
),
|
Align(
|
||||||
Align(
|
alignment: const AlignmentDirectional(0.0, 0.0),
|
||||||
alignment: const AlignmentDirectional(0.0, 0.0),
|
child: Icon(
|
||||||
child: Icon(
|
Icons.close_outlined,
|
||||||
Icons.close_outlined,
|
color: FlutterFlowTheme.of(context).error,
|
||||||
color: FlutterFlowTheme.of(context).error,
|
size: 200.0,
|
||||||
size: 200.0,
|
),
|
||||||
),
|
),
|
||||||
),
|
],
|
||||||
],
|
).animateOnPageLoad(
|
||||||
).animateOnPageLoad(animationsMap['stackOnPageLoadAnimation']!),
|
animationsMap['stackOnPageLoadAnimation']!),
|
||||||
Column(
|
Column(
|
||||||
mainAxisSize: MainAxisSize.max,
|
mainAxisSize: MainAxisSize.max,
|
||||||
mainAxisAlignment: MainAxisAlignment.start,
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
FFLocalizations.of(context).getText(
|
FFLocalizations.of(context).getText(
|
||||||
'e58xxxiq' /* ERRO */,
|
'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',
|
|
||||||
),
|
),
|
||||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||||
fontFamily:
|
fontFamily:
|
||||||
FlutterFlowTheme.of(context).bodyMediumFamily,
|
FlutterFlowTheme.of(context).bodyMediumFamily,
|
||||||
|
fontSize: 20.0,
|
||||||
letterSpacing: 0.0,
|
letterSpacing: 0.0,
|
||||||
|
fontWeight: FontWeight.bold,
|
||||||
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
useGoogleFonts: GoogleFonts.asMap().containsKey(
|
||||||
FlutterFlowTheme.of(context)
|
FlutterFlowTheme.of(context)
|
||||||
.bodyMediumFamily),
|
.bodyMediumFamily),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
Padding(
|
||||||
].addToStart(const SizedBox(height: 50.0)),
|
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>{
|
extra: <String, dynamic>{
|
||||||
kTransitionInfoKey: const TransitionInfo(
|
kTransitionInfoKey: const TransitionInfo(
|
||||||
hasTransition: true,
|
hasTransition: true,
|
||||||
transitionType: PageTransitionType.scale,
|
transitionType: PageTransitionType.fade,
|
||||||
alignment: Alignment.bottomCenter,
|
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
@ -499,26 +499,19 @@ 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 ==
|
await action_blocks
|
||||||
'') &&
|
.singInLoginAction(
|
||||||
(_model.passwordTextController
|
context,
|
||||||
.text ==
|
emailAdress: _model
|
||||||
''))
|
.emailAddressTextController
|
||||||
? null
|
.text,
|
||||||
: () async {
|
password: _model
|
||||||
await action_blocks
|
.passwordTextController
|
||||||
.singInLoginAction(
|
.text,
|
||||||
context,
|
);
|
||||||
emailAdress: _model
|
setState(() {});
|
||||||
.emailAddressTextController
|
},
|
||||||
.text,
|
|
||||||
password: _model
|
|
||||||
.passwordTextController
|
|
||||||
.text,
|
|
||||||
);
|
|
||||||
setState(() {});
|
|
||||||
},
|
|
||||||
text: FFLocalizations.of(
|
text: FFLocalizations.of(
|
||||||
context)
|
context)
|
||||||
.getText(
|
.getText(
|
||||||
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
|
@ -85,13 +85,13 @@ class _MyAppState extends State<MyApp> {
|
||||||
theme: ThemeData(
|
theme: ThemeData(
|
||||||
brightness: Brightness.light,
|
brightness: Brightness.light,
|
||||||
scrollbarTheme: ScrollbarThemeData(
|
scrollbarTheme: ScrollbarThemeData(
|
||||||
thumbVisibility: MaterialStateProperty.all(false),
|
thumbVisibility: WidgetStateProperty.all(false),
|
||||||
interactive: false,
|
interactive: false,
|
||||||
thumbColor: MaterialStateProperty.resolveWith((states) {
|
thumbColor: WidgetStateProperty.resolveWith((states) {
|
||||||
if (states.contains(MaterialState.dragged)) {
|
if (states.contains(WidgetState.dragged)) {
|
||||||
return const Color(0xff1aab5f);
|
return const Color(0xff1aab5f);
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.hovered)) {
|
if (states.contains(WidgetState.hovered)) {
|
||||||
return const Color(0xff1aab5f);
|
return const Color(0xff1aab5f);
|
||||||
}
|
}
|
||||||
return const Color(0xff1aab5f);
|
return const Color(0xff1aab5f);
|
||||||
|
@ -101,13 +101,13 @@ class _MyAppState extends State<MyApp> {
|
||||||
darkTheme: ThemeData(
|
darkTheme: ThemeData(
|
||||||
brightness: Brightness.dark,
|
brightness: Brightness.dark,
|
||||||
scrollbarTheme: ScrollbarThemeData(
|
scrollbarTheme: ScrollbarThemeData(
|
||||||
thumbVisibility: MaterialStateProperty.all(false),
|
thumbVisibility: WidgetStateProperty.all(false),
|
||||||
interactive: false,
|
interactive: false,
|
||||||
thumbColor: MaterialStateProperty.resolveWith((states) {
|
thumbColor: WidgetStateProperty.resolveWith((states) {
|
||||||
if (states.contains(MaterialState.dragged)) {
|
if (states.contains(WidgetState.dragged)) {
|
||||||
return const Color(0xff1aab5f);
|
return const Color(0xff1aab5f);
|
||||||
}
|
}
|
||||||
if (states.contains(MaterialState.hovered)) {
|
if (states.contains(WidgetState.hovered)) {
|
||||||
return const Color(0xff1aab5f);
|
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
55
pubspec.yaml
55
pubspec.yaml
|
@ -29,21 +29,21 @@ dependencies:
|
||||||
cached_network_image: 3.3.1
|
cached_network_image: 3.3.1
|
||||||
collection: 1.18.0
|
collection: 1.18.0
|
||||||
crop_your_image: 1.0.0
|
crop_your_image: 1.0.0
|
||||||
csv: 5.0.1
|
csv: 6.0.0
|
||||||
device_info_plus: 9.1.2
|
device_info_plus: 9.1.2
|
||||||
dropdown_button2: 2.3.9
|
dropdown_button2: 2.3.9
|
||||||
easy_debounce: 2.0.1
|
easy_debounce: 2.0.1
|
||||||
equatable: 2.0.5
|
equatable: 2.0.5
|
||||||
file_picker: 6.1.1
|
file_picker: 8.0.3
|
||||||
flutter_animate: 4.1.1+1
|
flutter_animate: 4.5.0
|
||||||
flutter_cache_manager: 3.3.1
|
flutter_cache_manager: 3.3.1
|
||||||
flutter_plugin_android_lifecycle: 2.0.17
|
flutter_plugin_android_lifecycle: 2.0.20
|
||||||
flutter_secure_storage: 8.0.0
|
flutter_secure_storage: 9.2.2
|
||||||
flutter_secure_storage_linux: 1.2.0
|
flutter_secure_storage_linux: 1.2.1
|
||||||
flutter_secure_storage_macos: 3.0.1
|
flutter_secure_storage_macos: 3.1.2
|
||||||
flutter_secure_storage_platform_interface: 1.0.2
|
flutter_secure_storage_platform_interface: 1.1.2
|
||||||
flutter_secure_storage_web: 1.1.2
|
flutter_secure_storage_web: 1.2.1
|
||||||
flutter_secure_storage_windows: 2.1.1
|
flutter_secure_storage_windows: 3.1.2
|
||||||
flutter_spinkit: 5.2.0
|
flutter_spinkit: 5.2.0
|
||||||
flutter_staggered_grid_view: 0.7.0
|
flutter_staggered_grid_view: 0.7.0
|
||||||
flutter_svg: 2.0.9
|
flutter_svg: 2.0.9
|
||||||
|
@ -51,22 +51,22 @@ dependencies:
|
||||||
from_css_color: 2.0.0
|
from_css_color: 2.0.0
|
||||||
go_router: 12.1.3
|
go_router: 12.1.3
|
||||||
google_fonts: 6.1.0
|
google_fonts: 6.1.0
|
||||||
http: 1.2.0
|
http: 1.2.1
|
||||||
image_picker: 1.0.4
|
image_picker: 1.0.4
|
||||||
image_picker_android: 0.8.8
|
image_picker_android: 0.8.8
|
||||||
image_picker_for_web: 3.0.1
|
image_picker_for_web: 3.0.1
|
||||||
image_picker_ios: 0.8.8+2
|
image_picker_ios: 0.8.8+2
|
||||||
image_picker_platform_interface: 2.9.1
|
image_picker_platform_interface: 2.9.1
|
||||||
intl: 0.18.1
|
intl: 0.19.0
|
||||||
json_path: 0.6.2
|
json_path: 0.7.2
|
||||||
mime_type: 1.0.0
|
mime_type: 1.0.0
|
||||||
page_transition: 2.1.0
|
page_transition: 2.1.0
|
||||||
path_provider: 2.0.14
|
path_provider: 2.1.3
|
||||||
path_provider_android: 2.0.25
|
path_provider_android: 2.2.5
|
||||||
path_provider_foundation: 2.2.2
|
path_provider_foundation: 2.4.0
|
||||||
path_provider_platform_interface: 2.0.6
|
path_provider_platform_interface: 2.1.2
|
||||||
plugin_platform_interface: 2.1.8
|
plugin_platform_interface: 2.1.8
|
||||||
provider: 6.0.5
|
provider: 6.1.2
|
||||||
shared_preferences: 2.2.2
|
shared_preferences: 2.2.2
|
||||||
shared_preferences_android: 2.2.1
|
shared_preferences_android: 2.2.1
|
||||||
shared_preferences_foundation: 2.3.4
|
shared_preferences_foundation: 2.3.4
|
||||||
|
@ -74,16 +74,16 @@ dependencies:
|
||||||
shared_preferences_web: 2.2.1
|
shared_preferences_web: 2.2.1
|
||||||
sqflite: 2.2.6
|
sqflite: 2.2.6
|
||||||
synchronized: 3.1.0
|
synchronized: 3.1.0
|
||||||
timeago: 3.2.2
|
timeago: 3.6.1
|
||||||
url_launcher: 6.2.5
|
url_launcher: 6.2.5
|
||||||
url_launcher_android: 6.3.0
|
url_launcher_android: 6.3.0
|
||||||
url_launcher_ios: 6.2.5
|
url_launcher_ios: 6.2.5
|
||||||
url_launcher_platform_interface: 2.3.2
|
url_launcher_platform_interface: 2.3.2
|
||||||
video_player: 2.8.1
|
video_player: 2.8.6
|
||||||
video_player_android: 2.4.10
|
video_player_android: 2.4.16
|
||||||
video_player_avfoundation: 2.5.1
|
video_player_avfoundation: 2.6.1
|
||||||
video_player_platform_interface: 6.2.1
|
video_player_platform_interface: 6.2.2
|
||||||
video_player_web: 2.1.2
|
video_player_web: 2.3.1
|
||||||
|
|
||||||
|
|
||||||
# The following adds the Cupertino Icons font to your application.
|
# The following adds the Cupertino Icons font to your application.
|
||||||
|
@ -91,14 +91,15 @@ dependencies:
|
||||||
cupertino_icons: ^1.0.0
|
cupertino_icons: ^1.0.0
|
||||||
|
|
||||||
dependency_overrides:
|
dependency_overrides:
|
||||||
http: 1.2.0
|
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
|
||||||
flutter_lints: 3.0.0
|
flutter_lints: 4.0.0
|
||||||
image: 4.0.17
|
image: 4.0.17
|
||||||
lints: 3.0.0
|
lints: 4.0.0
|
||||||
|
|
||||||
flutter_test:
|
flutter_test:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
|
|
Loading…
Reference in New Issue