[flutter]: quill editor events flow

This commit is contained in:
appflowy 2021-10-22 11:42:25 +08:00
parent 5c0abd915c
commit 8e5cbfb84e

View File

@ -31,3 +31,45 @@
//
//
```
```
// ┌────────────────────────┐ ┌──────────────────┐
// │ RawGestureDetector │─▶│ RenderEditor │──┐
// └────────────────────────┘ └──────────────────┘ │
// │
// 1. pass the gesture event │
// │
// │
// ┌───────────────────────────────────┐ │ ┌────────────────┐ ┌──────────────────┐ ┌──────────────────────────────┐
// │RawEditorStateTextInputClientMixin │──┼──▶│QuillController │◀──listen────│ RenderState │──▶│ _didChangeTextEditingValue │
// └───────────────────────────────────┘ │ └────────────────┘ └──────────────────┘ └──────────────────────────────┘
// │ │ ▲ │
// 1. pass the text input event │ │ │ ▼
// │ └─────2. notify change──────────┘ ┌─────────────────────────────────┐
// │ │ _onChangeTextEditingValue │
// ┌─────────────────────────────┐ │ └─────────────────────────────────┘
// │ RawEditorStateKeyboardMixin │───┘ │
// └─────────────────────────────┘ ▼
// ┌──────────────────────┐ Update the ScrollController's pos after
// 1. pass the keyboard cur/ delete/ shortcut event │ _showCaretOnScreen │ post frame
// └──────────────────────┘
// │
// ▼
// ┌──────────────────────┐
// │ Config cursor timer │
// └──────────────────────┘
// │
// ▼
// ┌───────────────────────┐ ┌───────────────────────────────────┐
// │ addPostFrameCallback │─▶│_updateOrDisposeSelectionOverlayIfN│
// └───────────────────────┘ └───────────────────────────────────┘
// │
// │
// ▼
// ┌────────────┐
// │ setState │ make the RenderState to rebuild
// └────────────┘
```