
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-prosemirror
Advanced tools
An unofficial React component for ProseMirror.
import ProseMirror from 'react-prosemirror'
const Hello = React.createClass({
getInitialState() {
return {value: 'Hello World!'}
},
render() {
return <ProseMirror value={this.state.value} onChange={this.onChange} options={{docFormat: 'html'}} />
},
onChange(value) {
this.setState({value})
}
})
Via NPM (note that you need to install ProseMirror yourself)
npm install --save react-prosemirror prosemirror
If your target environment doesn't natively support Object.assign, you may need to use some sort of polyfill such as babel-polyfill.
The intent is to provide an API compatible with standard React form elements. react-prosemirror supports defaultValue, value and onChange props as well as valueLink. It additionally supports an options prop which is passed directly to the ProseMirror constructor.
The ProseMirror instance is stored on the component instance as pm. You can gain access to it by putting a ref prop on the component.
render() {
return <ProseMirror value={value} onChange={callback} ref="editor" />
},
someFunc(posA, posB) {
this.refs.editor.pm.setSelection(posA, posB)
}
Finally, instances have a getContent method which defaults to the selected docFormat.
react-prosemirror simply passes options into ProseMirror. It will not automatically load other modules. For example, if you wish to use the menubar option or markdown format, you'll need to import those modules in addition to adding the appropriate options.
import 'prosemirror/dist/markdown'
import 'prosemirror/dist/menu/menubar'
options.docFormat is used to determine the type of value returned to the onChange callback as well as what is expected to be in the value prop.
react-prosemirror will attempt to control the component in the spirit of standard React form elements (see: Why Controlled Components?). To avoid thrashing ProseMirror, it will only call setContent when the new value is not strictly equal (===) to the last value pulled from ProseMirror. This should work for most cases, but be aware of that if you're using a complex type such as json.
I would consider this library largely complete within its scope, though clearly not proven in a production setting. I'm open to refinements, especially around the interaction of docFormat and controlled values.
I intend to track ProseMirror API changes as needed.
FAQs
A React component for ProseMirror
We found that react-prosemirror 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.