
Security News
Browserslist-rs Gets Major Refactor, Cutting Binary Size by Over 1MB
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
react-talend-forms
Advanced tools
This library is designed to be used on top of react-jsonschema-form, a React component for building Web forms from JSONSchema.
In addition of Mozilla lib, this wrapper uses react-bootstrap to not have to maintain Bootstrap markup.
Run npm install --save react-talend-forms
.
The forms can be used like any other React components. You'll have to pass it a JSONSchema and a onSubmit callback as a minimum to handle forms rendering and get the data back.
import Form from 'react-talend-forms';
class MyForm extends React.Component {
onSubmit(formData) {
console.log(formData);
}
onCancel() {
console.log('Cancelled');
}
render() {
const actions = [
{ style: 'link', onClick: this.onCancel, type: 'button', label: 'CANCEL' },
{ style: 'primary', type: 'submit', label: 'VALIDATE' },
];
return (
<Form data={this.props.data} actions={actions} onSubmit={this.onSubmit} />
);
}
}
Here is the archetype of the data property required to render the form:
{
"jsonSchema": {},
"uiSchema": {},
"properties": {}
}
Forms now render a react-talend-components Action
component for each action given to it.
Each action accept the following properties :
property | propType | required | default | doc |
---|---|---|---|---|
iconPosition | other | no | - | |
icon | string | no | - | |
hideLabel | bool | no | - | |
disabled | bool | no | {false} | |
style | string | no | "default" | equivalent to action bsStyle props |
iconTransform | string | no | - | |
id | string | no | - | |
inProgress | bool | no | {false} | |
label | string | yes | - | |
link | bool | no | - | |
model | object | no | - | |
name | string | no | - | render a name button html property |
onClick | func | yes | - | execute the callback with formData , formId , propertyName , propertyValue as parameters |
tooltip | bool | no | - | |
tooltipPlacement | other | no | "top" | |
type | 'submit'|'button' | no | - | by default render a button without submit type |
If uiSchema has some triggers like
{
"jsonSchema": {
"id": "ListExample",
"type": "object",
"properties": {
"propertyName": {
"type": "string",
"enum": [
"option 0",
"option 1",
"option 2"
]
}
}
},
"uiSchema": {
"propertyName": {
"ui:trigger": [ "after" ]
}
},
"properties": {}
}
Then onChange
will be triggered when propertyName
field value has changed.
import Form from 'react-talend-forms';
class MyForm extends React.Component {
onChange(formData, formId, propertyName, propertyValue) {
console.log(formData, formId, propertyName, propertyValue);
}
onSubmit(formData) {
console.log(formData);
}
render() {
return (
<Form
data={this.props.data}
onChange={this.onChange}
onSubmit={this.onSubmit}
/>
);
}
}
The data and actions PropTypes are exported for easy reuse. You can use them by importing the DataPropTypes and ActionsPropTypes functions.
import Form, { DataPropTypes, ActionsPropTypes } from 'react-talend-forms'
Copyright (c) 2006-2016 Talend
Licensed under the Apache V2 License
FAQs
react-talend-forms library.
We found that react-talend-forms demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Browserslist-rs now uses static data to reduce binary size by over 1MB, improving memory use and performance for Rust-based frontend tools.
Research
Security News
Eight new malicious Firefox extensions impersonate games, steal OAuth tokens, hijack sessions, and exploit browser permissions to spy on users.
Security News
The official Go SDK for the Model Context Protocol is in development, with a stable, production-ready release expected by August 2025.