diff --git a/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart_box.dart b/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart_box.dart index a52b43a0..e1db0840 100644 --- a/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart_box.dart +++ b/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart_box.dart @@ -1,11 +1,9 @@ import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/energy_consumption_by_phases/energy_consumption_by_phases_bloc.dart'; -import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/chart_title.dart'; import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart.dart'; +import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_title.dart'; import 'package:syncrow_web/pages/analytics/params/get_energy_consumption_by_phases_param.dart'; -import 'package:syncrow_web/utils/color_manager.dart'; -import 'package:syncrow_web/utils/extension/build_context_x.dart'; import 'package:syncrow_web/utils/style.dart'; class EnergyConsumptionByPhasesChartBox extends StatefulWidget { @@ -52,75 +50,3 @@ class _EnergyConsumptionByPhasesChartBoxState ); } } - -class EnergyConsumptionByPhasesTitle extends StatelessWidget { - const EnergyConsumptionByPhasesTitle({super.key}); - - @override - Widget build(BuildContext context) { - return Row( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - flex: 4, - child: FittedBox( - fit: BoxFit.scaleDown, - child: ChartTitle( - title: Text( - 'Energy Consumption by Phases', - style: context.textTheme.titleLarge?.copyWith( - fontSize: 14, - fontWeight: FontWeight.w400, - color: ColorsManager.textPrimaryColor, - ), - ), - ), - ), - ), - const Spacer(), - ...<(String title, double opacity)>[ - ('A', 0.8), - ('B', 0.4), - ('C', 0.15), - ].map((phase) => _buildPhaseCell(context, phase)), - ], - ); - } - - Widget _buildPhaseCell( - BuildContext context, - (String title, double colorOpacity) phase, - ) { - final (title, colorOpacity) = phase; - - return Expanded( - child: FittedBox( - fit: BoxFit.scaleDown, - child: Row( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - spacing: 4, - children: [ - CircleAvatar( - backgroundColor: ColorsManager.vividBlue.withValues( - alpha: colorOpacity, - ), - radius: 4, - ), - Text( - 'Phase $title', - style: context.textTheme.labelSmall?.copyWith( - fontSize: 8, - fontWeight: FontWeight.w400, - color: ColorsManager.lightGreyColor, - ), - ), - const SizedBox(width: 4), - ], - ), - ), - ); - } -} diff --git a/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_title.dart b/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_title.dart new file mode 100644 index 00000000..92127832 --- /dev/null +++ b/lib/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_title.dart @@ -0,0 +1,76 @@ +import 'package:flutter/material.dart'; +import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/chart_title.dart'; +import 'package:syncrow_web/utils/color_manager.dart'; +import 'package:syncrow_web/utils/extension/build_context_x.dart'; + +class EnergyConsumptionByPhasesTitle extends StatelessWidget { + const EnergyConsumptionByPhasesTitle({super.key}); + + @override + Widget build(BuildContext context) { + return Row( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + flex: 4, + child: FittedBox( + fit: BoxFit.scaleDown, + child: ChartTitle( + title: Text( + 'Energy Consumption by Phases', + style: context.textTheme.titleLarge?.copyWith( + fontSize: 14, + fontWeight: FontWeight.w400, + color: ColorsManager.textPrimaryColor, + ), + ), + ), + ), + ), + const Spacer(), + ...<(String title, double opacity)>[ + ('A', 0.8), + ('B', 0.4), + ('C', 0.15), + ].map((phase) => _buildPhaseCell(context, phase)), + ], + ); + } + + Widget _buildPhaseCell( + BuildContext context, + (String title, double colorOpacity) phase, + ) { + final (title, colorOpacity) = phase; + + return Expanded( + child: FittedBox( + fit: BoxFit.scaleDown, + child: Row( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + spacing: 4, + children: [ + CircleAvatar( + backgroundColor: ColorsManager.vividBlue.withValues( + alpha: colorOpacity, + ), + radius: 4, + ), + Text( + 'Phase $title', + style: context.textTheme.labelSmall?.copyWith( + fontSize: 8, + fontWeight: FontWeight.w400, + color: ColorsManager.lightGreyColor, + ), + ), + const SizedBox(width: 4), + ], + ), + ), + ); + } +}