buildChart method

  1. @override
Widget buildChart()
override

Implementation

@override
Widget buildChart() {
  // Define default theme data
  const defaultThemeData = ChartThemeData(
    backgroundColor: Colors.white,
    labelStyle: TextStyle(color: Colors.black, fontSize: 16),
    valueStyle: TextStyle(
        fontSize: 24, fontWeight: FontWeight.bold, color: Colors.blue),
    unitStyle: TextStyle(color: Colors.grey, fontSize: 14),
  );

  TextStyle labelStyle = themeData?.labelStyle ?? defaultThemeData.labelStyle;
  TextStyle valueStyle = themeData?.valueStyle ?? defaultThemeData.valueStyle;

  return ChartCard(
    themeData: themeData ?? defaultThemeData,
    child: Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      children: [
        FittedBox(fit: BoxFit.contain, child: Text(label, style: labelStyle)),
        const Spacer(),
        Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: List.generate(totalMilestones, (index) {
            return Icon(
              index < completedMilestones ? Icons.check_circle : Icons.circle,
              color: index < completedMilestones ? Colors.green : Colors.grey,
              size: 24,
            );
          }),
        ),
        const Spacer(),
        FittedBox(
            fit: BoxFit.contain,
            child: Text('$completedMilestones/$totalMilestones Completed',
                style: valueStyle)),
      ],
    ),
  );
}