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

Minor updates to @wordpress/edit-widgets for easier Core integration #26136

Merged
merged 5 commits into from
Oct 15, 2020

Conversation

noisysocks
Copy link
Member

Four smallish changes which will make it easier to add this package to Core (see WordPress/wordpress-develop#603).

  1. Update the CSS to target body.widgets-php as well as body.appearance_page_gutenberg-widgets. This is the class name that the screen will have in Core.

  2. Have @wordpress/edit-widgets register the Legacy Widget block and the Widget Area block when GUTENBERG_PHASE is 1. This prevents those blocks from not being registered in Core.

  3. Use example.com/wp-admin/widgets.php?widget-preview= instead of example.com/?widgetPreview= for Legacy Widget block previewing. This means that the code for handling this query param can be co-located with the rest of widgets.php in Core.

  4. Remove hasPermissionsToManageWidgets. This isn't necessary as the Legacy Widget block is only ever registered in the widgets editor which can only be accessed when the logged-in user has permission to customise the site.

I've tested this by copying the built packages over into Core and running it against my WIP integration branch (WordPress/wordpress-develop#603).

Need to test that these changes do not cause any regressions in the plugin, though.

@github-actions
Copy link

github-actions bot commented Oct 15, 2020

Size Change: -16 B (0%)

Total Size: 1.19 MB

Filename Size Change
build/block-editor/index.js 130 kB -17 B (0%)
build/edit-widgets/index.js 21.3 kB -77 B (0%)
build/edit-widgets/style-rtl.css 3.01 kB +44 B (1%)
build/edit-widgets/style.css 3.02 kB +44 B (1%)
build/editor/index.js 42.4 kB -10 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.54 kB 0 B
build/api-fetch/index.js 3.35 kB 0 B
build/autop/index.js 2.72 kB 0 B
build/blob/index.js 668 B 0 B
build/block-directory/index.js 8.6 kB 0 B
build/block-directory/style-rtl.css 943 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/style-rtl.css 10.9 kB 0 B
build/block-editor/style.css 10.9 kB 0 B
build/block-library/editor-rtl.css 8.65 kB 0 B
build/block-library/editor.css 8.65 kB 0 B
build/block-library/index.js 143 kB 0 B
build/block-library/style-rtl.css 7.71 kB 0 B
build/block-library/style.css 7.71 kB 0 B
build/block-library/theme-rtl.css 741 B 0 B
build/block-library/theme.css 741 B 0 B
build/block-serialization-default-parser/index.js 1.78 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 47.6 kB 0 B
build/components/index.js 169 kB 0 B
build/components/style-rtl.css 15.4 kB 0 B
build/components/style.css 15.4 kB 0 B
build/compose/index.js 9.63 kB 0 B
build/core-data/index.js 12.1 kB 0 B
build/data-controls/index.js 684 B 0 B
build/data/index.js 8.63 kB 0 B
build/date/index.js 31.9 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 569 B 0 B
build/dom/index.js 4.43 kB 0 B
build/edit-navigation/index.js 10.6 kB 0 B
build/edit-navigation/style-rtl.css 868 B 0 B
build/edit-navigation/style.css 871 B 0 B
build/edit-post/index.js 306 kB 0 B
build/edit-post/style-rtl.css 6.3 kB 0 B
build/edit-post/style.css 6.29 kB 0 B
build/edit-site/index.js 21.1 kB 0 B
build/edit-site/style-rtl.css 3.77 kB 0 B
build/edit-site/style.css 3.77 kB 0 B
build/editor/editor-styles-rtl.css 480 B 0 B
build/editor/editor-styles.css 482 B 0 B
build/editor/style-rtl.css 3.85 kB 0 B
build/editor/style.css 3.84 kB 0 B
build/element/index.js 4.45 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.49 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 1.74 kB 0 B
build/html-entities/index.js 622 B 0 B
build/i18n/index.js 3.54 kB 0 B
build/is-shallow-equal/index.js 709 B 0 B
build/keyboard-shortcuts/index.js 2.39 kB 0 B
build/keycodes/index.js 1.85 kB 0 B
build/list-reusable-blocks/index.js 3.02 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.12 kB 0 B
build/notices/index.js 1.69 kB 0 B
build/nux/index.js 3.27 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.44 kB 0 B
build/primitives/index.js 1.34 kB 0 B
build/priority-queue/index.js 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/reusable-blocks/index.js 3.04 kB 0 B
build/rich-text/index.js 13 kB 0 B
build/server-side-render/index.js 2.6 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.24 kB 0 B
build/url/index.js 4.07 kB 0 B
build/viewport/index.js 1.75 kB 0 B
build/warning/index.js 1.13 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@tellthemachines
Copy link
Contributor

Testing the plugin without the Core changes, item 3 is causing problems with the legacy widget previews. Instead of previewing the widget, the previews are rendering the widgets screen and throwing the browser into a loop which crashes it after a while. Is it not possible at all to use the plain site URL in Core?

@noisysocks
Copy link
Member Author

noisysocks commented Oct 15, 2020

Hey @tellthemachines thanks for testing. I improved how the plugin handles the widget-preview param and this should be fixed now.

I'd really prefer to do it this way as it lets us, in Core, keep all of the logic for handling this param nice and compartmentalised in wp-admin/widgets.php and away from the WordPress Core code that handles every page request.

Copy link
Contributor

@tellthemachines tellthemachines left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's working well now! Also tested that users without necessary privileges can't access the Widgets screen. ✅

@draganescu draganescu merged commit 260f018 into master Oct 15, 2020
@draganescu draganescu deleted the update/edit-widgets-for-easier-core-integration branch October 15, 2020 13:01
@github-actions github-actions bot added this to the Gutenberg 9.2 milestone Oct 15, 2020
tellthemachines pushed a commit that referenced this pull request Oct 15, 2020
…26136)

* Widgets editor: Reset .widgets-php styling

* Widgets editor: Register blocks in all Gutenberg phases

* Widgets editor: Use ?widget-preview= instead of /?widgetPreview=

* Widgets editor: Remove hasPermissionsToManageWidgets

* Widget editor: Fix handling of widget-preview param
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Widgets Screen The block-based screen that replaced widgets.php.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants