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

Template/site editor: prevent classic block from loading #27059

Closed
wants to merge 3 commits into from

Conversation

ellatrix
Copy link
Member

@ellatrix ellatrix commented Nov 18, 2020

Description

See #26915.

Currently the classic block is available in the site editor and triggers an error when loading because window.wpEditorL10n is not set.

In the site editor, ideally any scripts for the classic editor should not load and the block should not be available.

If there is free form content in the post content, the content can be previewed through the missing block mechanism.

Screenshot 2020-11-18 at 11 09 58

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.

@github-actions
Copy link

github-actions bot commented Nov 18, 2020

Size Change: +291 B (0%)

Total Size: 1.19 MB

Filename Size Change
build/block-library/editor-rtl.css 9.04 kB +122 B (1%)
build/block-library/editor.css 9.04 kB +119 B (1%)
build/block-library/index.js 147 kB +50 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.8 kB 0 B
build/api-fetch/index.js 3.42 kB 0 B
build/autop/index.js 2.84 kB 0 B
build/blob/index.js 664 B 0 B
build/block-directory/index.js 8.72 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 133 kB 0 B
build/block-editor/style-rtl.css 11.3 kB 0 B
build/block-editor/style.css 11.3 kB 0 B
build/block-library/style-rtl.css 8.1 kB 0 B
build/block-library/style.css 8.1 kB 0 B
build/block-library/theme-rtl.css 792 B 0 B
build/block-library/theme.css 793 B 0 B
build/block-serialization-default-parser/index.js 1.87 kB 0 B
build/block-serialization-spec-parser/index.js 3.06 kB 0 B
build/blocks/index.js 48 kB 0 B
build/components/index.js 171 kB 0 B
build/components/style-rtl.css 15.3 kB 0 B
build/components/style.css 15.3 kB 0 B
build/compose/index.js 9.95 kB 0 B
build/core-data/index.js 14.8 kB 0 B
build/data-controls/index.js 827 B 0 B
build/data/index.js 8.8 kB 0 B
build/date/index.js 11.2 kB 0 B
build/deprecated/index.js 768 B 0 B
build/dom-ready/index.js 571 B 0 B
build/dom/index.js 4.92 kB 0 B
build/edit-navigation/index.js 11.2 kB 0 B
build/edit-navigation/style-rtl.css 881 B 0 B
build/edit-navigation/style.css 885 B 0 B
build/edit-post/index.js 306 kB 0 B
build/edit-post/style-rtl.css 6.48 kB 0 B
build/edit-post/style.css 6.47 kB 0 B
build/edit-site/index.js 23.2 kB 0 B
build/edit-site/style-rtl.css 3.89 kB 0 B
build/edit-site/style.css 3.89 kB 0 B
build/edit-widgets/index.js 26.4 kB 0 B
build/edit-widgets/style-rtl.css 3.16 kB 0 B
build/edit-widgets/style.css 3.16 kB 0 B
build/editor/editor-styles-rtl.css 476 B 0 B
build/editor/editor-styles.css 478 B 0 B
build/editor/index.js 42.5 kB 0 B
build/editor/style-rtl.css 3.85 kB 0 B
build/editor/style.css 3.85 kB 0 B
build/element/index.js 4.62 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/index.js 6.86 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.16 kB 0 B
build/html-entities/index.js 623 B 0 B
build/i18n/index.js 3.57 kB 0 B
build/is-shallow-equal/index.js 698 B 0 B
build/keyboard-shortcuts/index.js 2.54 kB 0 B
build/keycodes/index.js 1.94 kB 0 B
build/list-reusable-blocks/index.js 3.1 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.32 kB 0 B
build/notices/index.js 1.81 kB 0 B
build/nux/index.js 3.42 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.56 kB 0 B
build/primitives/index.js 1.43 kB 0 B
build/priority-queue/index.js 790 B 0 B
build/redux-routine/index.js 2.84 kB 0 B
build/reusable-blocks/index.js 3.06 kB 0 B
build/rich-text/index.js 13.3 kB 0 B
build/server-side-render/index.js 2.77 kB 0 B
build/shortcode/index.js 1.69 kB 0 B
build/token-list/index.js 1.27 kB 0 B
build/url/index.js 4.05 kB 0 B
build/viewport/index.js 1.86 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.22 kB 0 B

compressed-size-action

@ellatrix ellatrix added the [Type] Bug An existing feature does not function as intended label Nov 18, 2020
@gziolo
Copy link
Member

gziolo commented Nov 18, 2020

Some unit tests fail:

Test Suites: 1 failed, 429 passed, 430 total
Tests:       5 failed, 2 skipped, 4625 passed, 4632 total

It looks like this file needs to include more mocks:

window.wp = window.wp || {};
window.wp.oldEditor = {};

@gziolo gziolo added [Feature] Full Site Editing [Block] Classic Affects the Classic Editor Block labels Nov 18, 2020
Comment on lines +90 to +92
const isClassicEnabled =
window.wpEditorL10n && window.wp && window.wp.oldEditor;

Copy link
Member

Choose a reason for hiding this comment

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

These values might change during runtime so a function would work better here. This would fix the tests too.

Suggested change
const isClassicEnabled =
window.wpEditorL10n && window.wp && window.wp.oldEditor;
const isClassicEnabled = () =>
window.wpEditorL10n && window.wp && window.wp.oldEditor;

@@ -139,7 +142,7 @@ export const __experimentalGetCoreBlocks = () => [
embed,
file,
group,
window.wp && window.wp.oldEditor ? classic : null, // Only add the classic block in WP Context
isClassicEnabled ? classic : null, // Only add the classic block in WP Context
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
isClassicEnabled ? classic : null, // Only add the classic block in WP Context
isClassicEnabled() ? classic : null, // Only add the classic block in WP Context

@@ -182,7 +185,7 @@ export const registerCoreBlocks = (
blocks.forEach( registerBlock );

setDefaultBlockName( paragraph.name );
if ( window.wp && window.wp.oldEditor ) {
if ( isClassicEnabled ) {
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
if ( isClassicEnabled ) {
if ( isClassicEnabled() ) {

Base automatically changed from master to trunk March 1, 2021 15:44
@ellatrix ellatrix changed the title Site editor: prevent classic block from loading Template/site editor: prevent classic block from loading May 21, 2021
@ellatrix ellatrix closed this Oct 17, 2022
@ellatrix ellatrix deleted the try/classic-error branch October 17, 2022 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Classic Affects the Classic Editor Block [Type] Bug An existing feature does not function as intended
Projects
None yet
Development

Successfully merging this pull request may close these issues.

FSE: Query block encounters an error with sample content in Site Editor
3 participants