mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-30 11:59:02 +08:00
c9ea5b6483
Summary: SEE ASSOCIATED SUBMODULE DIFF This enables rich React components (like the Scheduler's `NewEventCard`) to be used in contenteditables. We introduce the concept of an "Overlaid Component". These are rendered React components that are absolutely positioned on top of an equivalent "Anchor" in a contenteditable. Inside the contenteditable are special `<img />` tags that have an id corresponding to a particular rich overlaid component. This way, even if those img tags are cut and pasted or moved, they'll have a mapping to a particular component stored in the `OverlaidComponentStore`. Img tags are fairly well handled natively by contenteditable and allow you to maniuplate these overlaid components as normal text elements. The `OverlaidComponentStore` is responsible for listening to and managing the state of the Anchors and their equivalent OverlaidComponents. We use a decorator called `ListenToChanges` that allows us to wrap components to update their corresponding anchor. Since we need to know about ALL changes that could affect rendered height and width, we need to use a `MuatationListener` instead of the React render cycle. This is only the initial diff. There are several TODOs here: https://paper.dropbox.com/doc/Composer-Overlaid-Components-FoZrF0cFggzSUZirZ9MNo Test Plan: TODO. Manual Reviewers: juan, bengotow Reviewed By: juan Differential Revision: https://phab.nylas.com/D2946 |
||
---|---|---|
.. | ||
keymaps | ||
lib | ||
spec | ||
stylesheets | ||
.bowerrc | ||
.gitignore | ||
package.json | ||
README.md |