content: import 'package:flutter/material.dart';
  
  class EffectGestureDetector extends StatefulWidget {
    final Widget child;
    final GestureLongPressCallback? onLongPress;
    final GestureTapCallback? onTap;
  
    const EffectGestureDetector({
      super.key,
      required this.child,
      this.onLongPress,
      this.onTap,
    });
  
    @override
    State<EffectGestureDetector> createState() => _EffectGestureDetectorState();
  }
  
  class _EffectGestureDetectorState extends State<EffectGestureDetector>
      with SingleTickerProviderStateMixin {
    late AnimationController _controller;
    double _scale = 1;
  
    @override
    void initState() {
      super.initState();
      _controller = AnimationController(vsync: this);
    }
  
    @override
    void dispose() {
      _controller.dispose();
      super.dispose();
    }
  
    @override
    Widget build(BuildContext context) {
      return AnimatedScale(
        scale: _scale,
        duration: kThemeAnimationDuration,
        curve: Curves.easeOut,
        child: GestureDetector(
          onLongPress: widget.onLongPress,
          onLongPressStart: (_) {
            setState(() {
              _scale = 0.95;
            });
          },
          onTap: widget.onTap,
          onLongPressEnd: (_) {
            setState(() {
              _scale = 1;
            });
          },
          child: widget.child,
        ),
      );
    }
  }
  