This is an inline, editable text/label component built in React.
The <EditableLabel /> allows the user to simply click and edit text inline. It consists of a <label> element to display the unedited text and an <input /> element to allow editing.
npm install --save react-inline-editing
* Required
| Prop | Type | Description |
|---|---|---|
| text (*) | string | Text to be displayed on both the label and initially in the editor |
| isEditing | bool | Flags whether the label should be in editor mode |
| emptyEdit | bool | Flags whether the label should be in editor mode when text is empty('' or undefined) |
| labelPlaceHolder | string | Label value to display when text is not present |
| labelClassName | string | Class name for the text styling |
| labelFontSize | string | Font size for the text |
| labelFontWeight | string | Font weight for the text |
| inputMaxLength | number | Max length for the input in editing mode |
| inputPlaceHolder | string | Placeholder for the input in editing mode |
| inputWidth | string | Width of the input in editing mode |
| inputHeight | string | Height of the input in editing mode |
| inputFontSize | string | Font size for the input in editing mode |
| inputFontWeight | string | Font weight for the input in editing mode |
| inputClassName | string | Class name for the input editor's styling |
| inputBorderWidth | string | Border width for the input in editing mode |
| onFocus | function | Callback for text focusing. Parameter(s): text |
| onFocusOut | function | Callback for focus leaving editor. Parameter(s): text |
importReactfrom'react';importReactDOMfrom'react-dom';importEditableLabelfrom'react-inline-editing';classAppextendsReact.Component{constructor(props){super(props);this._handleFocus=this._handleFocus.bind(this);this._handleFocusOut=this._handleFocusOut.bind(this);}_handleFocus(text){console.log('Focused with text: '+text);}_handleFocusOut(text){console.log('Left editor with text: '+text);}render(){return<div><EditableLabeltext='Hello!'labelClassName='myLabelClass'inputClassName='myInputClass'inputWidth='200px'inputHeight='25px'inputMaxLength='50'labelFontWeight='bold'inputFontWeight='bold'onFocus={this._handleFocus}onFocusOut={this._handleFocusOut}/></div>}}ReactDOM.render(<App/>,document.getElementById('container'));