Skip to Content

JsonInput

Textarea input for capturing and validating JSON data from users.

Import

import { JsonInput } from '@tidbcloud/uikit'

Basic Usage

JsonInput includes JSON validation and optional formatting on blur:

import { JsonInput } from '@tidbcloud/uikit' function Demo() { return ( <JsonInput label="Your package.json" placeholder="Textarea will autosize to fit the content" validationError="Invalid JSON" formatOnBlur autosize minRows={4} /> ) }

Controlled

import { useState } from 'react' import { JsonInput } from '@tidbcloud/uikit' function Demo() { const [value, setValue] = useState('') return <JsonInput value={value} onChange={setValue} /> }

With Validation Error

import { JsonInput } from '@tidbcloud/uikit' function Demo() { return ( <JsonInput label="Configuration" placeholder='{ "key": "value" }' validationError="Please enter valid JSON" formatOnBlur autosize minRows={4} /> ) }

Disabled State

import { JsonInput } from '@tidbcloud/uikit' function Demo() { return <JsonInput disabled defaultValue='{ "a": 1, "b": 2 }' label="Disabled" placeholder="Disabled" /> }

Key Props

PropTypeDescription
valuestringControlled value
onChange(value: string) => voidCalled when value changes
validationErrorReactNodeError message for invalid JSON
formatOnBlurbooleanFormat JSON when input loses focus
autosizebooleanAuto-grow textarea height
minRowsnumberMinimum rows for autosize
maxRowsnumberMaximum rows for autosize
labelReactNodeInput label
descriptionReactNodeInput description
errorReactNodeError message
disabledbooleanDisable the input

Accessibility

Associate the input with a label for better screen reader support.

Last updated on