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

Show a warning when SlotFillProvider is missing #23493

Merged
merged 2 commits into from
Jun 26, 2020

Conversation

diegohaz
Copy link
Member

@diegohaz diegohaz commented Jun 25, 2020

This PR closes #23388

Here I'm only adding a warning on the Slot component, and not on the useSlot hook. SlotFillProvider and Slot are optional for some components that call useSlot. For example, Popover will render its contents within a Fill component only if Slot and SlotFillProvider are present:

if ( slot.ref ) {
content = <Fill name={ __unstableSlotName }>{ content }</Fill>;
}

I also updated the @wordpress/block-editor package README, as it was causing confusion when people just copied and pasted the example code.

How to test?

  • Make sure there's no warning on the console.
  • Check automated tests.

@diegohaz diegohaz self-assigned this Jun 25, 2020
@diegohaz diegohaz added [Package] Components /packages/components [Type] Code Quality Issues or PRs that relate to code quality labels Jun 25, 2020
@github-actions
Copy link

github-actions bot commented Jun 25, 2020

Size Change: +979 B (0%)

Total Size: 1.13 MB

Filename Size Change
build/annotations/index.js 3.62 kB +1 B
build/block-directory/index.js 7.37 kB +6 B (0%)
build/block-editor/index.js 109 kB +47 B (0%)
build/blocks/index.js 48.2 kB -1 B
build/components/index.js 198 kB +665 B (0%)
build/components/style-rtl.css 15.9 kB +131 B (0%)
build/components/style.css 15.9 kB +138 B (0%)
build/compose/index.js 9.62 kB +1 B
build/edit-post/index.js 303 kB -4 B (0%)
build/edit-site/index.js 16.6 kB -2 B (0%)
build/edit-widgets/index.js 9.32 kB -2 B (0%)
build/editor/index.js 44.8 kB +1 B
build/plugins/index.js 2.56 kB -1 B
build/server-side-render/index.js 2.68 kB -1 B
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/api-fetch/index.js 3.4 kB 0 B
build/autop/index.js 2.82 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/style-rtl.css 941 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/style-rtl.css 10.7 kB 0 B
build/block-editor/style.css 10.7 kB 0 B
build/block-library/editor-rtl.css 7.59 kB 0 B
build/block-library/editor.css 7.6 kB 0 B
build/block-library/index.js 130 kB 0 B
build/block-library/style-rtl.css 8.04 kB 0 B
build/block-library/style.css 8.04 kB 0 B
build/block-library/theme-rtl.css 730 B 0 B
build/block-library/theme.css 732 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/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 kB 0 B
build/data/index.js 8.44 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 569 B 0 B
build/dom/index.js 3.19 kB 0 B
build/edit-navigation/index.js 9.87 kB 0 B
build/edit-navigation/style-rtl.css 1.02 kB 0 B
build/edit-navigation/style.css 1.02 kB 0 B
build/edit-post/style-rtl.css 5.51 kB 0 B
build/edit-post/style.css 5.5 kB 0 B
build/edit-site/style-rtl.css 3.02 kB 0 B
build/edit-site/style.css 3.02 kB 0 B
build/edit-widgets/style-rtl.css 2.42 kB 0 B
build/edit-widgets/style.css 2.42 kB 0 B
build/editor/editor-styles-rtl.css 537 B 0 B
build/editor/editor-styles.css 539 B 0 B
build/editor/style-rtl.css 3.83 kB 0 B
build/editor/style.css 3.83 kB 0 B
build/element/index.js 4.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.73 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 2.13 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.13 kB 0 B
build/list-reusable-blocks/style-rtl.css 450 B 0 B
build/list-reusable-blocks/style.css 451 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 663 B 0 B
build/nux/style.css 660 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/rich-text/index.js 14 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.06 kB 0 B
build/viewport/index.js 1.85 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@diegohaz diegohaz requested review from sirreal and gziolo June 25, 2020 21:26
@@ -4,6 +4,7 @@
import { createContext } from '@wordpress/element';

const SlotFillContext = createContext( {
__unstableDefaultContext: true,
slots: {},
fills: {},
registerSlot: () => {},
Copy link
Member

Choose a reason for hiding this comment

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

Could we warn instead when the default function that registers slots is called? This way we would avoid introducing the unstable property and the warning would fire in almost the same place.

I’m suggesting moving the warning call to registerSlot. What do you think?

Copy link
Member Author

Choose a reason for hiding this comment

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

This makes a lot more sense. Will make the change.

@gziolo
Copy link
Member

gziolo commented Jun 26, 2020

Thanks for opening this PR. I had one minor consideration but we overall this PR looks good 👍

@diegohaz diegohaz merged commit d10f826 into master Jun 26, 2020
@diegohaz diegohaz deleted the update/warn-on-missing-slot-fill-provider branch June 26, 2020 06:14
@github-actions github-actions bot added this to the Gutenberg 8.5 milestone Jun 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Package] Components /packages/components [Type] Code Quality Issues or PRs that relate to code quality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Slot/Fill: Error when provider is missing
2 participants