react-text-inline-edit
v1.1.0
Published
A simple inline text editor for React
Maintainers
Readme
Currently not doing to support
But we will see how it is used and if it works fine!
Inline Edit Component for React
Before you continue, check out a successor to this repo: React Inline Edit Kit. It is more functional, and will be maintained in future.
This is a simple React component for in-place text editing. It turns into an <input /> when focused, and tries to validate and save input on Enter or blur. Esc works as well for cancelling.

Watch a demo, then check out demo/index.jsx for a quick example.
Installation
npm install react-edit-inline --save-dev
Required props
text:stringinitial textparamName:stringname of the parameter to be returned tochangefunctionchange:functionfunction to call when new text is changed and validated, it will receive{paramName: value}
Optional props
className:string CSS class nameactiveClassName:string CSS class replacement for when in edit modevalidate:function boolean function for custom validation, using this overrides the two props belowminLength:number minimum text length, default1maxLength:number maximum text length, default256editingElement:string element name to use when in edit mode (DOM must havevalueproperty) defaultinputstaticElement:string element name for displaying data defaultspanediting:boolean If true, element will be in edit modetabIndex:number tab index used for focusing with TAB key default0stopPropagation:boolean If true, the event onClick will not be further propagated.
Usage example
import React from 'react';
import InlineEdit from 'react-edit-inline';
class MyParentComponent extends React.Component {
constructor(props){
super(props);
this.dataChanged = this.dataChanged.bind(this);
this.state = {
message: 'ReactInline demo'
}
}
dataChanged(data) {
// data = { description: "New validated text comes here" }
// Update your model from here
console.log(data)
this.setState({...data})
}
customValidateText(text) {
return (text.length > 0 && text.length < 64);
}
render() {
return (<div>
<h2>{this.state.message}</h2>
<span>Edit me: </span>
<InlineEdit
validate={this.customValidateText}
activeClassName="editing"
text={this.state.message}
paramName="message"
change={this.dataChanged}
style={{
backgroundColor: 'yellow',
minWidth: 150,
display: 'inline-block',
margin: 0,
padding: 0,
fontSize: 15,
outline: 0,
border: 0
}}
/>
</div>)
}
}