UNPKG

@talend/react-components

Version:
32 lines 913 B
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