UNPKG

@appbuckets/react-ui-forms

Version:

An utilities package to manage and create Form using AppBuckets ReactUI

95 lines (88 loc) 2.43 kB
'use strict'; var _tslib = require('../_virtual/_tslib.js'); var React = require('react'); var Input = require('@appbuckets/react-ui/Input'); var createHookedField = require('../utils/createHookedField.js'); function _interopDefaultLegacy(e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; } function _interopNamespace(e) { if (e && e.__esModule) return e; var n = Object.create(null); if (e) { Object.keys(e).forEach(function (k) { if (k !== 'default') { var d = Object.getOwnPropertyDescriptor(e, k); Object.defineProperty( n, k, d.get ? d : { enumerable: true, get: function () { return e[k]; }, } ); } }); } n['default'] = e; return Object.freeze(n); } var React__namespace = /*#__PURE__*/ _interopNamespace(React); var Input__default = /*#__PURE__*/ _interopDefaultLegacy(Input); /* -------- * Component Definition * -------- */ var HookedInput = createHookedField.createHookedField({ displayName: 'HookedInput', Component: function HookedInputComponent(props) { var innerRef = props.innerRef, meta = props.meta, rest = props.rest; return React__namespace.createElement( Input__default['default'], _tslib.__assign({}, rest, meta.appearance, { ref: innerRef, hint: meta.message, }) ); }, parseValue: function (_a) { var props = _a.props; /** Get value and type */ var _b = props || {}, value = _b.value, _c = _b.type, type = _c === void 0 ? 'text' : _c; /** If value is undefined, return null */ if (value === undefined || value === null) { return null; } /** If type is a number, cast value */ if (type === 'number') { var casted = value === '' ? null : Number(value); if (value === null || Number.isNaN(casted)) { return null; } return casted; } /** Return the value as string */ return value; }, formatValue: function (value) { /** Return a string as is */ if (typeof value === 'string') { return value; } /** Convert number to string */ if (typeof value === 'number') { return value.toString(); } /** Fallback to empty string */ return ''; }, }); module.exports = HookedInput;