diff --git a/src/renderer/hooks/index.ts b/src/renderer/hooks/index.ts index d790ddf145..852f4d64d0 100644 --- a/src/renderer/hooks/index.ts +++ b/src/renderer/hooks/index.ts @@ -8,4 +8,5 @@ export * from "./useOnUnmount"; export * from "./useInterval"; export * from "./useMutationObserver"; +export * from "./useResizeObserver"; export * from "./use-toggle"; diff --git a/src/renderer/hooks/useResizeObserver.ts b/src/renderer/hooks/useResizeObserver.ts new file mode 100644 index 0000000000..26dfd046b8 --- /dev/null +++ b/src/renderer/hooks/useResizeObserver.ts @@ -0,0 +1,26 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ + +import { useEffect } from "react"; + +export function useResizeObserver( + element: Element, + callback: ResizeObserverCallback, +) { + + useEffect(() => { + if (element) { + const observer = new ResizeObserver(callback); + + observer.observe(element); + + return () => { + observer.disconnect(); + }; + } + + return undefined; + }, [callback]); +}