-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Inserter: Fix Block visibility manager #65700
Conversation
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.
To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
Size Change: +831 B (+0.05%) Total Size: 1.77 MB
ℹ️ View Unchanged
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For example, even if I hide all blocks in the Text category via "Manage block visibility", only the List item block will be displayed in The text category in the inserter. This happens with other categories as well. I think this is because the Block Manager filters out blocks that have parents.
This behavior seems a bit strange, but what do you think?
I agree, It seems if the blocks that have a "parent" block are not allowed, their children shouldn't be allowed either. |
It should be fixed now. |
It seems like e2e tests and unit tests are failing. Maybe it has to do with the logic in |
This should be ready now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me 👍
Co-authored-by: youknowriad <youknowriad@git.wordpress.org> Co-authored-by: t-hamano <wildworks@git.wordpress.org>
This reverts commit d83720c.
Co-authored-by: youknowriad <youknowriad@git.wordpress.org> Co-authored-by: t-hamano <wildworks@git.wordpress.org>
Closes #65687
What?
In #65490 we changed a bit how the inserter works by avoiding any initial block type filtering and only upon insertion figuring out what things can or can't be allowed in a given position and also try to guess a more suitable position.
The problem is that in some situations (block visibility managed, allowed blocks settings), it doesn't really make sense to show the blocks at all. So this PR separate the
canInsertBlock
selector into two:Note
For child blocks, I elected for now to keep them in the inserter. The reason is that there's value in that, for instance, if you're within a nested block within a column, it's handy to be able to click "column" block to insert a new column in the parent's columns block. We can revise/tweak that behavior if it's deemed too problematic.
Note that the PR applies the fix to the pattern inserter too.
Testing Instructions
1- Open the post inserter
2- Go to preferences > blocks and remove the "heading" block
3- Open the inserter and notice the block is not visible anymore and any block that uses the block is not either.