UNPKG

@appbuckets/react-ui-forms

Version:

An utilities package to manage and create Form using AppBuckets ReactUI

57 lines (54 loc) 1.54 kB
import { __assign } from '../_virtual/_tslib.js'; import * as React from 'react'; import Input from '@appbuckets/react-ui/Input'; import { createHookedField } from '../utils/createHookedField.js'; /* -------- * Component Definition * -------- */ var HookedInput = createHookedField({ displayName: 'HookedInput', Component: function HookedInputComponent(props) { var innerRef = props.innerRef, meta = props.meta, rest = props.rest; return React.createElement( Input, __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 ''; }, }); export { HookedInput as default };