UNPKG

usehooks-ts

Version:

React hook library, ready to use, written in Typescript.

24 lines 1.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var useEventListener_1 = require("../useEventListener"); function useElementSize() { var _a = (0, react_1.useState)(null), ref = _a[0], setRef = _a[1]; var _b = (0, react_1.useState)({ width: 0, height: 0, }), size = _b[0], setSize = _b[1]; var handleSize = (0, react_1.useCallback)(function () { setSize({ width: (ref === null || ref === void 0 ? void 0 : ref.offsetWidth) || 0, height: (ref === null || ref === void 0 ? void 0 : ref.offsetHeight) || 0, }); }, [ref === null || ref === void 0 ? void 0 : ref.offsetHeight, ref === null || ref === void 0 ? void 0 : ref.offsetWidth]); (0, useEventListener_1.useEventListener)('resize', handleSize); (0, react_1.useLayoutEffect)(function () { handleSize(); }, [ref === null || ref === void 0 ? void 0 : ref.offsetHeight, ref === null || ref === void 0 ? void 0 : ref.offsetWidth]); return [setRef, size]; } exports.default = useElementSize; //# sourceMappingURL=useElementSize.js.map