import 'package:flutter/material.dart';

class CustomButtonWidget extends StatelessWidget {
  final Widget child;
  final VoidCallback? onTap;
  final String imagePath;
  final double? width;
  final double? height;
  final EdgeInsetsGeometry padding;
  final Color? backgroundColor;

  const CustomButtonWidget({
    super.key,
    required this.child,
    this.onTap,
    this.imagePath = 'assets/images/icons/borders/border_000.png',
    this.width,
    this.height,
    this.padding = EdgeInsets.zero,
    this.backgroundColor,
  });

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: onTap,
      behavior: HitTestBehavior.opaque,
      child: SizedBox(
        width: width,
        height: height,
        child: Stack(
          children: [
            // Background Color
            if (backgroundColor != null)
              Positioned.fill(child: Container(color: backgroundColor)),
            // Background Image (Border)
            Positioned.fill(
              child: Image.asset(
                imagePath,
                fit: BoxFit.fill,
                filterQuality: FilterQuality.high,
              ),
            ),
            // Content
            Padding(
              padding: padding,
              child: Center(child: child),
            ),
          ],
        ),
      ),
    );
  }
}
