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

Use iframes in legacy widget preview. #14643

Merged
merged 7 commits into from
Sep 21, 2020

Conversation

jorgefilipecosta
Copy link
Member

Description

This PR updates legacy widget block to use an iframe for the preview.
Using an iframe allows the preview to be more reliable as we can load frontend styles and scripts there.

How has this been tested?

I used the ultimate social media icons for testing purposes.

After

Screenshot 2019-03-26 at 18 18 22

Before

image

@jorgefilipecosta jorgefilipecosta added [Type] Enhancement A suggestion for improvement. [Feature] Widgets Screen The block-based screen that replaced widgets.php. labels Mar 26, 2019
@youknowriad
Copy link
Contributor

Thanks for working on this Jorge, I think this should be the way to go to preview widgets. I'm having some errors though

Capture d’écran 2019-03-27 à 9 03 12 AM

Also the "edit" part of the widget is not loading.

(I'm using the site origin widgets)

@jorgefilipecosta jorgefilipecosta added the Needs Technical Feedback Needs testing from a developer perspective. label May 30, 2019
@noisysocks
Copy link
Member

What's the status of this one? Looks like it needs a rebase 🙂

@jorgefilipecosta jorgefilipecosta added the [Status] Blocked Used to indicate that a current effort isn't able to move forward label Jun 3, 2019
@jorgefilipecosta
Copy link
Member Author

Hi @noisysocks yes we need to rebase this PR. I don't think we should rebase it before #15801 is landed, otherwise we will waste effort. PR #15801 has higher priority. I marked this PR as blocked.

@draganescu
Copy link
Contributor

draganescu commented Sep 17, 2020

Should we refresh this or close it and make an issue out of it? This is still something we need and a good idea!

@adamziel 's idea was that depending on the min browser support we have we could use shadow DOM instead iframes.

@draganescu draganescu marked this pull request as draft September 17, 2020 08:29
@adamziel adamziel force-pushed the update/use-iframes-for-widget-preview branch from 1fbde54 to 53651fa Compare September 18, 2020 12:56
@adamziel
Copy link
Contributor

adamziel commented Sep 18, 2020

I rebased and refreshed this PR. It's still not quite there yet, but it's close:

Zrzut ekranu 2020-09-18 o 14 57 30

Zrzut ekranu 2020-09-18 o 14 57 38

@github-actions
Copy link

github-actions bot commented Sep 18, 2020

Size Change: +248 B (0%)

Total Size: 1.2 MB

Filename Size Change
build/api-fetch/index.js 3.33 kB -2 B (0%)
build/block-library/index.js 135 kB -4 B (0%)
build/components/index.js 202 kB -2 B (0%)
build/edit-navigation/index.js 10.4 kB +2 B (0%)
build/edit-post/index.js 306 kB -1 B
build/edit-site/index.js 19.6 kB +2 B (0%)
build/edit-widgets/index.js 17.5 kB +253 B (1%)
build/editor/index.js 45.3 kB -1 B
build/format-library/index.js 7.49 kB +2 B (0%)
build/server-side-render/index.js 2.6 kB -1 B
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.52 kB 0 B
build/autop/index.js 2.72 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/index.js 8.41 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 128 kB 0 B
build/block-editor/style-rtl.css 11.1 kB 0 B
build/block-editor/style.css 11.1 kB 0 B
build/block-library/editor-rtl.css 8.59 kB 0 B
build/block-library/editor.css 8.59 kB 0 B
build/block-library/style-rtl.css 7.6 kB 0 B
build/block-library/style.css 7.59 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.77 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 47.5 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.4 kB 0 B
build/compose/index.js 9.42 kB 0 B
build/core-data/index.js 12 kB 0 B
build/data-controls/index.js 1.27 kB 0 B
build/data/index.js 8.43 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.44 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/style-rtl.css 6.24 kB 0 B
build/edit-post/style.css 6.22 kB 0 B
build/edit-site/style-rtl.css 3.3 kB 0 B
build/edit-site/style.css 3.3 kB 0 B
build/edit-widgets/style-rtl.css 2.79 kB 0 B
build/edit-widgets/style.css 2.79 kB 0 B
build/editor/editor-styles-rtl.css 492 B 0 B
build/editor/editor-styles.css 493 B 0 B
build/editor/style-rtl.css 3.8 kB 0 B
build/editor/style.css 3.8 kB 0 B
build/element/index.js 4.45 kB 0 B
build/escape-html/index.js 733 B 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 622 B 0 B
build/i18n/index.js 3.54 kB 0 B
build/is-shallow-equal/index.js 711 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.12 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 789 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 13.7 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.13 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

const HEIGHT_MARGIN = 20;
const [ height, setHeight ] = useState( DEFAULT_HEIGHT );
const currentUrl = document.location.href;
const siteUrl = currentUrl.substr( 0, currentUrl.indexOf( 'wp-admin/' ) );
Copy link
Contributor

@adamziel adamziel Sep 18, 2020

Choose a reason for hiding this comment

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

Anyone aware of any better way of getting site's URL?

Copy link
Member

Choose a reason for hiding this comment

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

It is available in the REST API index at wp-json.

Copy link
Contributor

Choose a reason for hiding this comment

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

Actually there is another place in navigation editor that could also use this correction - let's address both in a separate PR

@adamziel adamziel marked this pull request as ready for review September 18, 2020 14:05
@adamziel
Copy link
Contributor

This PR is ready for review now cc @kevin940726 @draganescu @jorgefilipecosta

Copy link
Contributor

@draganescu draganescu left a comment

Choose a reason for hiding this comment

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

This renders good enough! ✔️

@adamziel adamziel merged commit cc003b2 into master Sep 21, 2020
@adamziel adamziel deleted the update/use-iframes-for-widget-preview branch September 21, 2020 13:08
@github-actions github-actions bot added this to the Gutenberg 9.1 milestone Sep 21, 2020
} );
return (
<Disabled>
<FocusableIframe
Copy link
Member

Choose a reason for hiding this comment

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

Why is FocusableIframe used if the onFocus prop is not?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Widgets Screen The block-based screen that replaced widgets.php. Needs Technical Feedback Needs testing from a developer perspective. [Status] Blocked Used to indicate that a current effort isn't able to move forward [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants