mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-11-27 08:44:54 +00:00
extracted reusable helper methods into global extensions.
This commit is contained in:
6
lib/pages/analytics/helpers/format_number_to_kwh.dart
Normal file
6
lib/pages/analytics/helpers/format_number_to_kwh.dart
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
extension FormatNumberToKwh on num {
|
||||||
|
String get formatNumberToKwh {
|
||||||
|
final regExp = RegExp(r'(\d)(?=(\d{3})+$)');
|
||||||
|
return '${toStringAsFixed(0).replaceAllMapped(regExp, (match) => '${match[1]},')} kWh';
|
||||||
|
}
|
||||||
|
}
|
||||||
19
lib/pages/analytics/helpers/get_month_name_from_int.dart
Normal file
19
lib/pages/analytics/helpers/get_month_name_from_int.dart
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
extension GetMonthNameFromNumber on num {
|
||||||
|
String get getMonthName {
|
||||||
|
return switch (this) {
|
||||||
|
1 => 'JAN',
|
||||||
|
2 => 'FEB',
|
||||||
|
3 => 'MAR',
|
||||||
|
4 => 'APR',
|
||||||
|
5 => 'MAY',
|
||||||
|
6 => 'JUN',
|
||||||
|
7 => 'JUL',
|
||||||
|
8 => 'AUG',
|
||||||
|
9 => 'SEP',
|
||||||
|
10 => 'OCT',
|
||||||
|
11 => 'NOV',
|
||||||
|
12 => 'DEC',
|
||||||
|
_ => 'N/A'
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,5 +1,7 @@
|
|||||||
import 'package:fl_chart/fl_chart.dart';
|
import 'package:fl_chart/fl_chart.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:syncrow_web/pages/analytics/helpers/format_number_to_kwh.dart';
|
||||||
|
import 'package:syncrow_web/pages/analytics/helpers/get_month_name_from_int.dart';
|
||||||
import 'package:syncrow_web/utils/color_manager.dart';
|
import 'package:syncrow_web/utils/color_manager.dart';
|
||||||
import 'package:syncrow_web/utils/extension/build_context_x.dart';
|
import 'package:syncrow_web/utils/extension/build_context_x.dart';
|
||||||
|
|
||||||
@ -25,7 +27,7 @@ class EnergyData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// energy_consumption_chart will return id, name and consumption
|
// energy_consumption_chart will return id, name and consumption
|
||||||
final s = {
|
const phasesJson = {
|
||||||
"1": {
|
"1": {
|
||||||
"phaseOne": 1000,
|
"phaseOne": 1000,
|
||||||
"phaseTwo": 2000,
|
"phaseTwo": 2000,
|
||||||
@ -145,7 +147,7 @@ class TotalEnergyConsumptionChart extends StatelessWidget {
|
|||||||
child: FittedBox(
|
child: FittedBox(
|
||||||
fit: BoxFit.scaleDown,
|
fit: BoxFit.scaleDown,
|
||||||
child: Text(
|
child: Text(
|
||||||
_formatNumberToKwh(value),
|
value.formatNumberToKwh,
|
||||||
style: context.textTheme.bodySmall?.copyWith(
|
style: context.textTheme.bodySmall?.copyWith(
|
||||||
fontSize: 12,
|
fontSize: 12,
|
||||||
color: ColorsManager.greyColor,
|
color: ColorsManager.greyColor,
|
||||||
@ -185,33 +187,9 @@ class TotalEnergyConsumptionChart extends StatelessWidget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String _getToolTipLabel(num month, double value) {
|
String _getToolTipLabel(num month, double value) {
|
||||||
final monthLabel = _getMonthNameFrom(month);
|
final monthLabel = month.getMonthName;
|
||||||
final valueLabel = _formatNumberToKwh(value);
|
final valueLabel = value.formatNumberToKwh;
|
||||||
return [monthLabel, valueLabel]
|
final labels = [monthLabel, valueLabel];
|
||||||
.where((element) => element.isNotEmpty)
|
return labels.where((element) => element.isNotEmpty).join(', ');
|
||||||
.join(', ');
|
|
||||||
}
|
|
||||||
|
|
||||||
String _formatNumberToKwh(double value) {
|
|
||||||
final regExp = RegExp(r'(\d)(?=(\d{3})+$)');
|
|
||||||
return '${value.toStringAsFixed(0).replaceAllMapped(regExp, (match) => '${match[1]},')} kWh';
|
|
||||||
}
|
|
||||||
|
|
||||||
String _getMonthNameFrom(num month) {
|
|
||||||
final values = {
|
|
||||||
1: 'JAN',
|
|
||||||
2: 'FEB',
|
|
||||||
3: 'MAR',
|
|
||||||
4: 'APR',
|
|
||||||
5: 'MAY',
|
|
||||||
6: 'JUN',
|
|
||||||
7: 'JUL',
|
|
||||||
8: 'AUG',
|
|
||||||
9: 'SEP',
|
|
||||||
10: 'OCT',
|
|
||||||
11: 'NOV',
|
|
||||||
12: 'DEC',
|
|
||||||
};
|
|
||||||
return values[month.toInt()] ?? 'N/A';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user