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

Add Utils package for Component System #27486

Closed
wants to merge 9 commits into from
Closed

Conversation

ItsJonQ
Copy link

@ItsJonQ ItsJonQ commented Dec 3, 2020

This update adds the core utilities package for the next Component System.

These utilities are shared and used liberally throughout the core Systems as well as the UI within the Component System.

Some utils are duplicates of the ones found in @wordpress/components 's utils directory:
https://github.com/WordPress/gutenberg/tree/master/packages/components/src/utils

They actually originated from there.
After this is merged, I can create a PR to consolidate them.

As @youknowriad has pointed out, there are utils that are similar to the ones found in @wordpress/compose, notably the hooks.

Those can also be consolidated in a later time.

@ItsJonQ ItsJonQ added the [Feature] Component System WordPress component system label Dec 3, 2020
@ItsJonQ ItsJonQ self-assigned this Dec 3, 2020
@ItsJonQ ItsJonQ moved this from To do to In progress in Component System: Phase 2 (Integration) Dec 3, 2020
@github-actions
Copy link

github-actions bot commented Dec 3, 2020

Size Change: +242 B (0%)

Total Size: 1.2 MB

Filename Size Change
build/a11y/index.js 1.14 kB +2 B (0%)
build/blob/index.js 664 B -1 B
build/block-directory/index.js 8.72 kB +2 B (0%)
build/block-editor/index.js 128 kB +287 B (0%)
build/block-library/index.js 149 kB +19 B (0%)
build/block-serialization-default-parser/index.js 1.87 kB -4 B (0%)
build/blocks/index.js 48.1 kB +2 B (0%)
build/components/index.js 172 kB -94 B (0%)
build/compose/index.js 9.95 kB +4 B (0%)
build/core-data/index.js 15.2 kB +2 B (0%)
build/data/index.js 8.98 kB +1 B
build/date/index.js 11.2 kB -1 B
build/deprecated/index.js 769 B +1 B
build/edit-navigation/index.js 11.1 kB -7 B (0%)
build/edit-post/index.js 306 kB +7 B (0%)
build/edit-site/index.js 24.2 kB +1 B
build/editor/index.js 43.6 kB +23 B (0%)
build/element/index.js 4.62 kB -6 B (0%)
build/format-library/index.js 6.74 kB -1 B
build/hooks/index.js 2.27 kB +2 B (0%)
build/html-entities/index.js 622 B -1 B
build/i18n/index.js 3.57 kB +1 B
build/keyboard-shortcuts/index.js 2.54 kB -2 B (0%)
build/media-utils/index.js 5.32 kB +5 B (0%)
build/notices/index.js 1.81 kB -2 B (0%)
build/nux/index.js 3.42 kB -2 B (0%)
build/primitives/index.js 1.43 kB +1 B
build/priority-queue/index.js 790 B -1 B
build/redux-routine/index.js 2.84 kB -1 B
build/reusable-blocks/index.js 2.92 kB +2 B (0%)
build/server-side-render/index.js 2.77 kB +1 B
build/shortcode/index.js 1.69 kB +1 B
build/token-list/index.js 1.27 kB +1 B
ℹ️ View Unchanged
Filename Size Change
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/block-directory/style-rtl.css 943 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/style-rtl.css 11.2 kB 0 B
build/block-editor/style.css 11.2 kB 0 B
build/block-library/editor-rtl.css 9.07 kB 0 B
build/block-library/editor.css 9.07 kB 0 B
build/block-library/style-rtl.css 8.34 kB 0 B
build/block-library/style.css 8.34 kB 0 B
build/block-library/theme-rtl.css 789 B 0 B
build/block-library/theme.css 790 B 0 B
build/block-serialization-spec-parser/index.js 3.06 kB 0 B
build/components/style-rtl.css 15.3 kB 0 B
build/components/style.css 15.3 kB 0 B
build/data-controls/index.js 827 B 0 B
build/dom-ready/index.js 571 B 0 B
build/dom/index.js 4.95 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/style-rtl.css 6.49 kB 0 B
build/edit-post/style.css 6.47 kB 0 B
build/edit-site/style-rtl.css 3.91 kB 0 B
build/edit-site/style.css 3.91 kB 0 B
build/edit-widgets/index.js 26.3 kB 0 B
build/edit-widgets/style-rtl.css 3.13 kB 0 B
build/edit-widgets/style.css 3.13 kB 0 B
build/editor/editor-styles-rtl.css 476 B 0 B
build/editor/editor-styles.css 478 B 0 B
build/editor/style-rtl.css 3.85 kB 0 B
build/editor/style.css 3.84 kB 0 B
build/escape-html/index.js 735 B 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/is-shallow-equal/index.js 698 B 0 B
build/keycodes/index.js 1.93 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/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/rich-text/index.js 13.4 kB 0 B
build/ui-utils/index.js 11.9 kB 0 B
build/url/index.js 2.84 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

@ItsJonQ
Copy link
Author

ItsJonQ commented Dec 4, 2020

Thank goodness! Got the packages all happy now

@ItsJonQ ItsJonQ requested a review from gziolo December 4, 2020 16:27
@gziolo
Copy link
Member

gziolo commented Dec 4, 2020

I left a quite long comment under the parent issue #27484 (comment) where I propose we postpone work on this PR for now and use the npm package for the time being. Instead, we could focus initially on "Bringing over the Components". I will expand on that on Monday, have a great weekend 👋

@gziolo
Copy link
Member

gziolo commented Dec 7, 2020

In the past, we had @wordpress/utils module. Long before WordPress packages were a thing. As you can see in #3955, we decided to break it down into smaller packages that are built around functionality rather than a catch-all for everything that is hard to classify. I think here we should also seek for repeating the same process and adding those utilities to other existing packages or grouping them based on the functionality.

Based on my previous comment, I would also leave it as a very last task when moving code from the external repository/packages to the Gutenberg repository as switching the strategy from top-bottom integration might help us using more of the existing APIs (as pointed out by @youknowriad in his comments). It all can be discussed individually on PRs.

@ItsJonQ
Copy link
Author

ItsJonQ commented Dec 7, 2020

@gziolo Thank you for your thoughts and insights!

I propose we postpone work on this PR for now and use the npm package for the time being

I'm 💯 down with this plan. I had originally proposed that we add things to Gutenberg because I felt like that was the only option.

@ItsJonQ
Copy link
Author

ItsJonQ commented Dec 9, 2020

Update: May pause on this as we attempt to use the @wp-g2 packages directly:
#27594

This PR was helpful though, as it helped highlight some parts of the utils package that could be optimized.

cc'ing @jorgefilipecosta

@ItsJonQ
Copy link
Author

ItsJonQ commented Jan 19, 2021

Closing this up! We'll revisit how we can best do this in the future.

@ItsJonQ ItsJonQ closed this Jan 19, 2021
@aristath aristath deleted the try/add-ui-utils-package branch January 20, 2021 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Feature] Component System WordPress component system
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

3 participants