diff options
Diffstat (limited to 'apps/web/src/hooks/use-reveal-item.ts')
| -rw-r--r-- | apps/web/src/hooks/use-reveal-item.ts | 36 |
1 files changed, 0 insertions, 36 deletions
diff --git a/apps/web/src/hooks/use-reveal-item.ts b/apps/web/src/hooks/use-reveal-item.ts deleted file mode 100644 index 5004f60c..00000000 --- a/apps/web/src/hooks/use-reveal-item.ts +++ /dev/null @@ -1,36 +0,0 @@ -import { useEffect, useState, useRef } from "react"; - -export function useRevealItem( - highlightId: string | null, - onClearHighlight: () => void, - highlightDuration = 1000, -) { - const [highlightedId, setHighlightedId] = useState<string | null>(null); - const elementRefs = useRef<Map<string, HTMLElement>>(new Map()); - - const registerElement = (id: string, element: HTMLElement | null) => { - if (element) { - elementRefs.current.set(id, element); - } else { - elementRefs.current.delete(id); - } - }; - - useEffect(() => { - if (!highlightId) return; - - setHighlightedId(highlightId); - - const target = elementRefs.current.get(highlightId); - target?.scrollIntoView({ block: "center" }); - - const timeout = setTimeout(() => { - setHighlightedId(null); - onClearHighlight(); - }, highlightDuration); - - return () => clearTimeout(timeout); - }, [highlightId, onClearHighlight, highlightDuration]); - - return { highlightedId, registerElement }; -} |
