
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
react-schema-ui
Advanced tools
Build schema-driven UIs, in seconds.
React Schema UI offers:
Install the package
npm install react-schema-ui -S
Import sensible CSS default
@import url('./src/css/core.css');
Provide a schema
// The schema describes the value that should be displayed
var schemaDefinition={
schemaType : 'object',
properties: [
{
schemaType: 'property',
name: 'title',
type: 'string'
}
]
};
Generate a UI!
let TodoView=React.createClass({
render() {
return (
<ReactSchemaView
schema={schemaDefinition}
value={todo}
editable={true} />
);
}
});
React Schema UI includes built-in editing functionality and acts as a controlled component.
The default editing mode, form, behaves like a traditional HTML form; that is, all value containers are rendered as editable and changes are submitted as a whole to onChange.
let TodoView=React.createClass({
render() {
return (
<ReactSchemaView
schema={schema}
editable={true}
value={this.props.todo}
onChange={this.handleChange}
/>
);
}
handleChange(e) {
todoStore.upsert(e.getValue());
}
});
All value containers are rendered as readable and editable. When touched or clicked, the editable value container enters the editing state. This mode aims to keep only a single value container in the editing state at any given time.
When changes are committed, the change will be passed along immediately via onChangeProperty.
It is not uncommon for raw data to need modification before presentation to the end user. RSUI supports value modifiers to handle these needs:
let TodoView=React.createClass({
render() {
return (
<ReactSchemaView
schema={todoSchema}
editable={true} />
);
}
});
Often custom viewers or editors are desired for dealing with specialized data types. For this, the viewers and editors props can be used to provide custom components for viewing and editing data.
These components must conform to the ValueViewer protocol and if needed, the ValueEditor protocol.
let TodoView=React.createClass({
render() {
return (
<ReactSchemaView
schema={todoSchema}
editable={true}
propertyEditors={
'propertyName' : CustomEditor
}
/>
);
}
});
If more fine-grained control is needed, the renderValueViewer and renderValueEditor props will be called to render the respective component.
let renderCustomViewer = (propertySchema, value) {
return (<div id='#custom'>{value}</div>);
};
<ReactSchemaView
schema={todoSchema}
renderValueViewer={renderCustomViewer} />
The protocol is very simple:
value prop to be displayed.onChange prop that should be called when changes are made to the value.FAQs
Build Schema-driven UIs in seconds
We found that react-schema-ui demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.