@canard/schema-form-antd-mobile-plugin
v0.13.1
Published
Ant Design Mobile components plugin for @canard/schema-form providing mobile-optimized form inputs for React Native and mobile web
Maintainers
Readme
@canard/schema-form-antd-mobile-plugin
Overview
@canard/schema-form-antd-mobile-plugin is a plugin for @canard/schema-form that provides Ant Design Mobile components.
Notice
⚠️ This plugin provides pre-implemented core components commonly needed when using @canard/schema-form in Ant Design Mobile environments.
📌 As the plugin's purpose is to enhance development convenience, it does not include every possible component.
💡 If you need FormTypeInput components not included in this plugin, you can freely implement them following the official @canard/schema-form guidelines.
How to use
yarn add @canard/schema-form @canard/schema-form-antd-mobile-pluginimport { SchemaForm, registerPlugin } from '@canard/schema-form';
import { plugin } from '@canard/schema-form-antd-mobile-plugin';
// Plugin will be registered globally
registerPlugin(plugin);Supported Components
This plugin provides the following Ant Design Mobile components:
FormTypeInputBooleanSwitch.tsx
- Role: Display boolean type data as a Switch component
- Applied when:
typeis"boolean"andformTypeis"switch" - Additional features: Support for custom labels for
checked/uncheckedstates
FormTypeInputStringCheckbox.tsx
- Role: Display string arrays as checkbox groups
- Applied when:
typeis"array",formTypeis"checkbox",items.typeis"string", andenumvalues exist - Additional features: Support for custom labels for each checkbox option
FormTypeInputStringSwitch.tsx
- Role: Toggle between two string values using a Switch
- Applied when:
typeis"string",formTypeis"switch", and theenumarray has exactly 2 values - Additional features: Support for custom labels per switch state
FormTypeInputRadioGroup.tsx
- Role: Display single selection of string or number as radio group
- Applied when:
typeis"string","number", or"integer",formTypeis"radio"or"radiogroup", andenumvalues exist - Additional features: Support for custom labels for radio options
FormTypeInputArray.tsx
- Role: Display array data as a list with dynamic add/remove capabilities
- Applied when:
typeis"array" - Additional features: Add/remove buttons hidden in read-only mode
FormTypeInputSlider.tsx
- Role: Input numeric values using a slider
- Applied when:
typeis"number"or"integer"andformatis"slider"- or
typeis"array",items.typeis"number"or"integer", andformatis"slider"(range slider)
- Additional features: Lazy update option, mark display, range slider support
FormTypeInputTextarea.tsx
- Role: Text area for multiline text input
- Applied when:
typeis"string"andformatorformTypeis"textarea" - Additional features: Support for automatic resizing via
minRows,maxRows
FormTypeInputString.tsx
- Role: Default string input field
- Applied when:
typeis"string"(fallback when other conditions don't match) - Additional features: Operates as password input field when
formatis"password"
FormTypeInputNumber.tsx
- Role: Stepper component for numeric input
- Applied when:
typeis"number"or"integer"(fallback when other conditions don't match) - Additional features: Support for
minimum,maximum,multipleOfschema properties
FormTypeInputBoolean.tsx
- Role: Display boolean values as checkboxes
- Applied when:
typeis"boolean"(fallback when other conditions don't match) - Additional features: Support for
indeterminatestate forundefinedvalues
Component Priority
Component selection is determined by the following priority order:
- In-line component: Component specified as
FormTypeInputproperty in the schema - FormTypeInputMap: Component explicitly mapped to a path
- FormTypeInputDefinition: Automatic selection through each component's
testcondition - Provider FormTypeInputDefinition: Component definitions provided by parent Provider
- Plugin: Components from registered plugins (including this plugin)
- Fallback: Default fallback components
Within the same priority level, earlier items in the array take precedence. Components in this plugin are defined in the following order:
FormTypeInputBooleanSwitch → FormTypeInputStringCheckbox → FormTypeInputStringSwitch → FormTypeInputRadioGroup → FormTypeInputArray → FormTypeInputSlider → FormTypeInputTextarea → FormTypeInputString → FormTypeInputNumber → FormTypeInputBoolean
Compatibility
@canard/schema-form-antd-mobile-plugin is built with ECMAScript 2020 (ES2020) syntax.
If you're using a JavaScript environment that doesn't support ES2020, you'll need to include this package in your transpilation process.
Supported environments:
- Node.js 14.17.0 or later
- Modern browsers (Chrome 91+, Firefox 90+, Safari 14+)
For legacy environment support: Please use a transpiler like Babel to transform the code for your target environment.
License
This repository is licensed under the MIT License. Please refer to the LICENSE file for details.
Contact
For inquiries or suggestions related to the project, please create an issue.
