import 'package:flutter/material.dart'; import 'package:fluffychat/widgets/hover_builder.dart'; class HoverButton extends StatelessWidget { final VoidCallback? onPressed; final Widget child; final BorderRadius? borderRadius; final double hoverOpacity; final bool selected; const HoverButton({ super.key, required this.onPressed, required this.child, this.borderRadius, this.hoverOpacity = 0.2, this.selected = false, }); @override Widget build(BuildContext context) { return MouseRegion( cursor: SystemMouseCursors.click, child: HoverBuilder( builder: (context, hovered) { return GestureDetector( onTap: onPressed, child: Container( decoration: BoxDecoration( color: hovered || selected ? Theme.of(context).colorScheme.primary.withAlpha( (hoverOpacity * 255).round(), ) : Colors.transparent, borderRadius: borderRadius ?? BorderRadius.circular(36.0), ), padding: const EdgeInsets.symmetric( vertical: 2.0, horizontal: 4.0, ), child: child, ), ); }, ), ); } }