React Sane Contenteditable Save

React component with sane defaults to make any element contentEditable

Project README

react-sane-contenteditable

npm version

React component with sane defaults to make any element contentEditable

DEMO: https://jsfiddle.net/zp2v824s/show

Why?

ContentEditable has some well known issues, and the purpose of this component is to deal with them in a sane manner so we don't have to continue re-inventing the wheel! 🔥

  • Clean and sanitise the output
  • Remove rich text formatting when pasting
  • Prevent the cursor from jumping around

Example

import React, { Component } from 'react';
import ContentEditable from 'react-sane-contenteditable';

class App extends Component {
  constructor(props) {
    super(props);

    this.state = {
      title: 'Title here',
    };
  }

  handleChange = (ev, value) => {
    this.setState({ title: value });
  };

  render() {
    return (
      <div className="App">
        <ContentEditable
          tagName="h1"
          className="my-class"
          content={this.state.title}
          editable={true}
          maxLength={140}
          multiLine={false}
          onChange={this.handleChange}
        />
      </div>
    );
  }
}

Develop

Tests

yarn test

Linting

yarn run lint

Dev

Runs the rollup dev server with file watching on both the src and demo

yarn run dev

Open Source Agenda is not affiliated with "React Sane Contenteditable" Project. README Source: ashleyw/react-sane-contenteditable
Stars
51
Open Issues
33
Last Commit
1 year ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating