implement enhanced clipboard for html editor #3150
Draft
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
Currently,
appflowy_editor
own clipboard APIs don't support handling rich text copy/paste. But interestingly, they have support in their parent repo which is built on flutter front-end and discovered very interesting package they've been using for handling formatted text and custom events: https://pub.dev/packages/super_clipboard.The package itself relies on rust for low level functionality as they've described which is of course, efficient but also has a way of supporting custom json objects (imo can be very good for handling our acter objects inline). And not only handles events in-app but also supports receiving external events (like browser or another app). Although in some platforms, some might impose restrictions because of their nature but normally it works well as it's been previewed below.
PREVIEW:
Tested it with Firefox Browser and showcasing clipboard events receiving and sending:
Screen.Recording.2025-06-27.at.20.01.38.mov
General usage showcase:
(DESKTOP):
Screen.Recording.2025-06-27.at.20.17.45.mov
(MOBILE):
ScreenRecording_06-27-2025.21-35-33_1.MP4