This editor was built using Draft.js and is essentially a clone of the Facebook Notes editor, without the image formatting options, link decorators, and code block support.
I built it to get familiar with Draft.js and it's heavily based off the examples there. It also shows some techniques for positioning side and inline toolbars according to the selection state.
Draft.js made accomplishing once complex tasks incredibly easy and fast. With just a little more time it could be an exact clone of the Facebook Notes editor.
I hope to update this to use the Draft.js Plugins Project in order to add additional functionality soon, and to heavily clean everything up.
npm install draft-note-editor
import and then use the Component
import {RichEditor} from 'draft-note-editor'
<RichEditor />
Also include stylesheets in the styles
directory to your page.