UNPKG

@awsui/components-react

Version:

AWS UI is a collection of [React](https://reactjs.org/) components that help create intuitive, responsive, and accessible user experiences for web applications. It is developed by Amazon Web Services (AWS). This work is available under the terms of the [A

29 lines (28 loc) 1.06 kB
import { ResizeObserver, ResizeObserverEntry } from '@juggle/resize-observer'; import { useState, useLayoutEffect, useEffect } from 'react'; export function useResizeObserver(getElement, mapFn) { var _a = useState(null), state = _a[0], setState = _a[1]; useLayoutEffect(function () { var element = getElement(); if (element) { setState(function (prevState) { return mapFn(new ResizeObserverEntry(element), prevState); }); } }, []); useEffect(function () { var element = getElement(); if (element) { var connected_1 = true; var observer_1 = new ResizeObserver(function (entries) { if (connected_1) { setState(function (prevState) { return mapFn(entries[0], prevState); }); } }); observer_1.observe(element); return function () { connected_1 = false; observer_1.disconnect(); }; } }, [getElement, mapFn]); return state; }