@wordpress/components
Version:
UI components for WordPress.
98 lines (84 loc) • 2.5 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.InputControl = InputControl;
exports.default = void 0;
var _element = require("@wordpress/element");
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _lodash = require("lodash");
var _classnames = _interopRequireDefault(require("classnames"));
var _compose = require("@wordpress/compose");
var _inputBase = _interopRequireDefault(require("./input-base"));
var _inputField = _interopRequireDefault(require("./input-field"));
/**
* External dependencies
*/
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
function useUniqueId(idProp) {
const instanceId = (0, _compose.useInstanceId)(InputControl);
const id = `inspector-input-control-${instanceId}`;
return idProp || id;
}
function InputControl({
__unstableStateReducer: stateReducer = state => state,
__unstableInputWidth,
className,
disabled = false,
hideLabelFromVision = false,
id: idProp,
isPressEnterToChange = false,
label,
labelPosition = 'top',
onChange = _lodash.noop,
onValidate = _lodash.noop,
onKeyDown = _lodash.noop,
prefix,
size = 'default',
suffix,
value,
...props
}, ref) {
const [isFocused, setIsFocused] = (0, _element.useState)(false);
const id = useUniqueId(idProp);
const classes = (0, _classnames.default)('components-input-control', className);
return (0, _element.createElement)(_inputBase.default, {
__unstableInputWidth: __unstableInputWidth,
className: classes,
disabled: disabled,
gap: 3,
hideLabelFromVision: hideLabelFromVision,
id: id,
isFocused: isFocused,
justify: "left",
label: label,
labelPosition: labelPosition,
prefix: prefix,
size: size,
suffix: suffix
}, (0, _element.createElement)(_inputField.default, (0, _extends2.default)({}, props, {
className: "components-input-control__input",
disabled: disabled,
id: id,
isFocused: isFocused,
isPressEnterToChange: isPressEnterToChange,
onChange: onChange,
onKeyDown: onKeyDown,
onValidate: onValidate,
ref: ref,
setIsFocused: setIsFocused,
size: size,
stateReducer: stateReducer,
value: value
})));
}
const ForwardedComponent = (0, _element.forwardRef)(InputControl);
var _default = ForwardedComponent;
exports.default = _default;
//# sourceMappingURL=index.js.map