2025-12-30 15:02:51 +05:30

107 lines
3.0 KiB
Dart

import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';
import '../../../core/constants/colors.dart';
class EngagementChart extends StatelessWidget {
const EngagementChart({super.key});
@override
Widget build(BuildContext context) {
return LineChart(
LineChartData(
gridData: const FlGridData(show: false),
titlesData: FlTitlesData(
bottomTitles: AxisTitles(
sideTitles: SideTitles(
showTitles: true,
getTitlesWidget: (value, meta) {
const style = TextStyle(
color: Color(0xff68737d),
fontWeight: FontWeight.bold,
fontSize: 10,
);
String text;
switch (value.toInt()) {
case 0:
text = 'Mon';
break;
case 3:
text = 'Thu';
break;
case 6:
text = 'Sun';
break;
default:
return Container();
}
return SideTitleWidget(
axisSide: meta.axisSide,
space: 8.0,
child: Text(text, style: style),
);
},
reservedSize: 22,
),
),
leftTitles: const AxisTitles(
sideTitles: SideTitles(showTitles: false),
),
topTitles: const AxisTitles(
sideTitles: SideTitles(showTitles: false),
),
rightTitles: const AxisTitles(
sideTitles: SideTitles(showTitles: false),
),
),
borderData: FlBorderData(show: false),
minX: 0,
maxX: 6,
minY: 0,
maxY: 6,
lineBarsData: [
LineChartBarData(
spots: const [
FlSpot(0, 3),
FlSpot(1, 1),
FlSpot(2, 4),
FlSpot(3, 2),
FlSpot(4, 5),
FlSpot(5, 3),
FlSpot(6, 4),
],
isCurved: true,
color: AppColors.primary,
barWidth: 3,
isStrokeCapRound: true,
dotData: const FlDotData(show: false),
belowBarData: BarAreaData(
show: true,
color: AppColors.primary.withOpacity(0.1),
),
),
LineChartBarData(
spots: const [
FlSpot(0, 2),
FlSpot(1, 3),
FlSpot(2, 2.5),
FlSpot(3, 4),
FlSpot(4, 3.2),
FlSpot(5, 5),
FlSpot(6, 4.5),
],
isCurved: true,
color: AppColors.secondary,
barWidth: 3,
isStrokeCapRound: true,
dotData: const FlDotData(show: false),
belowBarData: BarAreaData(
show: true,
color: AppColors.secondary.withOpacity(0.1),
),
),
],
),
);
}
}