@talend/react-components
Version:
Set of react components.
32 lines • 913 B
JavaScript
import { Fragment, useEffect, useRef, useState } from 'react';
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
const EXTRA_SPACE = 5;
const inputTextSizerStyle = {
padding: '0 0.625rem',
fontSize: '0.875rem',
visibility: 'hidden',
position: 'absolute'
};
function InputSizer({
placeholder,
inputText,
children,
minWidth
}) {
const [width, setWidth] = useState(0);
const sizerRef = useRef(null);
useEffect(() => {
setWidth(minWidth || sizerRef.current && sizerRef.current.getBoundingClientRect().width || 0);
});
const text = inputText || placeholder;
return /*#__PURE__*/_jsxs(Fragment, {
children: [children(width + EXTRA_SPACE), /*#__PURE__*/_jsx("span", {
style: inputTextSizerStyle,
ref: sizerRef,
"data-testid": "InputSizer",
children: text
})]
});
}
export default InputSizer;
//# sourceMappingURL=InputSizer.component.js.map