1.0.10 • Published 6 years ago

react-inline-editing v1.0.10

Weekly downloads
946
License
MIT
Repository
github
Last release
6 years ago

A simple React inline editing component.

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.

example

Installation

npm install --save react-inline-editing

Component props

* Required

PropTypeDescription
text (*)stringText to be displayed on both the label and initially in the editor
isEditingboolFlags whether the label should be in editor mode
labelClassNamestringClass name for the text styling
labelFontSizestringFont size for the text
labelFontWeightstringFont weight for the text
inputMaxLengthnumberMax length for the input in editing mode
inputPlaceHolderstringPlaceholder for the input in editing mode
inputWidthstringWidth of the input in editing mode
inputHeightstringHeight of the input in editing mode
inputFontSizestringFont size for the input in editing mode
inputFontWeightstringFont weight for the input in editing mode
inputClassNamestringClass name for the input editor's styling
inputBorderWidthstringBorder width for the input in editing mode
onFocusfunctionCallback for text focusing. Parameter(s): text
onFocusOutfunctionCallback for focus leaving editor. Parameter(s): text

Example

import React from 'react';
import ReactDOM from 'react-dom';
import EditableLabel from 'react-inline-edit';

class App extends React.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>
            <EditableLabel text='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')
);