usehooks-ts
Version:
React hook library, ready to use, written in Typescript.
24 lines • 1.14 kB
JavaScript
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
;