@aokiapp/rjsf-mantine-theme
Version:
Mantine theme, fields and widgets for react-jsonschema-form
1 lines • 6.42 kB
Source Map (JSON)
{"version":3,"file":"BaseInputTemplate.mjs","sources":["../../src/templates/BaseInputTemplate.tsx"],"sourcesContent":["import { ChangeEvent, FocusEvent, useCallback } from 'react';\nimport { PasswordInput, TextInput } from '@mantine/core';\n\nimport {\n ariaDescribedByIds,\n BaseInputTemplateProps,\n examplesId,\n getInputProps,\n labelValue,\n FormContextType,\n RJSFSchema,\n StrictRJSFSchema,\n} from '@rjsf/utils';\nimport { createErrors } from '../utils/createErrors';\nimport { useFieldContext } from './FieldTemplate';\n\n/** The `BaseInputTemplate` is the template to use to render the basic `<input>` component for the `core` theme.\n * It is used as the template for rendering many of the <input> based widgets that differ by `type` and callbacks only.\n * It can be customized/overridden for other themes or individual implementations as needed.\n *\n * @param props - The `WidgetProps` for this template\n */\nexport default function BaseInputTemplate<\n T = any,\n S extends StrictRJSFSchema = RJSFSchema,\n F extends FormContextType = any,\n>(props: BaseInputTemplateProps<T, S, F>) {\n const {\n id,\n placeholder,\n label,\n hideLabel,\n value,\n required,\n readonly,\n disabled,\n onChange,\n onChangeOverride,\n onBlur,\n onFocus,\n autofocus,\n options,\n schema,\n type,\n rawErrors,\n className,\n hideError,\n } = props;\n\n // Note: since React 15.2.0 we can't forward unknown element attributes, so we\n // exclude the \"options\" and \"schema\" ones here.\n if (!id) {\n console.log('No id for', props);\n throw new Error(`no id for props ${JSON.stringify(props)}`);\n }\n\n const { description } = useFieldContext();\n const inputProps = getInputProps<T, S, F>(schema, type, options);\n\n let inputValue;\n if (inputProps.type === 'number' || inputProps.type === 'integer') {\n inputValue = value || value === 0 ? value : '';\n } else {\n inputValue = value == null ? '' : value;\n }\n\n const _onChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onChange(value === '' ? options.emptyValue : value),\n [onChange, options],\n );\n const _onBlur = useCallback(({ target: { value } }: FocusEvent<HTMLInputElement>) => onBlur(id, value), [onBlur, id]);\n const _onFocus = useCallback(\n ({ target: { value } }: FocusEvent<HTMLInputElement>) => onFocus(id, value),\n [onFocus, id],\n );\n\n const InputComponent = type === 'password' ? PasswordInput : TextInput;\n return (\n <>\n <InputComponent\n key={id}\n id={id}\n placeholder={placeholder}\n description={description}\n {...inputProps}\n label={labelValue(label, hideLabel, undefined)}\n required={required}\n autoFocus={autofocus}\n disabled={disabled || readonly}\n list={schema.examples ? examplesId<T>(id) : undefined}\n value={inputValue}\n error={createErrors<T>(rawErrors, hideError)}\n onChange={onChangeOverride || _onChange}\n onBlur={_onBlur}\n onFocus={_onFocus}\n aria-describedby={ariaDescribedByIds<T>(id, !!schema.examples)}\n className={`armt-widget-input ${className || ''}`}\n />\n {Array.isArray(schema.examples) && (\n <datalist id={examplesId<T>(id)}>\n {(schema.examples as string[])\n .concat(schema.default && !schema.examples.includes(schema.default) ? ([schema.default] as string[]) : [])\n .map((example) => {\n return <option key={example} value={example} />;\n })}\n </datalist>\n )}\n </>\n );\n}\n"],"names":[],"mappings":"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"}