import 'package:fl_chart/fl_chart.dart';
import 'package:flutter/material.dart';

import 'package:scrobbles/config/app_colors.dart';

class CustomLineChart extends StatelessWidget {
  const CustomLineChart({super.key});

  final double chartHeight = 150.0;
  final double titleFontSize = 10;

  @override
  Widget build(BuildContext context) {
    return Container(
      child: SizedBox(
        height: this.chartHeight,
      ),
    );
  }

  FlBorderData getBorderData() {
    return FlBorderData(
      show: false,
    );
  }

  FlGridData getGridData() {
    return const FlGridData(
      show: false,
    );
  }

  FlTitlesData getTitlesData() {
    const AxisTitles none = const AxisTitles(
      sideTitles: SideTitles(showTitles: false),
    );

    final AxisTitles verticalTitles = AxisTitles(
      sideTitles: SideTitles(
        showTitles: true,
        reservedSize: 35,
        getTitlesWidget: getVerticalTitlesWidget,
        interval: 25,
      ),
    );

    final AxisTitles verticalSpacer = AxisTitles(
      sideTitles: SideTitles(
        showTitles: true,
        reservedSize: 35,
        getTitlesWidget: getVerticalTitlesSpacerWidget,
      ),
    );

    final AxisTitles horizontalTitles = AxisTitles(
      sideTitles: SideTitles(
        showTitles: true,
        reservedSize: 20,
        getTitlesWidget: getHorizontalTitlesWidget,
      ),
    );

    return FlTitlesData(
      show: true,
      bottomTitles: horizontalTitles,
      leftTitles: verticalSpacer,
      topTitles: none,
      rightTitles: verticalTitles,
    );
  }

  Widget getVerticalTitlesWidget(double value, TitleMeta meta) {
    return SideTitleWidget(
      axisSide: meta.axisSide,
      space: 4,
      child: Text(
        value.toInt().toString() + ' %',
        style: TextStyle(
          color: AppColors.mainTextColor1,
          fontSize: this.titleFontSize,
        ),
      ),
    );
  }

  Widget getVerticalTitlesSpacerWidget(double value, TitleMeta meta) {
    return SideTitleWidget(
      axisSide: meta.axisSide,
      space: 4,
      child: Text(''),
    );
  }

  Widget getHorizontalTitlesWidget(double value, TitleMeta meta) {
    return Text('');
  }
}