import 'package:flutter/material.dart';

class CurvedBottomBorderTab extends StatelessWidget {
  final bool isSelected;
  final String label;
  final VoidCallback tap;

  const CurvedBottomBorderTab({
    required this.isSelected,
    required this.label,
    required this.tap,
  });

  @override
  Widget build(BuildContext context) {
    return CustomPaint(
      painter: isSelected ? CurvedBottomPainter() : null,
      child: GestureDetector(
        child: Container(
          width: 110,
          padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
          color: Colors.transparent,
          child: Center(
            child: Text(
              label,
              style: TextStyle(
                fontSize: 16,
                fontWeight: FontWeight.bold,
                color:
                    isSelected
                        ? const Color.fromARGB(255, 255, 255, 255)
                        : const Color.fromARGB(255, 197, 194, 194),
              ),
            ),
          ),
        ),
        onTap: tap,
      ),
    );
  }
}

class CurvedBottomPainter extends CustomPainter {
  @override
  void paint(Canvas canvas, Size size) {
    final paint =
        Paint()
          ..color = Colors.white
          ..strokeWidth = 2
          ..style = PaintingStyle.stroke;

    final path =
        Path()
          ..moveTo(0, size.height)
          ..quadraticBezierTo(
            size.width / 2,
            size.height - 8,
            size.width,
            size.height,
          );

    canvas.drawPath(path, paint);
  }

  @override
  bool shouldRepaint(CustomPainter oldDelegate) => false;
}
