"use client";
import { useEffect } from "react";

const ButtonHoverAnimation = () => {
  useEffect(() => {
    const btnAnim = document.querySelectorAll(".btn-anim");
    if (btnAnim.length > 0) {
      btnAnim.forEach((element) => {
        element.addEventListener("mouseenter", handleMouseEnter);
        element.addEventListener("mouseleave", handleMouseLeave);
      });

      return () => {
        btnAnim.forEach((element) => {
          element.removeEventListener("mouseenter", handleMouseEnter);
          element.removeEventListener("mouseleave", handleMouseLeave);
        });
      };
    }
  }, []);

  const handleMouseEnter = (e: any) => {
    const element = e.currentTarget as any;
    const span = element.querySelector("span");
    if (span) {
      const rect = element.getBoundingClientRect();
      span.style.left = `${e.clientX - rect.left}px`;
      span.style.top = `${e.clientY - rect.top}px`;
    }
  };

  const handleMouseLeave = (e: any) => {
    const element = e.currentTarget as HTMLElement;
    const span = element.querySelector("span");
    if (span) {
      const rect = element.getBoundingClientRect();
      span.style.left = `${e.clientX - rect.left}px`;
      span.style.top = `${e.clientY - rect.top}px`;
    }
  };

  return null;
};

export default ButtonHoverAnimation;
