From 7559db35b57a095722ab092b5f74a2a612e86ab4 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 6 Sep 2024 00:32:09 +0200 Subject: [PATCH 1/3] Update use-hover.ts to react to node changes --- .../@mantine/hooks/src/use-hover/use-hover.ts | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/packages/@mantine/hooks/src/use-hover/use-hover.ts b/packages/@mantine/hooks/src/use-hover/use-hover.ts index dbf5d7ce7d6..29c135e1dec 100644 --- a/packages/@mantine/hooks/src/use-hover/use-hover.ts +++ b/packages/@mantine/hooks/src/use-hover/use-hover.ts @@ -1,24 +1,21 @@ import { useCallback, useEffect, useRef, useState } from 'react'; -export function useHover() { +export const useHover = () => { const [hovered, setHovered] = useState(false); const ref = useRef(null); const onMouseEnter = useCallback(() => setHovered(true), []); const onMouseLeave = useCallback(() => setHovered(false), []); useEffect(() => { - if (ref.current) { - ref.current.addEventListener('mouseenter', onMouseEnter); - ref.current.addEventListener('mouseleave', onMouseLeave); + if (!ref.current) return; + ref.current.addEventListener('mouseenter', onMouseEnter); + ref.current.addEventListener('mouseleave', onMouseLeave); - return () => { - ref.current?.removeEventListener('mouseenter', onMouseEnter); - ref.current?.removeEventListener('mouseleave', onMouseLeave); - }; - } - - return undefined; - }, []); + return () => { + ref.current?.removeEventListener('mouseenter', onMouseEnter); + ref.current?.removeEventListener('mouseleave', onMouseLeave); + }; + }, [ref.current]); return { ref, hovered }; -} +}; From cda2a2a371d5326d958c81dd62679eb56d73fedf Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 6 Sep 2024 00:36:36 +0200 Subject: [PATCH 2/3] Update use-hover.ts to match codestyle --- packages/@mantine/hooks/src/use-hover/use-hover.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/@mantine/hooks/src/use-hover/use-hover.ts b/packages/@mantine/hooks/src/use-hover/use-hover.ts index 29c135e1dec..a1aa1df4d3f 100644 --- a/packages/@mantine/hooks/src/use-hover/use-hover.ts +++ b/packages/@mantine/hooks/src/use-hover/use-hover.ts @@ -1,6 +1,6 @@ import { useCallback, useEffect, useRef, useState } from 'react'; -export const useHover = () => { +export function useHover() { const [hovered, setHovered] = useState(false); const ref = useRef(null); const onMouseEnter = useCallback(() => setHovered(true), []); @@ -18,4 +18,4 @@ export const useHover = () => { }, [ref.current]); return { ref, hovered }; -}; +} From 44bf19af764983080f234cea5a7f3443025a69ee Mon Sep 17 00:00:00 2001 From: Max Degterev Date: Wed, 25 Sep 2024 17:27:26 +0200 Subject: [PATCH 3/3] resolve linter errors --- .../@mantine/hooks/src/use-hover/use-hover.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/@mantine/hooks/src/use-hover/use-hover.ts b/packages/@mantine/hooks/src/use-hover/use-hover.ts index a1aa1df4d3f..f1d6f746eba 100644 --- a/packages/@mantine/hooks/src/use-hover/use-hover.ts +++ b/packages/@mantine/hooks/src/use-hover/use-hover.ts @@ -7,14 +7,17 @@ export function useHover() { const onMouseLeave = useCallback(() => setHovered(false), []); useEffect(() => { - if (!ref.current) return; - ref.current.addEventListener('mouseenter', onMouseEnter); - ref.current.addEventListener('mouseleave', onMouseLeave); + if (ref.current) { + ref.current.addEventListener('mouseenter', onMouseEnter); + ref.current.addEventListener('mouseleave', onMouseLeave); - return () => { - ref.current?.removeEventListener('mouseenter', onMouseEnter); - ref.current?.removeEventListener('mouseleave', onMouseLeave); - }; + return () => { + ref.current?.removeEventListener('mouseenter', onMouseEnter); + ref.current?.removeEventListener('mouseleave', onMouseLeave); + }; + } + + return undefined; }, [ref.current]); return { ref, hovered };