26 lines
736 B
TypeScript
26 lines
736 B
TypeScript
'use client';
|
|
|
|
import { useEffect, useState } from 'react';
|
|
|
|
export const useDepth3DAnimation = (elementRef: React.RefObject<HTMLElement>) => {
|
|
const [isActive, setIsActive] = useState(false);
|
|
|
|
useEffect(() => {
|
|
if (!elementRef.current) return;
|
|
|
|
const handleMouseEnter = () => setIsActive(true);
|
|
const handleMouseLeave = () => setIsActive(false);
|
|
|
|
const element = elementRef.current;
|
|
element.addEventListener('mouseenter', handleMouseEnter);
|
|
element.addEventListener('mouseleave', handleMouseLeave);
|
|
|
|
return () => {
|
|
element.removeEventListener('mouseenter', handleMouseEnter);
|
|
element.removeEventListener('mouseleave', handleMouseLeave);
|
|
};
|
|
}, [elementRef]);
|
|
|
|
return { isActive };
|
|
};
|