Skip to content

Conversation

@kevin940726
Copy link
Member

Description

Fix #26178.

Add a filter function to registerCoreBlock and filter out core/more block in widgets editor.

I'm not sure this is the right approach. Another option I can think of is to add a disallowedBlocks to <InnerBlocks> and widget-area. Or remove more block from core, and register them manually one-by-one in each usage. I figured to open this PR first to gain more discussion and suggestions.

How has this been tested?

  1. Go to Widgets editor
  2. Insert a new block
  3. Search for the "more" block
  4. Observe that there's no "more" block

Screenshots

image

Types of changes

Bug fix

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR.

@kevin940726 kevin940726 added [Type] Bug An existing feature does not function as intended [Feature] Widgets Screen The block-based screen that replaced widgets.php. labels Oct 19, 2020
@github-actions
Copy link

github-actions bot commented Oct 19, 2020

Size Change: +45 B (0%)

Total Size: 1.19 MB

Filename Size Change
build/block-editor/index.js 130 kB -2 B (0%)
build/block-library/index.js 144 kB +19 B (0%)
build/components/index.js 170 kB +4 B (0%)
build/edit-navigation/index.js 10.6 kB -1 B
build/edit-post/index.js 306 kB -2 B (0%)
build/edit-site/index.js 21.6 kB -1 B
build/edit-widgets/index.js 22.3 kB +29 B (0%)
build/editor/index.js 42.6 kB -1 B
ℹ️ 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.61 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 11 kB 0 B
build/block-editor/style.css 10.9 kB 0 B
build/block-library/editor-rtl.css 8.93 kB 0 B
build/block-library/editor.css 8.93 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.77 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/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 683 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/style-rtl.css 868 B 0 B
build/edit-navigation/style.css 871 B 0 B
build/edit-post/style-rtl.css 6.37 kB 0 B
build/edit-post/style.css 6.35 kB 0 B
build/edit-site/style-rtl.css 3.8 kB 0 B
build/edit-site/style.css 3.81 kB 0 B
build/edit-widgets/style-rtl.css 3.09 kB 0 B
build/edit-widgets/style.css 3.09 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.38 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.35 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.06 kB 0 B
build/rich-text/index.js 13 kB 0 B
build/server-side-render/index.js 2.61 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.06 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

@talldan
Copy link
Contributor

talldan commented Oct 19, 2020

An alternative might be adding new functions getCoreBlocks and __experimentalGetExperimentalCoreBlocks for returning the available blocks in the library. edit-widgets could then filter those lists and handle registration.

IMO, the biggest problem the existing functions solve is the maintenance of keeping up-to-date with the available blocks from the block-library package rather than registration. Registration itself is relatively straightforward.

@kevin940726
Copy link
Member Author

@talldan I added a new function __experimentalGetCoreBlocks. Not sure if that is what you meant?

Copy link
Contributor

@talldan talldan left a comment

Choose a reason for hiding this comment

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

@kevin940726 Nice! A bit different to what I was thinking, but I think this is better. Offers lots of granularity for users of the package, they can use a completely custom list of blocks, filter out particular core blocks, or use all core blocks.

I was also thinking we'd go for the same API for experimental blocks which are registered a little later in the file, but there's no urgency on that as not related to this bug.

* const coreBlocks = __experimentalGetCoreBlocks();
* ```
*/
export const __experimentalGetCoreBlocks = () => [
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not convinced it needs to be experimental, but it does no harm (other than later maintenance).

@talldan talldan merged commit a13fcb5 into master Oct 19, 2020
@talldan talldan deleted the update/disallow-more-block branch October 19, 2020 10:36
@github-actions github-actions bot added this to the Gutenberg 9.2 milestone Oct 19, 2020
) => {
blocks.forEach( registerBlock );

setDefaultBlockName( paragraph.name );
Copy link
Contributor

Choose a reason for hiding this comment

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

I note that there'd be issues if one of these blocks was not passed in the blocks param.

That could be considered using the function incorrectly, but we could also add some guards to prevent errors.

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. [Type] Bug An existing feature does not function as intended

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Widgets Screen] Remove "Read More" block from being added

3 participants