Summary:
- Rewrites composer extension adpater to support all versions of the
ComposerExtension API we've ever declared. This will allow old plugins (or
plugins that haven't been reinstalled after update) to keep functioning
without breaking N1
- Adds specs
Test Plan: - Unit tests
Reviewers: evan, bengotow
Reviewed By: bengotow
Differential Revision: https://phab.nylas.com/D2399
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
Summary: This uses DOM mutation observers instead of `onInput`
Test Plan: manual and new integration tests
Reviewers: bengotow, juan
Differential Revision: https://phab.nylas.com/D2291
feat(contenteditable): add bold, underline, etc keymaps
Moving button extensions out of toolbar
Extracted floating toolbar buttons
Convert ContenteditableExtension to new spec
Update packages to use new callback signature
Fix specs
Summary:
- Rename DraftStoreExtension to ComposerExtension
- Rename MessageStoreExtension to MessageViewExtension
- Rename ContenteditablePlugin to ContenteditableExtension
- Update Contenteditable to use new naming convention
- Adds support for extension handlers as props
- Add ExtensionRegistry to register extensions:
- ContenteditableExtensions will not be registered through the
ExtensionRegistry. They are meant for internal use, or if anyone wants
to use our Contenteditable component directly in their plugins.
- Adds specs
- Refactors internal_packages and src to use new names and new ExtensionRegistry api
- Adds deprecation util function and deprecation notices for old api methods:
- DraftStore.{registerExtension, unregisterExtension}
- MessageStore.{registerExtension, unregisterExtension}
- DraftStoreExtension.{onMouseUp, onTabDown}
- MessageStoreExtension
- Adds and updates docs
Test Plan: - Unit tests
Reviewers: bengotow, evan
Reviewed By: evan
Differential Revision: https://phab.nylas.com/D2293
2015-11-30 16:08:05 -08:00
Renamed from internal_packages/composer-spellcheck/lib/draft-extension.coffee (Browse further)