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

Add Latest Pages - Query block variation #26025

Closed
wants to merge 3 commits into from

Conversation

ntsekouras
Copy link
Contributor

Description

This PR adds the first block variation in the Query block, which is the Latest Pages. Related section about block variations in the tracking issue: #24762.

In order to do this, I added some missing functionality in createBlock (Blocks API) to respect the default values of a property of type object. Previously it would overwrite the whole object, ignoring the rest default values. For example if we had in block.json an attribute like this:

"query": {
			"type": "object",
			"default": {
				"perPage": 3,
				"pages": 1
			}
		}  

and created a block with a single object's property set like this: createBlock( 'test/block', { query: { perPage:10 } }), it would result in keeping only the passed attributes, which in this case is perPage. The pages attribute would not be defined.

A final but not relevant thing this PR changes is some whitespaces differences that occurred during the regeneration of fixtures. The regeneration tool uses spaces and there were some handwritten with tabs.

How has this been tested?

Screenshots

Types of changes

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.

@ntsekouras ntsekouras added [Feature] Block API API that allows to express the block paradigm. [Feature] Full Site Editing [Block] Query Loop Affects the Query Loop Block labels Oct 12, 2020
@ntsekouras ntsekouras self-assigned this Oct 12, 2020
@github-actions
Copy link

Size Change: +92 B (0%)

Total Size: 1.19 MB

Filename Size Change
build/block-library/index.js 145 kB +66 B (0%)
build/blocks/index.js 47.6 kB +26 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.52 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.55 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/index.js 130 kB 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/style-rtl.css 7.67 kB 0 B
build/block-library/style.css 7.66 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/components/index.js 169 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.5 kB 0 B
build/compose/index.js 9.43 kB 0 B
build/core-data/index.js 12 kB 0 B
build/data-controls/index.js 685 B 0 B
build/data/index.js 8.6 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 568 B 0 B
build/dom/index.js 4.42 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.29 kB 0 B
build/edit-post/style.css 6.28 kB 0 B
build/edit-site/index.js 21.3 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/index.js 21.2 kB 0 B
build/edit-widgets/style-rtl.css 3.03 kB 0 B
build/edit-widgets/style.css 3.03 kB 0 B
build/editor/editor-styles-rtl.css 480 B 0 B
build/editor/editor-styles.css 482 B 0 B
build/editor/index.js 45.5 kB 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 734 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 621 B 0 B
build/i18n/index.js 3.54 kB 0 B
build/is-shallow-equal/index.js 710 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.13 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 790 B 0 B
build/redux-routine/index.js 2.85 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.06 kB 0 B
build/viewport/index.js 1.74 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@mariohamann
Copy link

mariohamann commented Oct 14, 2020

Things I encountered:

  1. I don't think that ordering pages by date makes so much sense – usually you order by title or menu order. Therefore, I think orderby title should be default. (I know, the block's name is currently "Latest pages".)
  2. For pages it may be unusual to provide excerpt and especially date (see the "Pages" widget) – are there already plans how to change default content in variations?
  3. After creating the block automatically the first "Post title" block was focused. In my opinion the Query block itself should be focused, not the content.
  4. I expected to see "Latest pages" in block's sidebar and realized afterwards, that variations don't really change the block's name. (In embed block you always see the embed's logo, so I never thought about it.) But that's less a problem of this PR (if it is a problem at all).

I personally would prefer:
Rename the block to "Pages" or "Pages Query", show the name of the variation in the settings sidebar, orderby "Name" and (if everything mentioned before would work) hide the post type selector. But I totally understand, that these are too many changes (especially showing the name of the variation being out of scope of this PR)...

@ntsekouras
Copy link
Contributor Author

ntsekouras commented Oct 15, 2020

Hey @mariohamann - thanks for looking at this!

I actually your 1 and 2 points make sense and probably is not a good variation to start with.

After creating the block automatically the first "Post title" block was focused. In my opinion the Query block itself should be focused, not the content.

That's out of the scope of this PR, but great suggestion.

I expected to see "Latest pages" in block's sidebar and realized afterwards, that variations don't really change the block's name. (In embed block you always see the embed's logo, so I never thought about it.) But that's less a problem of this PR (if it is a problem at all).

I've explored recently such change to the inspector control's block description/icon etc, but seems it's a rather complex problem and the value provided is not so much worth it. If a block is in need to explicitly show that information, maybe it would be better to be a standalone block(?).

hide the post type selector.

In any block variation the settings should not be different. The purpose is to preset some of the attributes only.

Having said that I'll close this PR and create a new one to augment the Blocks API to support defaults in object properties.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Query Loop Affects the Query Loop Block [Feature] Block API API that allows to express the block paradigm.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants