UNPKG

@atlaskit/editor-plugin-extension

Version:

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

68 lines 1.88 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({ name, field, autoFocus, onFieldChange, placeholder }) { const { label, description, defaultValue, isRequired, isDisabled } = field; function validateNumber(value) { const 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-${name}`, isDisabled: isDisabled }, ({ fieldProps, error, 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: () => { 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 })); }); }