Mailspring/src/components
Evan Morikawa d18642fb3e refactor(contenteditable): new ContenteditableExtension API
Summary:
This provides a new API for `ContenteditableExtension`s. Instead of
manually manipulating the raw DOM and `Selection` objects, there's a new
`Editor` interface that encapsulates it and provides helper methods.

You can now do:

      editor.select(someNode).createLink("foo").collapseToEnd()

Now raw methods like `execCommand` ONLY show up in the `Editor` interface
as well as most of the raw `Selection` APIs.

There are also more integration tests :)

Another major goal was cleaning up the contenteditable file itself. To
that end:

1. The DOMNormalizer got pulled out into its own extension
1. The TabManager is now its own extension
1. Url wrangling got moved into the FloatingToolbar control
1. There is now the concept of a `ContenteditableService`, which are
tightly-couple blocks of code separated out into logical units. These are
dependent on the core state, innerState, and props and are not full
extensions.
1. `MouseService` now handles all the click event logic
1. `ClipboardService` was modified to the new service architecture

Test Plan: script/grunt run-integration-tests

Reviewers: drew, juan, bengotow

Reviewed By: juan, bengotow

Differential Revision: https://phab.nylas.com/D2367
2015-12-21 19:58:01 -08:00
..
contenteditable refactor(contenteditable): new ContenteditableExtension API 2015-12-21 19:58:01 -08:00
button-dropdown.cjsx
config-prop-container.cjsx
disclosure-triangle.cjsx
draggable-img.cjsx
drop-zone.cjsx
editable-list.jsx
evented-iframe.cjsx
flexbox.cjsx
focus-tracking-region.cjsx
generated-form.cjsx
injected-component-label.cjsx
injected-component-set.cjsx
injected-component.cjsx
key-commands-region.cjsx
list-tabular.cjsx
mail-important-icon.cjsx
mail-label.cjsx
menu.cjsx
multiselect-action-bar.cjsx
multiselect-list-interaction-handler.coffee
multiselect-list.cjsx
multiselect-split-interaction-handler.coffee
popover.cjsx
resizable-region.cjsx
retina-img.cjsx
scroll-region.cjsx
spinner.cjsx
switch.cjsx
timeout-transition-group.cjsx
tokenizing-text-field.cjsx
unsafe-component.cjsx