@talend/react-components
Version:
Set of react components.
38 lines (37 loc) • 1.06 kB
JavaScript
;
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