Add application source code and update project structure
This commit is contained in:
16
Application Product/Source/source/lib/widget/advice/advice_model.dart
Executable file
16
Application Product/Source/source/lib/widget/advice/advice_model.dart
Executable file
@@ -0,0 +1,16 @@
|
||||
import '/flutter_flow/flutter_flow_icon_button.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||
import 'advice_widget.dart' show AdviceWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class AdviceModel extends FlutterFlowModel<AdviceWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
241
Application Product/Source/source/lib/widget/advice/advice_widget.dart
Executable file
241
Application Product/Source/source/lib/widget/advice/advice_widget.dart
Executable file
@@ -0,0 +1,241 @@
|
||||
import '/flutter_flow/flutter_flow_icon_button.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'advice_model.dart';
|
||||
export 'advice_model.dart';
|
||||
|
||||
class AdviceWidget extends StatefulWidget {
|
||||
const AdviceWidget({super.key});
|
||||
|
||||
@override
|
||||
State<AdviceWidget> createState() => _AdviceWidgetState();
|
||||
}
|
||||
|
||||
class _AdviceWidgetState extends State<AdviceWidget> {
|
||||
late AdviceModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => AdviceModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
colors: [
|
||||
FlutterFlowTheme.of(context).primaryBackground,
|
||||
FlutterFlowTheme.of(context).secondaryBackground
|
||||
],
|
||||
stops: [0.0, 1.0],
|
||||
begin: AlignmentDirectional(0.0, -1.0),
|
||||
end: AlignmentDirectional(0, 1.0),
|
||||
),
|
||||
borderRadius: BorderRadius.circular(16.0),
|
||||
shape: BoxShape.rectangle,
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 1.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 12.0, 0.0, 0.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
child: Image.asset(
|
||||
'assets/images/images.jpg',
|
||||
width: 120.0,
|
||||
height: 120.0,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'USING SUNSCREEN',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.headlineSmall
|
||||
.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 8.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'SPF requirements 50+',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.labelLarge
|
||||
.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 12.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Stack(
|
||||
children: [
|
||||
FFButtonWidget(
|
||||
onPressed: () {
|
||||
print('followButton pressed ...');
|
||||
},
|
||||
text: 'Follow',
|
||||
options: FFButtonOptions(
|
||||
width: 90.0,
|
||||
height: 36.0,
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 0.0, 0.0, 0.0),
|
||||
iconPadding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 0.0, 0.0, 0.0),
|
||||
color: FlutterFlowTheme.of(context).primaryText,
|
||||
textStyle:
|
||||
FlutterFlowTheme.of(context).titleSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: FlutterFlowTheme.of(context)
|
||||
.secondaryBackground,
|
||||
fontSize: 14.0,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
elevation: 2.0,
|
||||
borderSide: BorderSide(
|
||||
color: Colors.transparent,
|
||||
width: 1.0,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(40.0),
|
||||
),
|
||||
),
|
||||
FFButtonWidget(
|
||||
onPressed: () {
|
||||
print('following pressed ...');
|
||||
},
|
||||
text: 'Following',
|
||||
options: FFButtonOptions(
|
||||
width: 90.0,
|
||||
height: 36.0,
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 0.0, 0.0, 0.0),
|
||||
iconPadding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 0.0, 0.0, 0.0),
|
||||
color:
|
||||
FlutterFlowTheme.of(context).secondaryBackground,
|
||||
textStyle:
|
||||
FlutterFlowTheme.of(context).bodyLarge.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
elevation: 0.0,
|
||||
borderSide: BorderSide(
|
||||
color:
|
||||
FlutterFlowTheme.of(context).primaryBackground,
|
||||
width: 2.0,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(40.0),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 0.0, 0.0),
|
||||
child: FlutterFlowIconButton(
|
||||
borderColor: Colors.transparent,
|
||||
borderRadius: 30.0,
|
||||
borderWidth: 1.0,
|
||||
buttonSize: 44.0,
|
||||
icon: Icon(
|
||||
Icons.notifications_none,
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
size: 24.0,
|
||||
),
|
||||
onPressed: () {
|
||||
print('IconButton pressed ...');
|
||||
},
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 0.0, 0.0),
|
||||
child: FlutterFlowIconButton(
|
||||
borderColor: Colors.transparent,
|
||||
borderRadius: 30.0,
|
||||
borderWidth: 1.0,
|
||||
buttonSize: 44.0,
|
||||
icon: Icon(
|
||||
Icons.settings_outlined,
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
size: 24.0,
|
||||
),
|
||||
onPressed: () {
|
||||
print('IconButton pressed ...');
|
||||
},
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 0.0, 0.0),
|
||||
child: FlutterFlowIconButton(
|
||||
borderColor: Colors.transparent,
|
||||
borderRadius: 30.0,
|
||||
borderWidth: 1.0,
|
||||
buttonSize: 44.0,
|
||||
icon: Icon(
|
||||
Icons.keyboard_control,
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
size: 24.0,
|
||||
),
|
||||
onPressed: () {
|
||||
print('IconButton pressed ...');
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
import '/flutter_flow/flutter_flow_icon_button.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||
import 'advice_copy_widget.dart' show AdviceCopyWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class AdviceCopyModel extends FlutterFlowModel<AdviceCopyWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
241
Application Product/Source/source/lib/widget/advice_copy/advice_copy_widget.dart
Executable file
241
Application Product/Source/source/lib/widget/advice_copy/advice_copy_widget.dart
Executable file
@@ -0,0 +1,241 @@
|
||||
import '/flutter_flow/flutter_flow_icon_button.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'advice_copy_model.dart';
|
||||
export 'advice_copy_model.dart';
|
||||
|
||||
class AdviceCopyWidget extends StatefulWidget {
|
||||
const AdviceCopyWidget({super.key});
|
||||
|
||||
@override
|
||||
State<AdviceCopyWidget> createState() => _AdviceCopyWidgetState();
|
||||
}
|
||||
|
||||
class _AdviceCopyWidgetState extends State<AdviceCopyWidget> {
|
||||
late AdviceCopyModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => AdviceCopyModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
gradient: LinearGradient(
|
||||
colors: [
|
||||
FlutterFlowTheme.of(context).primaryBackground,
|
||||
FlutterFlowTheme.of(context).secondaryBackground
|
||||
],
|
||||
stops: [0.0, 1.0],
|
||||
begin: AlignmentDirectional(0.0, -1.0),
|
||||
end: AlignmentDirectional(0, 1.0),
|
||||
),
|
||||
borderRadius: BorderRadius.circular(16.0),
|
||||
shape: BoxShape.rectangle,
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 1.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 12.0, 0.0, 0.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
child: Image.asset(
|
||||
'assets/images/How_to_wear_long_coat_for_men_titled_design_10.webp',
|
||||
width: 120.0,
|
||||
height: 120.0,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'WEAR A COAT',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.headlineSmall
|
||||
.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 8.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'Long-sleeved and thick',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.labelLarge
|
||||
.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 24.0, 0.0, 12.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Stack(
|
||||
children: [
|
||||
FFButtonWidget(
|
||||
onPressed: () {
|
||||
print('followButton pressed ...');
|
||||
},
|
||||
text: 'Follow',
|
||||
options: FFButtonOptions(
|
||||
width: 90.0,
|
||||
height: 36.0,
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 0.0, 0.0, 0.0),
|
||||
iconPadding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 0.0, 0.0, 0.0),
|
||||
color: FlutterFlowTheme.of(context).primaryText,
|
||||
textStyle:
|
||||
FlutterFlowTheme.of(context).titleSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: FlutterFlowTheme.of(context)
|
||||
.secondaryBackground,
|
||||
fontSize: 14.0,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
elevation: 2.0,
|
||||
borderSide: BorderSide(
|
||||
color: Colors.transparent,
|
||||
width: 1.0,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(40.0),
|
||||
),
|
||||
),
|
||||
FFButtonWidget(
|
||||
onPressed: () {
|
||||
print('following pressed ...');
|
||||
},
|
||||
text: 'Following',
|
||||
options: FFButtonOptions(
|
||||
width: 90.0,
|
||||
height: 36.0,
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 0.0, 0.0, 0.0),
|
||||
iconPadding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 0.0, 0.0, 0.0),
|
||||
color:
|
||||
FlutterFlowTheme.of(context).secondaryBackground,
|
||||
textStyle:
|
||||
FlutterFlowTheme.of(context).bodyLarge.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
elevation: 0.0,
|
||||
borderSide: BorderSide(
|
||||
color:
|
||||
FlutterFlowTheme.of(context).primaryBackground,
|
||||
width: 2.0,
|
||||
),
|
||||
borderRadius: BorderRadius.circular(40.0),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 0.0, 0.0),
|
||||
child: FlutterFlowIconButton(
|
||||
borderColor: Colors.transparent,
|
||||
borderRadius: 30.0,
|
||||
borderWidth: 1.0,
|
||||
buttonSize: 44.0,
|
||||
icon: Icon(
|
||||
Icons.notifications_none,
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
size: 24.0,
|
||||
),
|
||||
onPressed: () {
|
||||
print('IconButton pressed ...');
|
||||
},
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 0.0, 0.0),
|
||||
child: FlutterFlowIconButton(
|
||||
borderColor: Colors.transparent,
|
||||
borderRadius: 30.0,
|
||||
borderWidth: 1.0,
|
||||
buttonSize: 44.0,
|
||||
icon: Icon(
|
||||
Icons.settings_outlined,
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
size: 24.0,
|
||||
),
|
||||
onPressed: () {
|
||||
print('IconButton pressed ...');
|
||||
},
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 0.0, 0.0),
|
||||
child: FlutterFlowIconButton(
|
||||
borderColor: Colors.transparent,
|
||||
borderRadius: 30.0,
|
||||
borderWidth: 1.0,
|
||||
buttonSize: 44.0,
|
||||
icon: Icon(
|
||||
Icons.keyboard_control,
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
size: 24.0,
|
||||
),
|
||||
onPressed: () {
|
||||
print('IconButton pressed ...');
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
14
Application Product/Source/source/lib/widget/battery/battery_model.dart
Executable file
14
Application Product/Source/source/lib/widget/battery/battery_model.dart
Executable file
@@ -0,0 +1,14 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'battery_widget.dart' show BatteryWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class BatteryModel extends FlutterFlowModel<BatteryWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
155
Application Product/Source/source/lib/widget/battery/battery_widget.dart
Executable file
155
Application Product/Source/source/lib/widget/battery/battery_widget.dart
Executable file
@@ -0,0 +1,155 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'battery_model.dart';
|
||||
export 'battery_model.dart';
|
||||
|
||||
class BatteryWidget extends StatefulWidget {
|
||||
const BatteryWidget({super.key});
|
||||
|
||||
@override
|
||||
State<BatteryWidget> createState() => _BatteryWidgetState();
|
||||
}
|
||||
|
||||
class _BatteryWidgetState extends State<BatteryWidget> {
|
||||
late BatteryModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => BatteryModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: 349.0,
|
||||
height: 150.0,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 4.0,
|
||||
color: Color(0x33000000),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
2.0,
|
||||
),
|
||||
spreadRadius: 0.0,
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(16.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Battery Case',
|
||||
style:
|
||||
FlutterFlowTheme.of(context).headlineSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'PhoBroth\'s Case',
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Container(
|
||||
width: 60.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0x4DD23939),
|
||||
borderRadius: BorderRadius.circular(30.0),
|
||||
),
|
||||
child: Icon(
|
||||
Icons.battery_charging_full,
|
||||
color: Color(0xFFDD7272),
|
||||
size: 30.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Align(
|
||||
alignment: AlignmentDirectional(-1.0, 0.0),
|
||||
child: Text(
|
||||
'Charge Level',
|
||||
style: FlutterFlowTheme.of(context).bodyLarge.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Container(
|
||||
width: 200.0,
|
||||
height: 20.0,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).alternate,
|
||||
borderRadius: BorderRadius.circular(10.0),
|
||||
),
|
||||
child: Container(
|
||||
width: 160.0,
|
||||
height: 20.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD42525),
|
||||
borderRadius: BorderRadius.circular(10.0),
|
||||
),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'80%',
|
||||
style: FlutterFlowTheme.of(context).bodySmall.override(
|
||||
fontFamily: 'Inter',
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
].divide(SizedBox(width: 8.0)),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
14
Application Product/Source/source/lib/widget/box/box_model.dart
Executable file
14
Application Product/Source/source/lib/widget/box/box_model.dart
Executable file
@@ -0,0 +1,14 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'box_widget.dart' show BoxWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class BoxModel extends FlutterFlowModel<BoxWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
118
Application Product/Source/source/lib/widget/box/box_widget.dart
Executable file
118
Application Product/Source/source/lib/widget/box/box_widget.dart
Executable file
@@ -0,0 +1,118 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'box_model.dart';
|
||||
export 'box_model.dart';
|
||||
|
||||
class BoxWidget extends StatefulWidget {
|
||||
const BoxWidget({super.key});
|
||||
|
||||
@override
|
||||
State<BoxWidget> createState() => _BoxWidgetState();
|
||||
}
|
||||
|
||||
class _BoxWidgetState extends State<BoxWidget> {
|
||||
late BoxModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => BoxModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
borderRadius: BorderRadius.circular(14.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(12.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Container(
|
||||
width: 150.0,
|
||||
height: 47.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFD41818),
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(12.0, 12.0, 12.0, 12.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
'Call doctor',
|
||||
style:
|
||||
FlutterFlowTheme.of(context).headlineSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: FlutterFlowTheme.of(context).info,
|
||||
fontSize: 18.0,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: 150.0,
|
||||
height: 50.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFF64C4C),
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(12.0, 12.0, 12.0, 12.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
'Hopital',
|
||||
style:
|
||||
FlutterFlowTheme.of(context).headlineSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: FlutterFlowTheme.of(context).info,
|
||||
fontSize: 18.0,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
].divide(SizedBox(width: 16.0)),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
25
Application Product/Source/source/lib/widget/calendar/calendar_model.dart
Executable file
25
Application Product/Source/source/lib/widget/calendar/calendar_model.dart
Executable file
@@ -0,0 +1,25 @@
|
||||
import '/flutter_flow/flutter_flow_calendar.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'calendar_widget.dart' show CalendarWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class CalendarModel extends FlutterFlowModel<CalendarWidget> {
|
||||
/// State fields for stateful widgets in this component.
|
||||
|
||||
// State field(s) for Calendar widget.
|
||||
DateTimeRange? calendarSelectedDay;
|
||||
|
||||
@override
|
||||
void initState(BuildContext context) {
|
||||
calendarSelectedDay = DateTimeRange(
|
||||
start: DateTime.now().startOfDay,
|
||||
end: DateTime.now().endOfDay,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
72
Application Product/Source/source/lib/widget/calendar/calendar_widget.dart
Executable file
72
Application Product/Source/source/lib/widget/calendar/calendar_widget.dart
Executable file
@@ -0,0 +1,72 @@
|
||||
import '/flutter_flow/flutter_flow_calendar.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'calendar_model.dart';
|
||||
export 'calendar_model.dart';
|
||||
|
||||
class CalendarWidget extends StatefulWidget {
|
||||
const CalendarWidget({super.key});
|
||||
|
||||
@override
|
||||
State<CalendarWidget> createState() => _CalendarWidgetState();
|
||||
}
|
||||
|
||||
class _CalendarWidgetState extends State<CalendarWidget> {
|
||||
late CalendarModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => CalendarModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return FlutterFlowCalendar(
|
||||
color: FlutterFlowTheme.of(context).primary,
|
||||
iconColor: FlutterFlowTheme.of(context).secondaryText,
|
||||
weekFormat: false,
|
||||
weekStartsMonday: false,
|
||||
rowHeight: 48.0,
|
||||
onChange: (DateTimeRange? newSelectedDate) {
|
||||
safeSetState(() => _model.calendarSelectedDay = newSelectedDate);
|
||||
},
|
||||
titleStyle: FlutterFlowTheme.of(context).titleLarge.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
dayOfWeekStyle: FlutterFlowTheme.of(context).bodyLarge.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
dateStyle: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
selectedDateStyle: FlutterFlowTheme.of(context).titleSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
inactiveDateStyle: FlutterFlowTheme.of(context).labelMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'daily_trackers_widget.dart' show DailyTrackersWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class DailyTrackersModel extends FlutterFlowModel<DailyTrackersWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
@@ -0,0 +1,174 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'daily_trackers_model.dart';
|
||||
export 'daily_trackers_model.dart';
|
||||
|
||||
class DailyTrackersWidget extends StatefulWidget {
|
||||
const DailyTrackersWidget({super.key});
|
||||
|
||||
@override
|
||||
State<DailyTrackersWidget> createState() => _DailyTrackersWidgetState();
|
||||
}
|
||||
|
||||
class _DailyTrackersWidgetState extends State<DailyTrackersWidget> {
|
||||
late DailyTrackersModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => DailyTrackersModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
||||
),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(24.0, 16.0, 16.0, 0.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Hello,',
|
||||
style: FlutterFlowTheme.of(context).displaySmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
fontWeight: FontWeight.normal,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(2.0, 0.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'Phong',
|
||||
style: FlutterFlowTheme.of(context).displaySmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Color(0xFFBF0404),
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(24.0, 0.0, 24.0, 0.0),
|
||||
child: Text(
|
||||
'Below is the progress you have made this week.',
|
||||
style: FlutterFlowTheme.of(context).labelMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(20.0, 12.0, 20.0, 12.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
height: 110.0,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 4.0,
|
||||
color: Color(0x34090F13),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
2.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(12.0, 8.0, 12.0, 8.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 4.0),
|
||||
child: Text(
|
||||
'Goals',
|
||||
style: FlutterFlowTheme.of(context).labelSmall.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'UV exposure today',
|
||||
style: FlutterFlowTheme.of(context).titleLarge.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 4.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'Minitues',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.labelMedium
|
||||
.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
0.0, 4.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'30/20',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.headlineLarge
|
||||
.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import '/flutter_flow/flutter_flow_animations.dart';
|
||||
import '/flutter_flow/flutter_flow_charts.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'dart:math';
|
||||
import '/flutter_flow/random_data_util.dart' as random_data;
|
||||
import 'dashboard01_recent_activity_widget.dart'
|
||||
show Dashboard01RecentActivityWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:flutter_animate/flutter_animate.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class Dashboard01RecentActivityModel
|
||||
extends FlutterFlowModel<Dashboard01RecentActivityWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
@@ -0,0 +1,294 @@
|
||||
import '/flutter_flow/flutter_flow_animations.dart';
|
||||
import '/flutter_flow/flutter_flow_charts.dart';
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'dart:math';
|
||||
import '/flutter_flow/random_data_util.dart' as random_data;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/scheduler.dart';
|
||||
import 'package:flutter_animate/flutter_animate.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'dashboard01_recent_activity_model.dart';
|
||||
export 'dashboard01_recent_activity_model.dart';
|
||||
|
||||
class Dashboard01RecentActivityWidget extends StatefulWidget {
|
||||
const Dashboard01RecentActivityWidget({super.key});
|
||||
|
||||
@override
|
||||
State<Dashboard01RecentActivityWidget> createState() =>
|
||||
_Dashboard01RecentActivityWidgetState();
|
||||
}
|
||||
|
||||
class _Dashboard01RecentActivityWidgetState
|
||||
extends State<Dashboard01RecentActivityWidget>
|
||||
with TickerProviderStateMixin {
|
||||
late Dashboard01RecentActivityModel _model;
|
||||
|
||||
final animationsMap = <String, AnimationInfo>{};
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => Dashboard01RecentActivityModel());
|
||||
|
||||
animationsMap.addAll({
|
||||
'containerOnPageLoadAnimation': AnimationInfo(
|
||||
trigger: AnimationTrigger.onPageLoad,
|
||||
effectsBuilder: () => [
|
||||
FadeEffect(
|
||||
curve: Curves.easeInOut,
|
||||
delay: 0.0.ms,
|
||||
duration: 300.0.ms,
|
||||
begin: 0.0,
|
||||
end: 1.0,
|
||||
),
|
||||
MoveEffect(
|
||||
curve: Curves.easeInOut,
|
||||
delay: 0.0.ms,
|
||||
duration: 300.0.ms,
|
||||
begin: Offset(0.0, 20.0),
|
||||
end: Offset(0.0, 0.0),
|
||||
),
|
||||
TiltEffect(
|
||||
curve: Curves.easeInOut,
|
||||
delay: 0.0.ms,
|
||||
duration: 300.0.ms,
|
||||
begin: Offset(0.698, 0),
|
||||
end: Offset(0, 0),
|
||||
),
|
||||
],
|
||||
),
|
||||
});
|
||||
setupAnimations(
|
||||
animationsMap.values.where((anim) =>
|
||||
anim.trigger == AnimationTrigger.onActionTrigger ||
|
||||
!anim.applyInitialState),
|
||||
this,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 24.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 3.0,
|
||||
color: Color(0x33000000),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
1.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 12.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'Recent Activity',
|
||||
style: FlutterFlowTheme.of(context).headlineSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 4.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'Below is an overview of tasks & activity completed.',
|
||||
style: FlutterFlowTheme.of(context).labelMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 4.0, 16.0, 0.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
height: 32.0,
|
||||
constraints: BoxConstraints(
|
||||
maxHeight: 32.0,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
borderRadius: BorderRadius.circular(30.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.radio_button_checked_sharp,
|
||||
color: Color(0xFFEF3939),
|
||||
size: 20.0,
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
8.0, 0.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'UV',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.bodyMedium
|
||||
.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
height: 32.0,
|
||||
constraints: BoxConstraints(
|
||||
maxHeight: 32.0,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
borderRadius: BorderRadius.circular(30.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(8.0, 0.0, 8.0, 0.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Icon(
|
||||
Icons.radio_button_checked_sharp,
|
||||
color: Color(0xFFD2AE39),
|
||||
size: 20.0,
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(
|
||||
8.0, 0.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'Temperature',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.bodyMedium
|
||||
.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 0.0),
|
||||
child: ClipRRect(
|
||||
borderRadius: BorderRadius.circular(10.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
||||
borderRadius: BorderRadius.circular(10.0),
|
||||
),
|
||||
alignment: AlignmentDirectional(0.0, 0.0),
|
||||
child: Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(0.0, 16.0, 0.0, 0.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
height: 300.0,
|
||||
child: FlutterFlowLineChart(
|
||||
data: [
|
||||
FFLineChartData(
|
||||
xData: List.generate(
|
||||
random_data.randomInteger(5, 5),
|
||||
(index) => random_data.randomDate()),
|
||||
yData: List.generate(
|
||||
random_data.randomInteger(5, 5),
|
||||
(index) =>
|
||||
random_data.randomInteger(0, 1000)),
|
||||
settings: LineChartBarData(
|
||||
color: Color(0xFFEF3939),
|
||||
barWidth: 2.0,
|
||||
isCurved: true,
|
||||
preventCurveOverShooting: true,
|
||||
dotData: FlDotData(show: false),
|
||||
belowBarData: BarAreaData(
|
||||
show: true,
|
||||
color: Color(0x4CEF3939),
|
||||
),
|
||||
),
|
||||
),
|
||||
FFLineChartData(
|
||||
xData: List.generate(
|
||||
random_data.randomInteger(5, 5),
|
||||
(index) => random_data.randomInteger(0, 10)),
|
||||
yData: List.generate(
|
||||
random_data.randomInteger(5, 5),
|
||||
(index) => random_data.randomInteger(0, 10)),
|
||||
settings: LineChartBarData(
|
||||
color: Color(0xFFD2AE39),
|
||||
barWidth: 2.0,
|
||||
isCurved: true,
|
||||
preventCurveOverShooting: true,
|
||||
dotData: FlDotData(show: false),
|
||||
belowBarData: BarAreaData(
|
||||
show: true,
|
||||
color: Color(0x4CD2AE39),
|
||||
),
|
||||
),
|
||||
)
|
||||
],
|
||||
chartStylingInfo: ChartStylingInfo(
|
||||
backgroundColor:
|
||||
FlutterFlowTheme.of(context).primaryBackground,
|
||||
showBorder: false,
|
||||
),
|
||||
axisBounds: AxisBounds(),
|
||||
xAxisLabelInfo: AxisLabelInfo(),
|
||||
yAxisLabelInfo: AxisLabelInfo(),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
).animateOnPageLoad(animationsMap['containerOnPageLoadAnimation']!),
|
||||
);
|
||||
}
|
||||
}
|
||||
14
Application Product/Source/source/lib/widget/healthy/healthy_model.dart
Executable file
14
Application Product/Source/source/lib/widget/healthy/healthy_model.dart
Executable file
@@ -0,0 +1,14 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'healthy_widget.dart' show HealthyWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class HealthyModel extends FlutterFlowModel<HealthyWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
107
Application Product/Source/source/lib/widget/healthy/healthy_widget.dart
Executable file
107
Application Product/Source/source/lib/widget/healthy/healthy_widget.dart
Executable file
@@ -0,0 +1,107 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'healthy_model.dart';
|
||||
export 'healthy_model.dart';
|
||||
|
||||
class HealthyWidget extends StatefulWidget {
|
||||
const HealthyWidget({super.key});
|
||||
|
||||
@override
|
||||
State<HealthyWidget> createState() => _HealthyWidgetState();
|
||||
}
|
||||
|
||||
class _HealthyWidgetState extends State<HealthyWidget> {
|
||||
late HealthyModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => HealthyModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 12.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 7.0,
|
||||
color: Color(0x2F1D2429),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
3.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(12.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
child: Image.asset(
|
||||
'assets/images/ultraviolet_radiation_hero_image.jpg',
|
||||
width: double.infinity,
|
||||
height: 100.0,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 8.0, 0.0, 8.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Text(
|
||||
'UV Damage Skin cells',
|
||||
style: FlutterFlowTheme.of(context).bodyLarge.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
'UV rays can damage skin cells, leading to DNA mutations, which increase the risk of skin cancers such as melanoma',
|
||||
style: FlutterFlowTheme.of(context).labelMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'healthy_copy_widget.dart' show HealthyCopyWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class HealthyCopyModel extends FlutterFlowModel<HealthyCopyWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'healthy_copy_model.dart';
|
||||
export 'healthy_copy_model.dart';
|
||||
|
||||
class HealthyCopyWidget extends StatefulWidget {
|
||||
const HealthyCopyWidget({super.key});
|
||||
|
||||
@override
|
||||
State<HealthyCopyWidget> createState() => _HealthyCopyWidgetState();
|
||||
}
|
||||
|
||||
class _HealthyCopyWidgetState extends State<HealthyCopyWidget> {
|
||||
late HealthyCopyModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => HealthyCopyModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 12.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 7.0,
|
||||
color: Color(0x2F1D2429),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
3.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(12.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
child: Image.asset(
|
||||
'assets/images/sun-eye.jpg',
|
||||
width: double.infinity,
|
||||
height: 100.0,
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 8.0, 0.0, 8.0),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Text(
|
||||
'The Eyes',
|
||||
style: FlutterFlowTheme.of(context).bodyLarge.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Text(
|
||||
'UV exposure can contribute to macular degeneration, a leading cause of age-related blindness.',
|
||||
style: FlutterFlowTheme.of(context).labelMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'material_card2_widget.dart' show MaterialCard2Widget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class MaterialCard2Model extends FlutterFlowModel<MaterialCard2Widget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'material_card2_model.dart';
|
||||
export 'material_card2_model.dart';
|
||||
|
||||
class MaterialCard2Widget extends StatefulWidget {
|
||||
const MaterialCard2Widget({super.key});
|
||||
|
||||
@override
|
||||
State<MaterialCard2Widget> createState() => _MaterialCard2WidgetState();
|
||||
}
|
||||
|
||||
class _MaterialCard2WidgetState extends State<MaterialCard2Widget> {
|
||||
late MaterialCard2Model _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => MaterialCard2Model());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Align(
|
||||
alignment: AlignmentDirectional(0.0, 0.0),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 12.0, 16.0, 12.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
constraints: BoxConstraints(
|
||||
maxWidth: 530.0,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 3.0,
|
||||
color: Color(0x33000000),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
1.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
border: Border.all(
|
||||
color: FlutterFlowTheme.of(context).primaryBackground,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 0.0, 0.0, 0.0),
|
||||
child: Container(
|
||||
width: 44.0,
|
||||
height: 44.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFEF3939),
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
alignment: AlignmentDirectional(0.0, 0.0),
|
||||
child: Text(
|
||||
'AD',
|
||||
style: FlutterFlowTheme.of(context).titleMedium.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Colors.white,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
Expanded(
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(12.0, 0.0, 0.0, 0.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Our Advice ',
|
||||
style: FlutterFlowTheme.of(context).bodyLarge.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(0.0, 4.0, 0.0, 0.0),
|
||||
child: Text(
|
||||
'Pay Attention',
|
||||
style:
|
||||
FlutterFlowTheme.of(context).labelMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: 100.0,
|
||||
height: 80.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFF4D23D),
|
||||
borderRadius: BorderRadius.only(
|
||||
bottomLeft: Radius.circular(0.0),
|
||||
bottomRight: Radius.circular(12.0),
|
||||
topLeft: Radius.circular(0.0),
|
||||
topRight: Radius.circular(12.0),
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
14
Application Product/Source/source/lib/widget/team/team_model.dart
Executable file
14
Application Product/Source/source/lib/widget/team/team_model.dart
Executable file
@@ -0,0 +1,14 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'team_widget.dart' show TeamWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class TeamModel extends FlutterFlowModel<TeamWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
179
Application Product/Source/source/lib/widget/team/team_widget.dart
Executable file
179
Application Product/Source/source/lib/widget/team/team_widget.dart
Executable file
@@ -0,0 +1,179 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'team_model.dart';
|
||||
export 'team_model.dart';
|
||||
|
||||
class TeamWidget extends StatefulWidget {
|
||||
const TeamWidget({super.key});
|
||||
|
||||
@override
|
||||
State<TeamWidget> createState() => _TeamWidgetState();
|
||||
}
|
||||
|
||||
class _TeamWidgetState extends State<TeamWidget> {
|
||||
late TeamModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => TeamModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Align(
|
||||
alignment: AlignmentDirectional(0.0, 0.0),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
constraints: BoxConstraints(
|
||||
maxWidth: 1170.0,
|
||||
),
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 3.0,
|
||||
color: Color(0x33000000),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
1.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
border: Border.all(
|
||||
color: FlutterFlowTheme.of(context).alternate,
|
||||
width: 1.0,
|
||||
),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 12.0, 0.0),
|
||||
child: AnimatedDefaultTextStyle(
|
||||
style: FlutterFlowTheme.of(context).headlineMedium.override(
|
||||
fontFamily: 'Roboto',
|
||||
color: Colors.black,
|
||||
fontSize: 28.0,
|
||||
letterSpacing: 0.0,
|
||||
fontWeight: FontWeight.w600,
|
||||
),
|
||||
duration: Duration(milliseconds: 600),
|
||||
curve: Curves.easeInOut,
|
||||
child: Text(
|
||||
'Meet Our Team',
|
||||
),
|
||||
),
|
||||
),
|
||||
ListView(
|
||||
padding: EdgeInsets.zero,
|
||||
shrinkWrap: true,
|
||||
scrollDirection: Axis.vertical,
|
||||
children: [
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 1.0),
|
||||
child: Container(
|
||||
width: 100.0,
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 0.0,
|
||||
color: FlutterFlowTheme.of(context)
|
||||
.primaryBackground,
|
||||
offset: Offset(
|
||||
0.0,
|
||||
1.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 1.0),
|
||||
child: Container(
|
||||
width: 100.0,
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 0.0,
|
||||
color: FlutterFlowTheme.of(context)
|
||||
.primaryBackground,
|
||||
offset: Offset(
|
||||
0.0,
|
||||
1.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 1.0),
|
||||
child: Container(
|
||||
width: 100.0,
|
||||
decoration: BoxDecoration(
|
||||
color:
|
||||
FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 0.0,
|
||||
color: FlutterFlowTheme.of(context)
|
||||
.primaryBackground,
|
||||
offset: Offset(
|
||||
0.0,
|
||||
1.0,
|
||||
),
|
||||
)
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
ClipRRect(
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
child: Image.asset(
|
||||
'assets/images/White_Purple_Modern_Meet_Our_Team_LinkedIn_Post_(2).png',
|
||||
width: 1194.0,
|
||||
height: 620.0,
|
||||
fit: BoxFit.contain,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
19
Application Product/Source/source/lib/widget/temp/temp_model.dart
Executable file
19
Application Product/Source/source/lib/widget/temp/temp_model.dart
Executable file
@@ -0,0 +1,19 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'temp_widget.dart' show TempWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class TempModel extends FlutterFlowModel<TempWidget> {
|
||||
/// State fields for stateful widgets in this component.
|
||||
|
||||
// State field(s) for Slider widget.
|
||||
double? sliderValue;
|
||||
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
185
Application Product/Source/source/lib/widget/temp/temp_widget.dart
Executable file
185
Application Product/Source/source/lib/widget/temp/temp_widget.dart
Executable file
@@ -0,0 +1,185 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'temp_model.dart';
|
||||
export 'temp_model.dart';
|
||||
|
||||
class TempWidget extends StatefulWidget {
|
||||
const TempWidget({super.key});
|
||||
|
||||
@override
|
||||
State<TempWidget> createState() => _TempWidgetState();
|
||||
}
|
||||
|
||||
class _TempWidgetState extends State<TempWidget> {
|
||||
late TempModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => TempModel());
|
||||
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
|
||||
child: Container(
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 4.0,
|
||||
color: Color(0x33000000),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
2.0,
|
||||
),
|
||||
spreadRadius: 0.0,
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Heating',
|
||||
style:
|
||||
FlutterFlowTheme.of(context).headlineSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'Current temperature',
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Container(
|
||||
width: 60.0,
|
||||
height: 60.0,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFFEF3939),
|
||||
borderRadius: BorderRadius.circular(30.0),
|
||||
),
|
||||
child: Icon(
|
||||
Icons.thermostat,
|
||||
color: FlutterFlowTheme.of(context).info,
|
||||
size: 30.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'22°C',
|
||||
style: FlutterFlowTheme.of(context).displaySmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Color(0xFFA10808),
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
Text(
|
||||
'Target',
|
||||
style: FlutterFlowTheme.of(context).bodySmall.override(
|
||||
fontFamily: 'Inter',
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'24°C',
|
||||
style: FlutterFlowTheme.of(context).titleLarge.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Color(0xFFA10808),
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
].divide(SizedBox(width: 16.0)),
|
||||
),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
child: Slider(
|
||||
activeColor: Color(0xFFA10808),
|
||||
inactiveColor: Color(0x33000000),
|
||||
min: 15.0,
|
||||
max: 30.0,
|
||||
value: _model.sliderValue ??= 24.0,
|
||||
onChanged: (newValue) {
|
||||
newValue = double.parse(newValue.toStringAsFixed(4));
|
||||
safeSetState(() => _model.sliderValue = newValue);
|
||||
},
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'15°C',
|
||||
style: FlutterFlowTheme.of(context).bodySmall.override(
|
||||
fontFamily: 'Inter',
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'30°C',
|
||||
style: FlutterFlowTheme.of(context).bodySmall.override(
|
||||
fontFamily: 'Inter',
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
].divide(SizedBox(height: 16.0)),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'temp_and_u_v_widget.dart' show TempAndUVWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class TempAndUVModel extends FlutterFlowModel<TempAndUVWidget> {
|
||||
/// State fields for stateful widgets in this component.
|
||||
|
||||
// State field(s) for Slider widget.
|
||||
double? sliderValue1;
|
||||
// State field(s) for Slider widget.
|
||||
double? sliderValue2;
|
||||
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'temp_and_u_v_model.dart';
|
||||
export 'temp_and_u_v_model.dart';
|
||||
|
||||
class TempAndUVWidget extends StatefulWidget {
|
||||
const TempAndUVWidget({super.key});
|
||||
|
||||
@override
|
||||
State<TempAndUVWidget> createState() => _TempAndUVWidgetState();
|
||||
}
|
||||
|
||||
class _TempAndUVWidgetState extends State<TempAndUVWidget> {
|
||||
late TempAndUVModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => TempAndUVModel());
|
||||
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) => safeSetState(() {}));
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Opacity(
|
||||
opacity: 0.8,
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
|
||||
child: Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Color(0xFF710F0F),
|
||||
borderRadius: BorderRadius.circular(16.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsets.all(16.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'UV Index',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.headlineSmall
|
||||
.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Colors.white,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'Moderate',
|
||||
style:
|
||||
FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
color: Color(0xFF96989C),
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Text(
|
||||
'5.6',
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
color: Color(0xFFFDFAF9),
|
||||
fontSize: 29.0,
|
||||
letterSpacing: 0.0,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
child: Slider(
|
||||
activeColor: Color(0xFF00FFFD),
|
||||
inactiveColor: Color(0xFFE0E0E0),
|
||||
min: 0.0,
|
||||
max: 11.0,
|
||||
value: _model.sliderValue1 ??= 5.0,
|
||||
onChanged: (newValue) {
|
||||
newValue = double.parse(newValue.toStringAsFixed(4));
|
||||
safeSetState(() => _model.sliderValue1 = newValue);
|
||||
},
|
||||
),
|
||||
),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Temperature',
|
||||
style: FlutterFlowTheme.of(context)
|
||||
.headlineSmall
|
||||
.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Colors.white,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'Warm',
|
||||
style:
|
||||
FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
color: Color(0xFF9EA1A3),
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Text(
|
||||
'28°C',
|
||||
style:
|
||||
FlutterFlowTheme.of(context).headlineMedium.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Colors.white,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
child: Slider(
|
||||
activeColor: Color(0xFFFFC122),
|
||||
inactiveColor: Color(0xFFE0E0E0),
|
||||
min: -10.0,
|
||||
max: 40.0,
|
||||
value: _model.sliderValue2 ??= 28.0,
|
||||
onChanged: (newValue) {
|
||||
newValue = double.parse(newValue.toStringAsFixed(4));
|
||||
safeSetState(() => _model.sliderValue2 = newValue);
|
||||
},
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'28°C',
|
||||
style: FlutterFlowTheme.of(context).headlineMedium.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Colors.white,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
].divide(SizedBox(height: 16.0)),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||
import 'time_count_widget.dart' show TimeCountWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class TimeCountModel extends FlutterFlowModel<TimeCountWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
136
Application Product/Source/source/lib/widget/time_count/time_count_widget.dart
Executable file
136
Application Product/Source/source/lib/widget/time_count/time_count_widget.dart
Executable file
@@ -0,0 +1,136 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import '/flutter_flow/flutter_flow_widgets.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'time_count_model.dart';
|
||||
export 'time_count_model.dart';
|
||||
|
||||
class TimeCountWidget extends StatefulWidget {
|
||||
const TimeCountWidget({super.key});
|
||||
|
||||
@override
|
||||
State<TimeCountWidget> createState() => _TimeCountWidgetState();
|
||||
}
|
||||
|
||||
class _TimeCountWidgetState extends State<TimeCountWidget> {
|
||||
late TimeCountModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => TimeCountModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 4.0,
|
||||
color: Color(0x33000000),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
2.0,
|
||||
),
|
||||
spreadRadius: 0.0,
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(16.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Text(
|
||||
'30 Minutes',
|
||||
style: FlutterFlowTheme.of(context).headlineLarge.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: Color(0xFFEF3939),
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Icon(
|
||||
Icons.access_time,
|
||||
color: Color(0xFFEF3939),
|
||||
size: 32.0,
|
||||
),
|
||||
],
|
||||
),
|
||||
Row(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
'Monday',
|
||||
style: FlutterFlowTheme.of(context).bodyLarge.override(
|
||||
fontFamily: 'Inter',
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
Text(
|
||||
'May 15, 2023',
|
||||
style: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Inter',
|
||||
color: FlutterFlowTheme.of(context).secondaryText,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
FFButtonWidget(
|
||||
onPressed: () {
|
||||
print('Button pressed ...');
|
||||
},
|
||||
text: 'Dangerous!',
|
||||
options: FFButtonOptions(
|
||||
width: 120.0,
|
||||
height: 40.0,
|
||||
padding: EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
||||
iconPadding:
|
||||
EdgeInsetsDirectional.fromSTEB(0.0, 0.0, 0.0, 0.0),
|
||||
color: Color(0x63ECCC44),
|
||||
textStyle: FlutterFlowTheme.of(context).bodyMedium.override(
|
||||
fontFamily: 'Open Sans',
|
||||
color: Colors.black,
|
||||
fontSize: 17.0,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
elevation: 0.0,
|
||||
borderRadius: BorderRadius.circular(20.0),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
].divide(SizedBox(height: 12.0)),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
14
Application Product/Source/source/lib/widget/what/what_model.dart
Executable file
14
Application Product/Source/source/lib/widget/what/what_model.dart
Executable file
@@ -0,0 +1,14 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'what_widget.dart' show WhatWidget;
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class WhatModel extends FlutterFlowModel<WhatWidget> {
|
||||
@override
|
||||
void initState(BuildContext context) {}
|
||||
|
||||
@override
|
||||
void dispose() {}
|
||||
}
|
||||
78
Application Product/Source/source/lib/widget/what/what_widget.dart
Executable file
78
Application Product/Source/source/lib/widget/what/what_widget.dart
Executable file
@@ -0,0 +1,78 @@
|
||||
import '/flutter_flow/flutter_flow_theme.dart';
|
||||
import '/flutter_flow/flutter_flow_util.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:google_fonts/google_fonts.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'what_model.dart';
|
||||
export 'what_model.dart';
|
||||
|
||||
class WhatWidget extends StatefulWidget {
|
||||
const WhatWidget({super.key});
|
||||
|
||||
@override
|
||||
State<WhatWidget> createState() => _WhatWidgetState();
|
||||
}
|
||||
|
||||
class _WhatWidgetState extends State<WhatWidget> {
|
||||
late WhatModel _model;
|
||||
|
||||
@override
|
||||
void setState(VoidCallback callback) {
|
||||
super.setState(callback);
|
||||
_model.onUpdate();
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_model = createModel(context, () => WhatModel());
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
_model.maybeDispose();
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: 248.0,
|
||||
height: 100.0,
|
||||
decoration: BoxDecoration(
|
||||
color: FlutterFlowTheme.of(context).secondaryBackground,
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
blurRadius: 4.0,
|
||||
color: Color(0x33000000),
|
||||
offset: Offset(
|
||||
0.0,
|
||||
2.0,
|
||||
),
|
||||
spreadRadius: 0.0,
|
||||
)
|
||||
],
|
||||
borderRadius: BorderRadius.circular(8.0),
|
||||
),
|
||||
child: Padding(
|
||||
padding: EdgeInsetsDirectional.fromSTEB(16.0, 16.0, 16.0, 16.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Text(
|
||||
'WHAT TODAY ?',
|
||||
style: FlutterFlowTheme.of(context).headlineSmall.override(
|
||||
fontFamily: 'Inter Tight',
|
||||
color: FlutterFlowTheme.of(context).primaryText,
|
||||
letterSpacing: 0.0,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user