Complexity Score
Medium
Open Issues
47
Dependent Projects
78
Weekly Downloadsglobal
137,570
License
- Apache-2.0
- Yesattribution
- Permissivelinking
- Permissivedistribution
- Permissivemodification
- Yespatent grant
- Yesprivate use
- Permissivesublicensing
- Notrademark grant
Downloads
Readme
react-contenteditable
React component for a div with editable contents
Install
npm install react-contenteditable
Usage
import React from 'react'
import ContentEditable from 'react-contenteditable'
class MyComponent extends React.Component {
constructor() {
super()
this.contentEditable = React.createRef();
this.state = {html: "<b>Hello <i>World</i></b>"};
};
handleChange = evt => {
this.setState({html: evt.target.value});
};
render = () => {
return <ContentEditable
innerRef={this.contentEditable}
html={this.state.html} // innerHTML of the editable div
disabled={false} // use true to disable editing
onChange={this.handleChange} // handle innerHTML change
tagName='article' // Use a custom HTML tag (uses a div by default)
/>
};
};
Available props
prop description type innerRef element’sref
attribute
Object | Function
html
required: innerHTML of the editable element
String
disabled
use true to disable editing
Boolean
onChange
called whenever innerHTML
changes
Function
onBlur
called whenever the html element is blurred
Function
onFocus
event fires when an element has received focus
Function
onKeyUp
called whenever a key is released
Function
onKeyDown
called whenever a key is pressed
Function
className
the element’s CSS class
String
style
a collection of CSS properties to apply to the element
Object
Known Issues
If you are using hooks, please see this issue. Using this component with useState
doesn’t work, but you can still use useRef
:
const text = useRef('');
const handleChange = evt => {
text.current = evt.target.value;
};
const handleBlur = () => {
console.log(text.current);
};
return <ContentEditable html={text.current} onBlur={handleBlur} onChange={handleChange} />
Examples
You can try react-contenteditable right from your browser to see if it fits your project’s needs:
- Simple example : just an editable
<div>
with a default value. - Advanced example : custom tag, input sanitization, and rich text edition.
Dependencies
CVE IssuesActive
0
Scorecards Score
2.90
Test Coverage
No Data
Follows Semver
Yes
Github Stars
1,650
Dependenciestotal
5
DependenciesOutdated
2
DependenciesDeprecated
0
Threat Modelling
No
Repo Audits
No
Learn how to distribute react-contenteditable in your own private NPM registry
$npm config set registry
https://npm.cloudsmith.com/owner/repo
/Processing...
✓Done
$npm install react-contenteditable
/Processing...
✓Done
41 Releases
NPM on Cloudsmith