UNPKG

@atlaskit/editor-plugin-extension

Version:

editor-plugin-extension plugin for @atlaskit/editor-core

64 lines 2.12 kB
import _extends from "@babel/runtime/helpers/extends"; import React from 'react'; import isNumber from 'is-number'; import { Field } from '@atlaskit/form'; import TextField from '@atlaskit/textfield'; import FieldMessages from '../FieldMessages'; import { ValidationError } from '../types'; import { validate } from '../utils'; export default function Number(_ref) { var name = _ref.name, field = _ref.field, autoFocus = _ref.autoFocus, onFieldChange = _ref.onFieldChange, placeholder = _ref.placeholder; var label = field.label, description = field.description, defaultValue = field.defaultValue, isRequired = field.isRequired, isDisabled = field.isDisabled; function validateNumber(value) { var error = validate(field, value || ''); if (error) { return error; } if (value === '') { return; } if (isNumber(value)) { return; } return ValidationError.Invalid; } return /*#__PURE__*/React.createElement(Field, { name: name, label: label, defaultValue: defaultValue === undefined ? '' : String(defaultValue), isRequired: isRequired, validate: validateNumber, testId: "config-panel-number-".concat(name), isDisabled: isDisabled }, function (_ref2) { var fieldProps = _ref2.fieldProps, error = _ref2.error, meta = _ref2.meta; return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TextField // Ignored via go/ees005 // eslint-disable-next-line react/jsx-props-no-spreading , _extends({}, fieldProps, { autoFocus: autoFocus // eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed) , onBlur: function onBlur() { fieldProps.onBlur(); onFieldChange(name, meta.dirty); }, type: "text" // do not change this to type="number", it will return invalid strings as '' , placeholder: placeholder })), /*#__PURE__*/React.createElement(FieldMessages, { error: error, description: description })); }); }