UNPKG

informed

Version:

A lightweight framework and utility for building powerful forms in React applications

55 lines (48 loc) 2.02 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js'); var React = require('react'); var useField = require('../../hooks/useField.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefaultLegacy(React); var _excluded = ["label", "id"]; var Input = /*#__PURE__*/React__default["default"].memo(function (props) { var _useField = useField.useField(props), render = _useField.render, userProps = _useField.userProps, ref = _useField.ref, fieldState = _useField.fieldState, fieldApi = _useField.fieldApi; var setValue = fieldApi.setValue, setTouched = fieldApi.setTouched, setFocused = fieldApi.setFocused; var maskedValue = fieldState.maskedValue, showError = fieldState.showError, error = fieldState.error; var label = userProps.label, id = userProps.id, rest = _rollupPluginBabelHelpers.objectWithoutProperties(userProps, _excluded); return render( /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, label ? /*#__PURE__*/React__default["default"].createElement("label", { htmlFor: id }, label) : null, /*#__PURE__*/React__default["default"].createElement("input", _rollupPluginBabelHelpers["extends"]({ ref: ref, id: id }, rest, { value: !maskedValue && maskedValue !== 0 ? '' : maskedValue, onChange: function onChange(e) { setValue(e.target.value, e); }, onBlur: function onBlur(e) { setTouched(true, e); }, onFocus: function onFocus(e) { setFocused(true, e); }, "aria-invalid": !!showError, "aria-describedby": "".concat(id, "-error") })), showError ? /*#__PURE__*/React__default["default"].createElement("small", { role: "alert", id: "".concat(id, "-error") }, error) : null)); }); exports.Input = Input;