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-container-size.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-container-size.ts')
| -rw-r--r-- | apps/web/src/hooks/use-container-size.ts | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/apps/web/src/hooks/use-container-size.ts b/apps/web/src/hooks/use-container-size.ts index 8b46f20e..6f6f89be 100644 --- a/apps/web/src/hooks/use-container-size.ts +++ b/apps/web/src/hooks/use-container-size.ts @@ -1,4 +1,5 @@ -import { useEffect, useState } from "react"; +import { useCallback, useState } from "react"; +import { useResizeObserver } from "./use-resize-observer"; export function useContainerSize({ containerRef, @@ -7,23 +8,12 @@ export function useContainerSize({ }) { const [size, setSize] = useState({ width: 0, height: 0 }); - useEffect(() => { - const container = containerRef.current; - if (!container) return; + const onResize = useCallback((entry: ResizeObserverEntry) => { + const { width, height } = entry.contentRect; + setSize({ width, height }); + }, []); - const observer = new ResizeObserver((entries) => { - for (const entry of entries) { - const { width, height } = entry.contentRect; - setSize({ width, height }); - } - }); - - observer.observe(container); - - return () => { - observer.disconnect(); - }; - }, [containerRef]); + useResizeObserver({ ref: containerRef, onResize }); return size; } |
