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

Refactor Embed Edit component: Class component to Function component #22846

Merged
merged 4 commits into from Jun 29, 2020

Conversation

@desaiuditd
Copy link
Member

@desaiuditd desaiuditd commented Jun 3, 2020

Description

This refactor stems from #21789 where improvements for Embed block UX are discussed. But before we actually work on improvements, this seemed like a good opportunity to convert the component into a function component so that React hooks can be used within the component later.

How has this been tested?

Tested locally to make sure embed block works properly with all the basic use cases like changing the url, block transformation, switching between preview and placeholder etc.

Types of changes

Code refactoring to convert the edit component of Embed block into a function component. Non-breaking change. No behaviour change is expected.

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 github-actions bot commented Jun 3, 2020

Size Change: -459 B (0%)

Total Size: 1.13 MB

Filename Size Change
build/block-editor/index.js 109 kB -3 B (0%)
build/block-library/index.js 129 kB -452 B (0%)
build/components/index.js 198 kB -1 B
build/data/index.js 8.44 kB +1 B
build/edit-navigation/index.js 9.87 kB +1 B
build/edit-post/index.js 303 kB -1 B
build/edit-site/index.js 16.6 kB -1 B
build/edit-widgets/index.js 9.32 kB -1 B
build/list-reusable-blocks/index.js 3.12 kB -1 B
build/media-utils/index.js 5.29 kB -1 B
build/plugins/index.js 2.56 kB -1 B
build/token-list/index.js 1.28 kB +1 B
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.62 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/index.js 7.38 kB 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.6 kB 0 B
build/block-library/editor.css 7.6 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/blocks/index.js 48.2 kB 0 B
build/components/style-rtl.css 15.9 kB 0 B
build/components/style.css 15.9 kB 0 B
build/compose/index.js 9.65 kB 0 B
build/core-data/index.js 11.4 kB 0 B
build/data-controls/index.js 1.29 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/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.03 kB 0 B
build/edit-site/style.css 3.03 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/index.js 44.8 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.65 kB 0 B
build/escape-html/index.js 733 B 0 B
build/format-library/index.js 7.72 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 711 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/style-rtl.css 450 B 0 B
build/list-reusable-blocks/style.css 451 B 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 788 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 14 kB 0 B
build/server-side-render/index.js 2.68 kB 0 B
build/shortcode/index.js 1.7 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

@mcsf
Copy link
Contributor

@mcsf mcsf commented Jun 3, 2020

Taking a quick look, this seems like good work. @ZebulanStanphill, can you lead the review? I would say that one thing to pay special attention to is performance: making sure there aren't clear regressions, and assess whether and where we might benefit from useCallback or useMemo, for instance. Thank you to both of you!

@desaiuditd
Copy link
Member Author

@desaiuditd desaiuditd commented Jun 3, 2020

Just saw that the e2e tests are failing in CI. Quick look told me that it's relevant. I'll try to fix it. But it will be the first time I'll touch e2e tests. So please bear with me. Thanks 🙂

import { __, sprintf } from '@wordpress/i18n';
import { Component } from '@wordpress/element';
import { useState, useEffect } from '@wordpress/element';
Comment on lines 23 to +24

This comment has been minimized.

@ZebulanStanphill

ZebulanStanphill Jun 3, 2020
Member

Nitpick: I prefer imports to be in alphabetical order. (There's no standard one way or the other; it's just a personal preference of mine.)

Example:

import { useEffect, useState } from '@wordpress/element';
import { __, sprintf } from '@wordpress/i18n';

This comment has been minimized.

@ellatrix

ellatrix Jun 3, 2020
Member

Either let's make a linting rule, or not bother with this at all. :) I personally don't feel like wasting time on this.

@mcsf
Copy link
Contributor

@mcsf mcsf commented Jun 19, 2020

@desaiuditd, @ZebulanStanphill: do you see anything missing from this PR, or can we merge?

@paaljoachim
Copy link

@paaljoachim paaljoachim commented Jun 21, 2020

@swissspidy is this PR something you can help out with? As the PR is very slowly moving forward. Thanks.

desaiuditd and others added 3 commits May 30, 2020
Convert the Embed Edit component into a function component so that React hooks can be used within the component.

* Fixed rebase conflicts with b2ec648
  and a610923
@mcsf mcsf force-pushed the update/refactor-embed-block-edit-component branch from 86e355c to 5444d51 Jun 26, 2020
@mcsf
Copy link
Contributor

@mcsf mcsf commented Jun 26, 2020

Rebased against master.

@desaiuditd
Copy link
Member Author

@desaiuditd desaiuditd commented Jun 27, 2020

@mcsf Thanks. I was away from my dev machine for awhile. I'll take a look at this today.

@desaiuditd
Copy link
Member Author

@desaiuditd desaiuditd commented Jun 28, 2020

Just checked this. I think this is looking good to me. Ready for review/merge.

I found a bug in the Try Again button in the edit mode. However, I verified that it's happening on master branch as well and bug is coming from

withDispatch( ( dispatch, ownProps ) => {
. I can fix it in next PR.

@mcsf
mcsf approved these changes Jun 29, 2020
Copy link
Contributor

@mcsf mcsf left a comment

Thanks for working on this!

@paaljoachim
Copy link

@paaljoachim paaljoachim commented Jun 29, 2020

What is the overall path forward in regards to the embed feature?

@mcsf mcsf merged commit e5a1d0e into master Jun 29, 2020
17 checks passed
17 checks passed
Check Check
Details
build
Details
Admin - 1
Details
pull-request-automation
Details
test (gutenberg-editor-gallery)
Details
test (gutenberg-editor-gallery)
Details
All
Details
JavaScript
Details
Admin - 2
Details
PHP
Details
Admin - 3
Details
Mobile
Details
Admin - 4
Details
Author - 1
Details
Author - 2
Details
Author - 3
Details
Author - 4
Details
@mcsf mcsf deleted the update/refactor-embed-block-edit-component branch Jun 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

6 participants
You can’t perform that action at this time.