mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 15:17:31 +00:00
make the aqi range chart read its data from RangeOfAqiBloc
.
This commit is contained in:
@ -1,25 +1,34 @@
|
||||
import 'package:fl_chart/fl_chart.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:syncrow_web/pages/analytics/models/range_of_aqi.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/air_quality/helpers/range_of_aqi_charts_helper.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/helpers/energy_management_charts_helper.dart';
|
||||
import 'package:syncrow_web/utils/color_manager.dart';
|
||||
|
||||
class RangeOfAqiChart extends StatelessWidget {
|
||||
final List<double> minValues;
|
||||
final List<double> avgValues;
|
||||
final List<double> maxValues;
|
||||
final List<RangeOfAqi> chartData;
|
||||
|
||||
const RangeOfAqiChart({
|
||||
super.key,
|
||||
required this.minValues,
|
||||
required this.avgValues,
|
||||
required this.maxValues,
|
||||
required this.chartData,
|
||||
});
|
||||
|
||||
List<(List<double> values, Color color, Color? dotColor)> _lines() => [
|
||||
(maxValues, const Color(0xFF962DFF), const Color(0xFF5F00BD)),
|
||||
(avgValues, Colors.white, null),
|
||||
(minValues, const Color(0xFF93AAFD), const Color(0xFF023DFE)),
|
||||
(
|
||||
chartData.map((e) => e.max).toList(),
|
||||
const Color(0xFF962DFF),
|
||||
const Color(0xFF5F00BD)
|
||||
),
|
||||
(
|
||||
chartData.map((e) => e.avg).toList(),
|
||||
Colors.white,
|
||||
null,
|
||||
),
|
||||
(
|
||||
chartData.map((e) => e.min).toList(),
|
||||
const Color(0xFF93AAFD),
|
||||
const Color(0xFF023DFE)
|
||||
),
|
||||
];
|
||||
|
||||
@override
|
||||
|
@ -1,6 +1,9 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/air_quality/blocs/range_of_aqi/range_of_aqi_bloc.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/air_quality/widgets/range_of_aqi_chart.dart';
|
||||
import 'package:syncrow_web/pages/analytics/modules/energy_management/widgets/chart_title.dart';
|
||||
import 'package:syncrow_web/pages/analytics/widgets/analytics_error_widget.dart';
|
||||
import 'package:syncrow_web/utils/style.dart';
|
||||
|
||||
class RangeOfAqiChartBox extends StatelessWidget {
|
||||
@ -8,70 +11,32 @@ class RangeOfAqiChartBox extends StatelessWidget {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return BlocBuilder<RangeOfAqiBloc, RangeOfAqiState>(
|
||||
builder: (context, state) {
|
||||
return Container(
|
||||
padding: const EdgeInsetsDirectional.all(30),
|
||||
decoration: subSectionContainerDecoration.copyWith(
|
||||
borderRadius: BorderRadius.circular(30),
|
||||
),
|
||||
child: const Column(
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
ChartTitle(title: Text('Range of AQI')),
|
||||
SizedBox(height: 10),
|
||||
Divider(),
|
||||
SizedBox(height: 20),
|
||||
AnalyticsErrorWidget(state.errorMessage),
|
||||
const SizedBox(height: 10),
|
||||
const ChartTitle(title: Text('Range of AQI')),
|
||||
const SizedBox(height: 10),
|
||||
const Divider(),
|
||||
const SizedBox(height: 20),
|
||||
Expanded(
|
||||
child: RangeOfAqiChart(
|
||||
avgValues: [
|
||||
50,
|
||||
70,
|
||||
90,
|
||||
110,
|
||||
130,
|
||||
150,
|
||||
170,
|
||||
190,
|
||||
210,
|
||||
230,
|
||||
250,
|
||||
270,
|
||||
290,
|
||||
],
|
||||
minValues: [
|
||||
0,
|
||||
20,
|
||||
40,
|
||||
60,
|
||||
80,
|
||||
100,
|
||||
120,
|
||||
140,
|
||||
160,
|
||||
180,
|
||||
200,
|
||||
220,
|
||||
240,
|
||||
],
|
||||
maxValues: [
|
||||
100,
|
||||
120,
|
||||
140,
|
||||
160,
|
||||
180,
|
||||
200,
|
||||
220,
|
||||
240,
|
||||
260,
|
||||
280,
|
||||
300,
|
||||
301,
|
||||
301,
|
||||
],
|
||||
chartData: state.rangeOfAqi,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user