diff options
| author | Maze Winther <mazewinther@gmail.com> | 2026-03-25 16:47:22 +0100 |
|---|---|---|
| committer | Maze Winther <mazewinther@gmail.com> | 2026-03-29 15:48:22 +0200 |
| commit | 8db3bead13441a5882d8689dfc6a9f09c82375d9 (patch) | |
| tree | e9d0cafa93904ffcbec3188c37961bcc16c6422d /apps/web/src/hooks/use-reveal-item.ts | |
| parent | 39ea298a9ccba3104c549c0ca079c231981811f5 (diff) | |
| download | opencut-8db3bead13441a5882d8689dfc6a9f09c82375d9.tar.gz | |
feat: masks, properties refactor, shaders, storage migrations, and more
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 }; -} |
