UNPKG

@talend/react-components

Version:
38 lines (37 loc) 1.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _jsxRuntime = require("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] = (0, _react.useState)(0); const sizerRef = (0, _react.useRef)(null); (0, _react.useEffect)(() => { setWidth(minWidth || sizerRef.current && sizerRef.current.getBoundingClientRect().width || 0); }); const text = inputText || placeholder; return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_react.Fragment, { children: [children(width + EXTRA_SPACE), /*#__PURE__*/(0, _jsxRuntime.jsx)("span", { style: inputTextSizerStyle, ref: sizerRef, "data-testid": "InputSizer", children: text })] }); } var _default = exports.default = InputSizer; //# sourceMappingURL=InputSizer.component.js.map