summaryrefslogtreecommitdiffstats
path: root/lib/presentation/screens/hvac/widgets/climate_controls.dart
diff options
context:
space:
mode:
authorLisandro Pérez Meyer <lpmeyer@ics.com>2023-11-14 17:20:58 -0300
committerLisandro Pérez Meyer <lpmeyer@ics.com>2023-11-14 17:31:12 -0300
commit70ec8a79a121471a004e7e4c23157d10157e136f (patch)
treea4f9c0a4fac4e4274ec4324a289b6ef62e1c5653 /lib/presentation/screens/hvac/widgets/climate_controls.dart
Initial cleanup push.
Based on agldemo2024 on commit 2a5dc04d801134338150c3f6afc67eaa65599763 Disable device preview. Disable Lottie animation. The original commit was b3c493c340fcb4bb0a937692838fc830bec3e9ea but I am just keeping this change, because the json did not really needed to change. I think. Signed-off-by: Lisandro Pérez Meyer <lpmeyer@ics.com>
Diffstat (limited to 'lib/presentation/screens/hvac/widgets/climate_controls.dart')
-rw-r--r--lib/presentation/screens/hvac/widgets/climate_controls.dart80
1 files changed, 80 insertions, 0 deletions
diff --git a/lib/presentation/screens/hvac/widgets/climate_controls.dart b/lib/presentation/screens/hvac/widgets/climate_controls.dart
new file mode 100644
index 0000000..c7dcd52
--- /dev/null
+++ b/lib/presentation/screens/hvac/widgets/climate_controls.dart
@@ -0,0 +1,80 @@
+import 'package:flutter_ics_homescreen/export.dart';
+
+class ClimateControls extends StatefulWidget {
+ const ClimateControls(
+ {super.key,
+ required this.child,
+ required this.isSelected,
+ required this.onPressed});
+ final Widget child;
+ final bool isSelected;
+ final VoidCallback onPressed;
+
+ @override
+ State<ClimateControls> createState() => _ClimateControlsState();
+}
+
+class _ClimateControlsState extends State<ClimateControls> {
+ @override
+ Widget build(BuildContext context) {
+ Size size = MediaQuery.sizeOf(context);
+
+ return Container(
+ margin: const EdgeInsets.all(8),
+ width: size.width * 0.23,
+ height: size.height * 0.07,
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(2),
+ boxShadow: [
+ BoxShadow(
+ offset: Offset(
+ widget.isSelected ? 0 : 1, widget.isSelected ? 4 : 2),
+ blurRadius: widget.isSelected ? 4 : 3,
+ spreadRadius: 0,
+ color: Colors.black.withOpacity(widget.isSelected ? 0.25 : 0.7))
+ ],
+ gradient: LinearGradient(
+ colors: widget.isSelected
+ ? [
+ AGLDemoColors.periwinkleColor,
+ AGLDemoColors.periwinkleColor.withOpacity(0.25)
+ ]
+ : [
+ AGLDemoColors.neonBlueColor,
+ AGLDemoColors.neonBlueColor.withOpacity(0.2)
+ ],
+ begin: Alignment.centerLeft,
+ end: Alignment.centerRight),
+ border: Border.all(color: Colors.white12)),
+ child: Container(
+ padding: const EdgeInsets.all(2),
+ decoration: BoxDecoration(
+ borderRadius: BorderRadius.circular(2),
+ boxShadow: [
+ BoxShadow(
+ offset: Offset(
+ widget.isSelected ? 0 : 1, widget.isSelected ? 4 : 2),
+ blurRadius: widget.isSelected ? 4 : 3,
+ spreadRadius: 0,
+ color:
+ Colors.black.withOpacity(widget.isSelected ? 0.25 : 0.7))
+ ],
+ color: widget.isSelected
+ ? AGLDemoColors.neonBlueColor
+ : AGLDemoColors.buttonFillEnabledColor,
+ border: Border.all(color: Colors.white12)),
+ child: Material(
+ color: Colors.transparent,
+ child: InkWell(
+ onTap: widget.onPressed,
+ child: Center(
+ child: Padding(
+ padding: const EdgeInsets.symmetric(vertical: 8),
+ child: widget.child,
+ )),
+ ),
+ ),
+ ),
+ );
+ }
+}