From 8db3bead13441a5882d8689dfc6a9f09c82375d9 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Wed, 25 Mar 2026 16:47:22 +0100 Subject: feat: masks, properties refactor, shaders, storage migrations, and more --- apps/web/src/hooks/use-resize-observer.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 apps/web/src/hooks/use-resize-observer.ts (limited to 'apps/web/src/hooks/use-resize-observer.ts') diff --git a/apps/web/src/hooks/use-resize-observer.ts b/apps/web/src/hooks/use-resize-observer.ts new file mode 100644 index 00000000..a4b3a603 --- /dev/null +++ b/apps/web/src/hooks/use-resize-observer.ts @@ -0,0 +1,26 @@ +import { useEffect } from "react"; + +export function useResizeObserver({ + ref, + onResize, +}: { + ref: React.RefObject; + onResize: (entry: ResizeObserverEntry) => void; +}) { + useEffect(() => { + const element = ref.current; + if (!element) return; + + const observer = new ResizeObserver((entries) => { + for (const entry of entries) { + onResize(entry); + } + }); + + observer.observe(element); + + return () => { + observer.disconnect(); + }; + }, [ref, onResize]); +} -- cgit v1.3.1