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

Block API: Allow block registration without category #22280

Merged
merged 6 commits into from
May 13, 2020

Conversation

aduth
Copy link
Member

@aduth aduth commented May 11, 2020

Alternative to: #22192

This pull request seeks to update block registration to allow for the omission of a category in block settings. This differs from #22192 in that it avoids treating "Uncategorized" as a formalized, default category for blocks. Instead, it simply allows blocks to lack a category property value. The "downside" here is that it then relies on each individual UI of the editor to account for the potential absence of category. Currently, this appears to affect only the Inserter and the Block Manager components. Note that changes would be required in #22192 as well for these components, so there's not a significant difference between the approaches in this regard.

Status: In Progress. Remaining tasks:

  • Update Block Manager to include "Uncategorized" section.
  • Validate or incorporate fix for missing category in search (see change from #22192)
    • Edit: Added a test case in bf5f678. The implementation appears to handle it okay. The test case should at least help assure there's no regressions in the future.

Testing Instructions:

To test, you need to register a block type which does not have an assigned category, or which has an invalid category. The easiest way I found to do this was to locally modify the settings of a core block, e.g. the paragraph block, to remove or alter the "category" field.

Then, verify that the block is shown under the "Uncategorized" categorizations within the block inserter and Block Manager modal.

Inserter:

  1. Navigate to Posts > Add New
  2. Toggle the block inserter
  3. Observe block under "Uncategorized"
  4. Confirm that you can still search for the block

Block Manager:

  1. Navigate to Posts > Add New
  2. Toggle the "More Tools & Options" menu in the top-right corner
  3. Click "Block Manager"
  4. Observe block under "Uncategorized"
  5. Confirm that you can still search for the block

Ensure unit tests pass:

npm run test-unit

@aduth aduth added [Feature] Block API API that allows to express the block paradigm. [Status] In Progress Tracking issues with work in progress labels May 11, 2020
@github-actions
Copy link

github-actions bot commented May 11, 2020

Size Change: +2.62 kB (0%)

Total Size: 827 kB

Filename Size Change
build/block-directory/index.js 6.63 kB +18 B (0%)
build/block-directory/style-rtl.css 764 B +4 B (0%)
build/block-directory/style.css 764 B +3 B (0%)
build/block-editor/index.js 104 kB +1.45 kB (1%)
build/block-editor/style-rtl.css 10.6 kB +257 B (2%)
build/block-editor/style.css 10.6 kB +253 B (2%)
build/block-library/index.js 115 kB +6 B (0%)
build/blocks/index.js 48.1 kB +18 B (0%)
build/components/index.js 181 kB +591 B (0%)
build/compose/index.js 6.66 kB -1 B
build/data/index.js 8.43 kB -13 B (0%)
build/edit-navigation/index.js 4.42 kB +9 B (0%)
build/edit-post/index.js 28 kB +30 B (0%)
build/edit-site/index.js 12.1 kB -1 B
build/edit-widgets/index.js 8.37 kB +3 B (0%)
build/element/index.js 4.65 kB -2 B (0%)
build/format-library/index.js 7.63 kB -1 B
build/plugins/index.js 2.56 kB -1 B
build/rich-text/index.js 14.8 kB -1 B
build/viewport/index.js 1.84 kB +1 B
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.02 kB 0 B
build/annotations/index.js 3.62 kB 0 B
build/api-fetch/index.js 4.08 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-library/editor-rtl.css 7.12 kB 0 B
build/block-library/editor.css 7.12 kB 0 B
build/block-library/style-rtl.css 7.38 kB 0 B
build/block-library/style.css 7.38 kB 0 B
build/block-library/theme-rtl.css 683 B 0 B
build/block-library/theme.css 685 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/components/style-rtl.css 17 kB 0 B
build/components/style.css 16.9 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 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 568 B 0 B
build/dom/index.js 3.1 kB 0 B
build/edit-navigation/style-rtl.css 618 B 0 B
build/edit-navigation/style.css 617 B 0 B
build/edit-post/style-rtl.css 12.2 kB 0 B
build/edit-post/style.css 12.2 kB 0 B
build/edit-site/style-rtl.css 5.22 kB 0 B
build/edit-site/style.css 5.22 kB 0 B
build/edit-widgets/style-rtl.css 4.69 kB 0 B
build/edit-widgets/style.css 4.69 kB 0 B
build/editor/editor-styles-rtl.css 425 B 0 B
build/editor/editor-styles.css 428 B 0 B
build/editor/index.js 44.3 kB 0 B
build/editor/style-rtl.css 5.07 kB 0 B
build/editor/style.css 5.08 kB 0 B
build/escape-html/index.js 734 B 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 B 0 B
build/hooks/index.js 2.14 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.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 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 616 B 0 B
build/nux/style.css 613 B 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/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.02 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.18 kB 0 B

compressed-size-action

aduth added 4 commits May 12, 2020 17:08
Search implementation leverages block category, which may be absent. It did not actually require changes to the implementation to support, but the test case can help assure this continues to be supported into the future.
@aduth
Copy link
Member Author

aduth commented May 12, 2020

  • Update Block Manager to include "Uncategorized" section.

Updated in 043ebc5.

Added a test case in bf5f678. The implementation appears to handle it okay. The test case should at least help assure there's no regressions in the future.

@aduth aduth removed the [Status] In Progress Tracking issues with work in progress label May 12, 2020
@aduth aduth merged commit 79318eb into master May 13, 2020
@aduth aduth deleted the update/optional-block-category-fallback branch May 13, 2020 13:48
@github-actions github-actions bot added this to the Gutenberg 8.2 milestone May 13, 2020
@gziolo gziolo added the Needs Dev Note Requires a developer note for a major WordPress release cycle label Jun 3, 2020
@gziolo
Copy link
Member

gziolo commented Jun 3, 2020

I added the Needs Dev Note label, but it really should be combined/added to the one proposed in #19279 (comment).

@ellatrix ellatrix mentioned this pull request Jul 3, 2020
12 tasks
@cguntur cguntur mentioned this pull request Oct 14, 2020
17 tasks
@tellthemachines tellthemachines removed the Needs Dev Note Requires a developer note for a major WordPress release cycle label Nov 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Block API API that allows to express the block paradigm.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants