From cc5f107ccb00bcc510d186ae49269b20a34dc770 Mon Sep 17 00:00:00 2001 From: Faris Armoush Date: Wed, 28 May 2025 16:37:34 +0300 Subject: [PATCH] Extracted `AqiHumidityAndTemperature` into its own widget and file. --- .../air_quality/views/air_quality_view.dart | 7 +-- .../air_quality_end_side_gauge_and_info.dart | 46 ++--------------- .../widgets/aqi_humidity_and_temperature.dart | 51 +++++++++++++++++++ 3 files changed, 56 insertions(+), 48 deletions(-) create mode 100644 lib/pages/analytics/modules/air_quality/widgets/aqi_humidity_and_temperature.dart diff --git a/lib/pages/analytics/modules/air_quality/views/air_quality_view.dart b/lib/pages/analytics/modules/air_quality/views/air_quality_view.dart index c24922cf..a7f1893f 100644 --- a/lib/pages/analytics/modules/air_quality/views/air_quality_view.dart +++ b/lib/pages/analytics/modules/air_quality/views/air_quality_view.dart @@ -41,7 +41,7 @@ class AirQualityView extends StatelessWidget { spacing: 32, children: [ Expanded( - flex: 5, + flex: 10, child: Column( spacing: 20, children: [ @@ -50,10 +50,7 @@ class AirQualityView extends StatelessWidget { ], ), ), - Expanded( - flex: 3, - child: AirQualityEndSideWidget(), - ), + Expanded(flex: 5, child: AirQualityEndSideWidget()), ], ), ), diff --git a/lib/pages/analytics/modules/air_quality/widgets/air_quality_end_side_gauge_and_info.dart b/lib/pages/analytics/modules/air_quality/widgets/air_quality_end_side_gauge_and_info.dart index 1e669b13..06a33c26 100644 --- a/lib/pages/analytics/modules/air_quality/widgets/air_quality_end_side_gauge_and_info.dart +++ b/lib/pages/analytics/modules/air_quality/widgets/air_quality_end_side_gauge_and_info.dart @@ -1,8 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:flutter_svg/flutter_svg.dart'; import 'package:syncrow_web/pages/analytics/modules/air_quality/widgets/aqi_gauge.dart'; +import 'package:syncrow_web/pages/analytics/modules/air_quality/widgets/aqi_humidity_and_temperature.dart'; import 'package:syncrow_web/utils/color_manager.dart'; -import 'package:syncrow_web/utils/constants/assets.dart'; import 'package:syncrow_web/utils/extension/build_context_x.dart'; class AirQualityEndSideGaugeAndInfo extends StatelessWidget { @@ -19,9 +18,7 @@ class AirQualityEndSideGaugeAndInfo extends StatelessWidget { child: Row( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, - children: [ - Expanded(flex: 1, child: AqiGauge(aqi: 200)), - ], + children: [Expanded(child: AqiGauge(aqi: 200))], ), ), const Spacer(), @@ -57,44 +54,7 @@ class AirQualityEndSideGaugeAndInfo extends StatelessWidget { ), ), const Spacer(), - FittedBox( - fit: BoxFit.scaleDown, - alignment: AlignmentDirectional.centerStart, - child: DefaultTextStyle( - style: context.textTheme.bodySmall!.copyWith( - color: ColorsManager.textPrimaryColor, - fontWeight: FontWeight.w400, - fontSize: 12, - ), - child: Row( - children: [ - SvgPicture.asset( - Assets.temperatureAqiSidebar, - height: 12, - width: 12, - colorFilter: const ColorFilter.mode( - ColorsManager.textPrimaryColor, - BlendMode.srcIn, - ), - ), - const SizedBox(width: 4), - const Text('30°C'), - const SizedBox(width: 10), - SvgPicture.asset( - Assets.humidityAqiSidebar, - height: 12, - width: 12, - colorFilter: const ColorFilter.mode( - ColorsManager.textPrimaryColor, - BlendMode.srcIn, - ), - ), - const SizedBox(width: 4), - const Text('30°C'), - ], - ), - ), - ), + const AqiHumidityAndTemperature(), ], ), ), diff --git a/lib/pages/analytics/modules/air_quality/widgets/aqi_humidity_and_temperature.dart b/lib/pages/analytics/modules/air_quality/widgets/aqi_humidity_and_temperature.dart new file mode 100644 index 00000000..e8a3f7b4 --- /dev/null +++ b/lib/pages/analytics/modules/air_quality/widgets/aqi_humidity_and_temperature.dart @@ -0,0 +1,51 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:syncrow_web/utils/color_manager.dart'; +import 'package:syncrow_web/utils/constants/assets.dart'; +import 'package:syncrow_web/utils/extension/build_context_x.dart'; + +class AqiHumidityAndTemperature extends StatelessWidget { + const AqiHumidityAndTemperature({super.key}); + + static const iconSize = 12.0; + static const colorFilter = ColorFilter.mode( + ColorsManager.textPrimaryColor, + BlendMode.srcIn, + ); + + @override + Widget build(BuildContext context) { + return FittedBox( + fit: BoxFit.scaleDown, + alignment: AlignmentDirectional.centerStart, + child: DefaultTextStyle( + style: context.textTheme.bodySmall!.copyWith( + color: ColorsManager.textPrimaryColor, + fontWeight: FontWeight.w400, + fontSize: 12, + ), + child: Row( + children: [ + SvgPicture.asset( + Assets.temperatureAqiSidebar, + height: iconSize, + width: iconSize, + colorFilter: colorFilter, + ), + const SizedBox(width: 4), + const Text('30°C'), + const SizedBox(width: 10), + SvgPicture.asset( + Assets.humidityAqiSidebar, + height: iconSize, + width: iconSize, + colorFilter: colorFilter, + ), + const SizedBox(width: 4), + const Text('30°C'), + ], + ), + ), + ); + } +}