@shinyongjun/react-datepicker
Version:
DatePicker component in React App.
23 lines • 1.1 kB
JavaScript
import { useCallback, useState } from 'react';
import { useEventListener } from './useEventListener';
import { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';
export function useElementSize() {
var _a = useState(null), ref = _a[0], setRef = _a[1];
var _b = useState({
width: 0,
height: 0,
}), size = _b[0], setSize = _b[1];
var handleSize = useCallback(function () {
console.log('handleSize');
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]);
useEventListener('resize', handleSize);
useIsomorphicLayoutEffect(function () {
handleSize();
}, [ref === null || ref === void 0 ? void 0 : ref.offsetHeight, ref === null || ref === void 0 ? void 0 : ref.offsetWidth]);
return [ref, setRef, size];
}
//# sourceMappingURL=useElementSize.js.map