mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-10 16:22:38 +02:00
fix: use stable references for event listeners in Spotlight component
Anonymous arrow functions create different references on add/remove, so the listeners were never actually removed. Closes #933
This commit is contained in:
parent
8232893fbb
commit
8d8c36fc59
1 changed files with 7 additions and 4 deletions
|
|
@ -48,14 +48,17 @@ export function Spotlight({
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!parentElement) return;
|
if (!parentElement) return;
|
||||||
|
|
||||||
|
const handleEnter = () => setIsHovered(true);
|
||||||
|
const handleLeave = () => setIsHovered(false);
|
||||||
|
|
||||||
parentElement.addEventListener("mousemove", handleMouseMove);
|
parentElement.addEventListener("mousemove", handleMouseMove);
|
||||||
parentElement.addEventListener("mouseenter", () => setIsHovered(true));
|
parentElement.addEventListener("mouseenter", handleEnter);
|
||||||
parentElement.addEventListener("mouseleave", () => setIsHovered(false));
|
parentElement.addEventListener("mouseleave", handleLeave);
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
parentElement.removeEventListener("mousemove", handleMouseMove);
|
parentElement.removeEventListener("mousemove", handleMouseMove);
|
||||||
parentElement.removeEventListener("mouseenter", () => setIsHovered(true));
|
parentElement.removeEventListener("mouseenter", handleEnter);
|
||||||
parentElement.removeEventListener("mouseleave", () => setIsHovered(false));
|
parentElement.removeEventListener("mouseleave", handleLeave);
|
||||||
};
|
};
|
||||||
}, [parentElement, handleMouseMove]);
|
}, [parentElement, handleMouseMove]);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue