Extract block draggable scroll behaviour into React hook #23444
Conversation
Size Change: +61 B (0%) Total Size: 1.13 MB
|
Filename | Size | Change | |
---|---|---|---|
build/a11y/index.js |
1.14 kB | 0 B | |
build/annotations/index.js |
3.62 kB | 0 B | |
build/api-fetch/index.js |
3.4 kB | 0 B | |
build/autop/index.js |
2.82 kB | 0 B | |
build/blob/index.js |
620 B | 0 B | |
build/block-directory/index.js |
7.37 kB | 0 B | |
build/block-directory/style-rtl.css |
941 B | 0 B | |
build/block-directory/style.css |
942 B | 0 B | |
build/block-editor/style-rtl.css |
10.7 kB | 0 B | |
build/block-editor/style.css |
10.7 kB | 0 B | |
build/block-library/editor-rtl.css |
7.59 kB | 0 B | |
build/block-library/editor.css |
7.6 kB | 0 B | |
build/block-library/index.js |
130 kB | 0 B | |
build/block-library/style-rtl.css |
8.04 kB | 0 B | |
build/block-library/style.css |
8.04 kB | 0 B | |
build/block-library/theme-rtl.css |
730 B | 0 B | |
build/block-library/theme.css |
732 B | 0 B | |
build/block-serialization-default-parser/index.js |
1.88 kB | 0 B | |
build/block-serialization-spec-parser/index.js |
3.1 kB | 0 B | |
build/blocks/index.js |
48.2 kB | 0 B | |
build/components/index.js |
198 kB | 0 B | |
build/components/style-rtl.css |
15.9 kB | 0 B | |
build/components/style.css |
15.9 kB | 0 B | |
build/compose/index.js |
9.62 kB | 0 B | |
build/core-data/index.js |
11.4 kB | 0 B | |
build/data-controls/index.js |
1.29 kB | 0 B | |
build/data/index.js |
8.44 kB | 0 B | |
build/date/index.js |
5.47 kB | 0 B | |
build/deprecated/index.js |
772 B | 0 B | |
build/dom-ready/index.js |
569 B | 0 B | |
build/dom/index.js |
3.19 kB | 0 B | |
build/edit-navigation/index.js |
9.87 kB | 0 B | |
build/edit-navigation/style-rtl.css |
1.02 kB | 0 B | |
build/edit-navigation/style.css |
1.02 kB | 0 B | |
build/edit-post/index.js |
303 kB | 0 B | |
build/edit-post/style-rtl.css |
5.51 kB | 0 B | |
build/edit-post/style.css |
5.5 kB | 0 B | |
build/edit-site/index.js |
16.6 kB | 0 B | |
build/edit-site/style-rtl.css |
3.02 kB | 0 B | |
build/edit-site/style.css |
3.02 kB | 0 B | |
build/edit-widgets/index.js |
9.32 kB | 0 B | |
build/edit-widgets/style-rtl.css |
2.42 kB | 0 B | |
build/edit-widgets/style.css |
2.42 kB | 0 B | |
build/editor/editor-styles-rtl.css |
537 B | 0 B | |
build/editor/editor-styles.css |
539 B | 0 B | |
build/editor/index.js |
44.8 kB | 0 B | |
build/editor/style-rtl.css |
3.83 kB | 0 B | |
build/editor/style.css |
3.83 kB | 0 B | |
build/element/index.js |
4.65 kB | 0 B | |
build/escape-html/index.js |
733 B | 0 B | |
build/format-library/index.js |
7.73 kB | 0 B | |
build/format-library/style-rtl.css |
547 B | 0 B | |
build/format-library/style.css |
548 B | 0 B | |
build/hooks/index.js |
2.13 kB | 0 B | |
build/html-entities/index.js |
622 B | 0 B | |
build/i18n/index.js |
3.56 kB | 0 B | |
build/is-shallow-equal/index.js |
710 B | 0 B | |
build/keyboard-shortcuts/index.js |
2.51 kB | 0 B | |
build/keycodes/index.js |
1.94 kB | 0 B | |
build/list-reusable-blocks/index.js |
3.13 kB | 0 B | |
build/list-reusable-blocks/style-rtl.css |
450 B | 0 B | |
build/list-reusable-blocks/style.css |
451 B | 0 B | |
build/media-utils/index.js |
5.29 kB | 0 B | |
build/notices/index.js |
1.79 kB | 0 B | |
build/nux/index.js |
3.4 kB | 0 B | |
build/nux/style-rtl.css |
663 B | 0 B | |
build/nux/style.css |
660 B | 0 B | |
build/plugins/index.js |
2.56 kB | 0 B | |
build/primitives/index.js |
1.5 kB | 0 B | |
build/priority-queue/index.js |
789 B | 0 B | |
build/redux-routine/index.js |
2.85 kB | 0 B | |
build/rich-text/index.js |
14 kB | 0 B | |
build/server-side-render/index.js |
2.68 kB | 0 B | |
build/shortcode/index.js |
1.7 kB | 0 B | |
build/token-list/index.js |
1.28 kB | 0 B | |
build/url/index.js |
4.06 kB | 0 B | |
build/viewport/index.js |
1.85 kB | 0 B | |
build/warning/index.js |
1.14 kB | 0 B | |
build/wordcount/index.js |
1.17 kB | 0 B |
const scrollParentY = useRef( null ); | ||
|
||
const scrollEditorInterval = useRef( null ); | ||
const blockElementId = `block-${ clientIds[ 0 ] }`; |
youknowriad
Jun 25, 2020
Contributor
I think right now we have a better way to get the block node from the tree using the "BlockNodes" context which means we can probably avoid this argument entirely.
I think right now we have a better way to get the block node from the tree using the "BlockNodes" context which means we can probably avoid this argument entirely.
talldan
Jun 25, 2020
Author
Contributor
Oh yep, I recall seeing that. I've changed the code to use that.
I noticed as well that the code in the hook is fairly agnostic to any kind of drag/drop event, so I went with making the hook accept a dragElement
and BlockDraggable
now grabs the block's element from BlockNodes
context to pass into the hook.
Oh yep, I recall seeing that. I've changed the code to use that.
I noticed as well that the code in the hook is fairly agnostic to any kind of drag/drop event, so I went with making the hook accept a dragElement
and BlockDraggable
now grabs the block's element from BlockNodes
context to pass into the hook.
talldan
Jun 25, 2020
Author
Contributor
I didn't see any issues when testing manually, but this change seems to be causing some issues with end-to-end tests.
I'll work on fixing it tomorrow.
I didn't see any issues when testing manually, but this change seems to be causing some issues with end-to-end tests.
I'll work on fixing it tomorrow.
I like this refactoring, I also wonder whether we can remove the "key" and the changes to BlockPopover from the other PR too. |
Can the same procedure be used here? Thanks for working on this, Dan! |
fd06641
to
5c79b43
Tests are now passing, apart from PHP tests which seem to have started failing overnight. I can't see any merged PRs that might have caused it, so it's most likely an environment issue. Using admin privileges to merge this as it contains no PHP changes. |
Description
As mentioned in https://github.com/WordPress/gutenberg/pull/23082/files#r444178859, the new scroll behavior when dragging can be pretty neatly encapsulated into a React hook.
This PR moves the code into a hook, pretty much verbatim, with a few minor bits of renaming and updating of comments to meet coding standards.
How has this been tested?
master
.Types of changes
Non-breaking code quality change
Checklist: