mirror of
https://github.com/SyncrowIOT/web.git
synced 2025-07-10 07:07:19 +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: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/extension/build_context_x.dart';
|
||||
|
||||
@ -25,7 +27,7 @@ class EnergyData {
|
||||
}
|
||||
|
||||
// energy_consumption_chart will return id, name and consumption
|
||||
final s = {
|
||||
const phasesJson = {
|
||||
"1": {
|
||||
"phaseOne": 1000,
|
||||
"phaseTwo": 2000,
|
||||
@ -145,7 +147,7 @@ class TotalEnergyConsumptionChart extends StatelessWidget {
|
||||
child: FittedBox(
|
||||
fit: BoxFit.scaleDown,
|
||||
child: Text(
|
||||
_formatNumberToKwh(value),
|
||||
value.formatNumberToKwh,
|
||||
style: context.textTheme.bodySmall?.copyWith(
|
||||
fontSize: 12,
|
||||
color: ColorsManager.greyColor,
|
||||
@ -185,33 +187,9 @@ class TotalEnergyConsumptionChart extends StatelessWidget {
|
||||
}
|
||||
|
||||
String _getToolTipLabel(num month, double value) {
|
||||
final monthLabel = _getMonthNameFrom(month);
|
||||
final valueLabel = _formatNumberToKwh(value);
|
||||
return [monthLabel, valueLabel]
|
||||
.where((element) => element.isNotEmpty)
|
||||
.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';
|
||||
final monthLabel = month.getMonthName;
|
||||
final valueLabel = value.formatNumberToKwh;
|
||||
final labels = [monthLabel, valueLabel];
|
||||
return labels.where((element) => element.isNotEmpty).join(', ');
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user