Introduce ChartTitle widget for consistent chart headings in EnergyConsumptionPerDeviceChartBox and TotalEnergyConsumptionChartBox

This commit is contained in:
Faris Armoush
2025-05-04 10:57:42 +03:00
parent 9c250986b2
commit e43de3f64c
4 changed files with 23 additions and 18 deletions

View File

@ -0,0 +1,18 @@
import 'package:flutter/material.dart';
class ChartTitle extends StatelessWidget {
const ChartTitle({super.key, required this.title});
final Widget title;
@override
Widget build(BuildContext context) {
return DefaultTextStyle(
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.w700,
),
child: title,
);
}
}

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.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_per_device_chart.dart';
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/energy_consumption_per_device_devices_list.dart';
import 'package:syncrow_web/utils/style.dart';
@ -20,13 +21,7 @@ class EnergyConsumptionPerDeviceChartBox extends StatelessWidget {
Row(
spacing: 32,
children: [
Text(
'Energy Consumption per Device',
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.w700,
),
),
ChartTitle(title: Text('Energy Consumption per Device')),
Spacer(),
Expanded(flex: 2, child: EnergyConsumptionPerDeviceDevicesList()),
],

View File

@ -13,10 +13,7 @@ class EnergyConsumptionPerDeviceDevicesList extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.end,
children: List.generate(
20,
(index) => _buildDeviceCell(index),
).toList(),
children: List.generate(20, (index) => _buildDeviceCell(index)).toList(),
),
);
}

View File

@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:syncrow_web/pages/analytics/modules/energy_management/blocs/total_energy_consumption/total_energy_consumption_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/total_energy_consumption_chart.dart';
import 'package:syncrow_web/pages/analytics/params/get_total_energy_consumption_param.dart';
import 'package:syncrow_web/utils/style.dart';
@ -40,13 +41,7 @@ class _TotalEnergyConsumptionChartBoxState
spacing: 20,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Total Energy Consumption',
style: TextStyle(
fontSize: 22,
fontWeight: FontWeight.w700,
),
),
ChartTitle(title: Text('Total Energy Consumption')),
Divider(),
TotalEnergyConsumptionChart(chartData: state.chartData),
],