antd
Version:
An enterprise-class UI design language and React components implementation
32 lines (31 loc) • 1.22 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
const ELEMENT_GAP = 2;
const adjustElementWidth = (width, wrapper) => {
if (wrapper.offsetWidth - width < ELEMENT_GAP) {
// The textarea's width is increased
wrapper.style.width = `${width + ELEMENT_GAP}px`;
} else if (wrapper.offsetWidth - width > ELEMENT_GAP) {
// The textarea's width is decreased
wrapper.style.width = `${width + ELEMENT_GAP}px`;
}
};
const useHandleResizeWrapper = () => {
const handleResizeWrapper = _react.default.useCallback(rcTextArea => {
if (!rcTextArea) {
return;
}
if (rcTextArea.resizableTextArea.textArea.style.width.includes('px')) {
const width = Number.parseInt(rcTextArea.resizableTextArea.textArea.style.width.replace(/px/, ''));
(0, _raf.default)(() => adjustElementWidth(width, rcTextArea.nativeElement));
}
}, []);
return handleResizeWrapper;
};
var _default = exports.default = useHandleResizeWrapper;
;