fix: add missing setTimeout cleanup in hero section collision effect

Closes #940
This commit is contained in:
likiosliu 2026-03-25 10:40:06 +08:00
parent 8232893fbb
commit 16ffdd898a

View file

@ -277,21 +277,24 @@ const CollisionMechanism = ({
}, [cycleCollisionDetected, parentRef]); }, [cycleCollisionDetected, parentRef]);
useEffect(() => { useEffect(() => {
if (collision.detected && collision.coordinates) { if (!collision.detected || !collision.coordinates) return;
setTimeout(() => {
setCollision({ detected: false, coordinates: null });
setCycleCollisionDetected(false);
// Set beam opacity to 0
if (beamRef.current) {
beamRef.current.style.opacity = "1";
}
}, 2000);
// Reset the beam animation after a delay const timer1 = setTimeout(() => {
setTimeout(() => { setCollision({ detected: false, coordinates: null });
setBeamKey((prevKey) => prevKey + 1); setCycleCollisionDetected(false);
}, 2000); if (beamRef.current) {
} beamRef.current.style.opacity = "1";
}
}, 2000);
const timer2 = setTimeout(() => {
setBeamKey((prevKey) => prevKey + 1);
}, 2000);
return () => {
clearTimeout(timer1);
clearTimeout(timer2);
};
}, [collision]); }, [collision]);
return ( return (