Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lexical based editor #5058

Merged
merged 107 commits into from
Sep 27, 2024
Merged

Lexical based editor #5058

merged 107 commits into from
Sep 27, 2024

Conversation

ssddanbrown
Copy link
Member

@ssddanbrown ssddanbrown commented Jun 6, 2024

Playing with the idea of using Lexical as a new editor, to eventually replace TinyMCE.
A lot of work though, not looking forward to tables 😱.
Switching direct from TinyMCE would be a hard landing, as the schema/structure imposed does is more strict than what TinyMCE would accept in our configuration, and there's bound to be many differences.
Would want to release in parallel, first as opt-in, then opt-out, then remove TinyMCE.

Related to #4908

Changed from using a decorator to using a helper that watches for image
selections to then display a resize helper.
Also changes resizer to use a ghost and apply changes on end instead of
continuosly during resize.
- Updated selection change detection to be more accurate
- Added UI refresh for extra actions
- Fixed remove link deleting contents
- Improved node resizer positioning to be more accurate
- Fixed drop handling not running within editor margin space
- Made media dom update smarter to reduce reloads
- Fixed media alignment, broken due to added wrapper
- Cleaned up dropdown lists to look integrated
- Added icons for color picker clear and menu list items
Also updated media to be an inline element to align with old editor
behaviour.
Needed a custom implementation due to hardcoded defaults for Lexical
default indenting.
Added list nesting support to allow li > ul style nesting which lexical
didn't do by default.
Adds tab handling for inset/outset controls.
Will be a range of edge-case bugs to squash during testing.
Kinda useless though due to Lexical reconciler :(
Imported at 0.17.1, Modified to work in-app.
Added & configured test dependancies.
Tests need to be altered to avoid using non-included deps including
react dependancies.
- Updated tests to consider changes
Also removed duplicated dir functionality that remained in core.
- Prevented ui shortcuts running in editor
- Added form modal closing on submit
- Fixed ability to escape lists via enter on empty last item
- Updated toolbar to match existing editor, including dynamic RTL/LTR
  controls.
- Updated text node handling to not include spans and extra classes when
  not needed. Added & update tests to cover.
@ssddanbrown ssddanbrown added this to the Next Feature Release milestone Sep 27, 2024
@ssddanbrown ssddanbrown merged commit b35b62d into development Sep 27, 2024
8 of 9 checks passed
@ssddanbrown ssddanbrown deleted the lexical branch November 8, 2024 13:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment