Extracted fetching energy management data from the widgets themselves to the parent widget AnalyticsEnergyManagementView.

This commit is contained in:
Faris Armoush
2025-05-04 14:29:15 +03:00
parent a0d1cb988a
commit 5996ff3928
4 changed files with 37 additions and 42 deletions

View File

@ -1,13 +1,46 @@
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/blocs/total_energy_consumption/total_energy_consumption_bloc.dart';
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/energy_consumption_by_phases_chart_box.dart';
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/energy_consumption_per_device_chart_box.dart';
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/power_clamp_energy_data_widget.dart';
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/total_energy_consumption_chart_box.dart';
import 'package:syncrow_web/pages/analytics/params/get_energy_consumption_by_phases_param.dart';
import 'package:syncrow_web/pages/analytics/params/get_total_energy_consumption_param.dart';
import 'package:syncrow_web/utils/style.dart';
class AnalyticsEnergyManagementView extends StatelessWidget {
class AnalyticsEnergyManagementView extends StatefulWidget {
const AnalyticsEnergyManagementView({super.key});
@override
State<AnalyticsEnergyManagementView> createState() =>
_AnalyticsEnergyManagementViewState();
}
class _AnalyticsEnergyManagementViewState
extends State<AnalyticsEnergyManagementView> {
@override
void initState() {
_loadEnergyConsumptionByPhases();
_loadTotalEnergyConsumption();
super.initState();
}
void _loadEnergyConsumptionByPhases() {
const param = GetEnergyConsumptionByPhasesParam();
context.read<EnergyConsumptionByPhasesBloc>().add(
const LoadEnergyConsumptionByPhasesEvent(param: param),
);
}
void _loadTotalEnergyConsumption() {
const param = GetTotalEnergyConsumptionParam();
context.read<TotalEnergyConsumptionBloc>().add(
const TotalEnergyConsumptionLoadEvent(param: param),
);
}
@override
Widget build(BuildContext context) {
return Padding(

View File

@ -3,28 +3,11 @@ 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/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/style.dart';
class EnergyConsumptionByPhasesChartBox extends StatefulWidget {
class EnergyConsumptionByPhasesChartBox extends StatelessWidget {
const EnergyConsumptionByPhasesChartBox({super.key});
@override
State<EnergyConsumptionByPhasesChartBox> createState() =>
_EnergyConsumptionByPhasesChartBoxState();
}
class _EnergyConsumptionByPhasesChartBoxState
extends State<EnergyConsumptionByPhasesChartBox> {
@override
void initState() {
const param = GetEnergyConsumptionByPhasesParam();
context.read<EnergyConsumptionByPhasesBloc>().add(
const LoadEnergyConsumptionByPhasesEvent(param: param),
);
super.initState();
}
@override
Widget build(BuildContext context) {
return BlocBuilder<EnergyConsumptionByPhasesBloc,

View File

@ -3,32 +3,11 @@ 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';
class TotalEnergyConsumptionChartBox extends StatefulWidget {
class TotalEnergyConsumptionChartBox extends StatelessWidget {
const TotalEnergyConsumptionChartBox({super.key});
@override
State<TotalEnergyConsumptionChartBox> createState() =>
_TotalEnergyConsumptionChartBoxState();
}
class _TotalEnergyConsumptionChartBoxState
extends State<TotalEnergyConsumptionChartBox> {
@override
void initState() {
final param = GetTotalEnergyConsumptionParam(
startDate: DateTime.now().subtract(const Duration(days: 30)),
endDate: DateTime.now(),
spaceId: '123',
);
context.read<TotalEnergyConsumptionBloc>().add(
TotalEnergyConsumptionLoadEvent(param: param),
);
super.initState();
}
@override
Widget build(BuildContext context) {
return BlocBuilder<TotalEnergyConsumptionBloc, TotalEnergyConsumptionState>(

View File

@ -3,7 +3,7 @@ class GetTotalEnergyConsumptionParam {
final DateTime? endDate;
final String? spaceId;
GetTotalEnergyConsumptionParam({
const GetTotalEnergyConsumptionParam({
this.startDate,
this.endDate,
this.spaceId,