-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
Writing Flow: allow undo of patterns with BACKSPACE and ESC #14776
Conversation
1408408
to
02b7dc7
Compare
Hi @ellatrix I have tested the branch and it worked but it behaved in a strange way: When the Undo is applied the focus is lost and I can't continue typing. |
@draganescu That's "normal". We don't have the ability yet to restore selection after undo, for that we'll need #14640. :) To test: try to undo anything in the editor, like typing a word, and you'll see that selection will be lost. Thanks for reviewing! |
02b7dc7
to
b17757a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ellatrix you are correct, that is the "normal" behavior, which makes this change set good to go. There are some conflicts though, but that it all
b17757a
to
72da05d
Compare
72da05d
to
f0d654a
Compare
Last time I checked I ran into some issues. I'll have to look into this again. |
f0d654a
to
3a06020
Compare
3a06020
to
f4019b0
Compare
be27d13
to
5cfbb51
Compare
For that we'll need #16428, which is ready for final review. |
🎉 😄 |
…s#14776) * RichText/Patterns/Input Interaction: allow undo of patterns with BACKSPACE and ESC * Only run input rules when inserting text * Fix typo * Simplify
* ensure all selection changes have been recorded. | ||
*/ | ||
markAutomaticChange() { | ||
window.requestIdleCallback( () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we polyfill requestIdleCallback
? It doesn't seem ready for primetime. Elsewhere in the codebase we have a fallback for it:
const requestIdleCallback = window.requestIdleCallback ? window.requestIdleCallback : window.requestAnimationFrame; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed in #17213
* RichText/Patterns/Input Interaction: allow undo of patterns with BACKSPACE and ESC * Only run input rules when inserting text * Fix typo * Simplify
* RichText/Patterns/Input Interaction: allow undo of patterns with BACKSPACE and ESC * Only run input rules when inserting text * Fix typo * Simplify
into rnmobile/add-autosave-to-mobile * 'rnmobile/master' of https://github.com/WordPress/gutenberg: (52 commits) [RNMobile] DarkMode improvements (#17309) Remove redundant bg color within button appender (#17325) Support group block on mobile (#17251) [RNMobile] Insure tapping at end of post inserts at end Recover border colors (#17269) [RNMobile] Fix dismiss keyboard button for the post title (#17260) Unify media placeholder and upload props within media-text (#17268) MediaUpload and MediaPlaceholder unify props (#17145) Add native support for the MediaText block (#16305) Activate Travis CI on rnmobile/master branch (#17229) [RNMobile] Native mobile release v1.11.0 (#17181) Apply box-sizing border-box properly to the notices components (#17066) Writing Flow: allow undo of patterns with BACKSPACE and ESC (#14776) Project automation: Rewrite actions using JavaScript (#17080) Build: remove global install of latest npm since we want to use the paired node/npm version (#17134) Writing Flow/Quote: allow splitting (#17121) Use `400` as a valid `font-weight` Add: Disabled block count in the block manager (#17103) Update video player style on mobile - Add a new gridicon play icon, from: https://github.com/Automattic/gridicons/blob/87c9fce08b4a9f184b9fb4963228757fdd4f4e74/svg-min/gridicons-play.svg - Replace the Dashicon play by this one - Update icon size and icon color - Update the overlay color [RNMobile] Hide replaceable block when adding block (#16931) ... # Conflicts: # packages/block-editor/src/components/block-list/index.native.js # packages/block-editor/src/components/inserter/index.native.js # packages/block-editor/src/components/inserter/menu.native.js # packages/block-editor/src/components/media-placeholder/index.native.js # packages/block-editor/src/components/warning/index.native.js # packages/block-library/src/code/edit.native.js # packages/block-library/src/image/edit.native.js # packages/block-library/src/missing/edit.native.js # packages/block-library/src/more/edit.native.js # packages/block-library/src/nextpage/edit.native.js # packages/block-library/src/video/edit.native.js # packages/components/src/mobile/bottom-sheet/cell.native.js # packages/components/src/mobile/bottom-sheet/index.native.js # packages/components/src/mobile/dark-mode/index.native.js # packages/components/src/mobile/html-text-input/index.native.js # packages/components/src/toolbar/toolbar-container.native.js # packages/edit-post/src/components/header/header-toolbar/index.native.js # packages/edit-post/src/components/layout/index.native.js # packages/edit-post/src/components/visual-editor/index.native.js # packages/rich-text/src/component/index.native.js
Description
Fixes #8942.
Fixes #16649.
Fixes #17038.
Sets a flag when an automatic change (input rule) happened, so it can be used to undo when
Backspace
,Delete
orEscape
is pressed. The flag is removed as soon any action follows.This will hopefully alleviate the frustration when something automatically changes based on an input rule. It doesn't restore the selection though, only the content. For that, we'll need #16428.
How has this been tested?
See e2e tests.
Screenshots
Types of changes
Checklist: