Global Styles: Try a simple navigation #33064
Conversation
Size Change: 0 B Total Size: 1.05 MB
|
Filename | Size |
---|---|
build/a11y/index.min.js |
1.12 kB |
build/annotations/index.min.js |
2.93 kB |
build/api-fetch/index.min.js |
2.44 kB |
build/autop/index.min.js |
2.28 kB |
build/blob/index.min.js |
672 B |
build/block-directory/index.min.js |
6.62 kB |
build/block-directory/style-rtl.css |
1.02 kB |
build/block-directory/style.css |
1.02 kB |
build/block-editor/index.min.js |
120 kB |
build/block-editor/style-rtl.css |
13.8 kB |
build/block-editor/style.css |
13.8 kB |
build/block-library/blocks/archives/editor-rtl.css |
61 B |
build/block-library/blocks/archives/editor.css |
60 B |
build/block-library/blocks/archives/style-rtl.css |
65 B |
build/block-library/blocks/archives/style.css |
65 B |
build/block-library/blocks/audio/editor-rtl.css |
58 B |
build/block-library/blocks/audio/editor.css |
58 B |
build/block-library/blocks/audio/style-rtl.css |
112 B |
build/block-library/blocks/audio/style.css |
112 B |
build/block-library/blocks/audio/theme-rtl.css |
125 B |
build/block-library/blocks/audio/theme.css |
125 B |
build/block-library/blocks/block/editor-rtl.css |
161 B |
build/block-library/blocks/block/editor.css |
161 B |
build/block-library/blocks/button/editor-rtl.css |
475 B |
build/block-library/blocks/button/editor.css |
474 B |
build/block-library/blocks/button/style-rtl.css |
603 B |
build/block-library/blocks/button/style.css |
602 B |
build/block-library/blocks/buttons/editor-rtl.css |
315 B |
build/block-library/blocks/buttons/editor.css |
315 B |
build/block-library/blocks/buttons/style-rtl.css |
375 B |
build/block-library/blocks/buttons/style.css |
375 B |
build/block-library/blocks/calendar/style-rtl.css |
208 B |
build/block-library/blocks/calendar/style.css |
208 B |
build/block-library/blocks/categories/editor-rtl.css |
84 B |
build/block-library/blocks/categories/editor.css |
83 B |
build/block-library/blocks/categories/style-rtl.css |
79 B |
build/block-library/blocks/categories/style.css |
79 B |
build/block-library/blocks/code/style-rtl.css |
90 B |
build/block-library/blocks/code/style.css |
90 B |
build/block-library/blocks/code/theme-rtl.css |
131 B |
build/block-library/blocks/code/theme.css |
131 B |
build/block-library/blocks/columns/editor-rtl.css |
190 B |
build/block-library/blocks/columns/editor.css |
190 B |
build/block-library/blocks/columns/style-rtl.css |
422 B |
build/block-library/blocks/columns/style.css |
422 B |
build/block-library/blocks/cover/editor-rtl.css |
670 B |
build/block-library/blocks/cover/editor.css |
670 B |
build/block-library/blocks/cover/style-rtl.css |
1.22 kB |
build/block-library/blocks/cover/style.css |
1.23 kB |
build/block-library/blocks/embed/editor-rtl.css |
486 B |
build/block-library/blocks/embed/editor.css |
486 B |
build/block-library/blocks/embed/style-rtl.css |
401 B |
build/block-library/blocks/embed/style.css |
400 B |
build/block-library/blocks/embed/theme-rtl.css |
124 B |
build/block-library/blocks/embed/theme.css |
124 B |
build/block-library/blocks/file/editor-rtl.css |
301 B |
build/block-library/blocks/file/editor.css |
300 B |
build/block-library/blocks/file/style-rtl.css |
255 B |
build/block-library/blocks/file/style.css |
255 B |
build/block-library/blocks/file/view.min.js |
780 B |
build/block-library/blocks/freeform/editor-rtl.css |
2.44 kB |
build/block-library/blocks/freeform/editor.css |
2.44 kB |
build/block-library/blocks/gallery/editor-rtl.css |
704 B |
build/block-library/blocks/gallery/editor.css |
705 B |
build/block-library/blocks/gallery/style-rtl.css |
1.06 kB |
build/block-library/blocks/gallery/style.css |
1.06 kB |
build/block-library/blocks/gallery/theme-rtl.css |
122 B |
build/block-library/blocks/gallery/theme.css |
122 B |
build/block-library/blocks/group/editor-rtl.css |
160 B |
build/block-library/blocks/group/editor.css |
160 B |
build/block-library/blocks/group/style-rtl.css |
57 B |
build/block-library/blocks/group/style.css |
57 B |
build/block-library/blocks/group/theme-rtl.css |
93 B |
build/block-library/blocks/group/theme.css |
93 B |
build/block-library/blocks/heading/editor-rtl.css |
152 B |
build/block-library/blocks/heading/editor.css |
152 B |
build/block-library/blocks/heading/style-rtl.css |
76 B |
build/block-library/blocks/heading/style.css |
76 B |
build/block-library/blocks/home-link/style-rtl.css |
259 B |
build/block-library/blocks/home-link/style.css |
259 B |
build/block-library/blocks/html/editor-rtl.css |
281 B |
build/block-library/blocks/html/editor.css |
281 B |
build/block-library/blocks/image/editor-rtl.css |
729 B |
build/block-library/blocks/image/editor.css |
727 B |
build/block-library/blocks/image/style-rtl.css |
481 B |
build/block-library/blocks/image/style.css |
485 B |
build/block-library/blocks/image/theme-rtl.css |
124 B |
build/block-library/blocks/image/theme.css |
124 B |
build/block-library/blocks/latest-comments/style-rtl.css |
286 B |
build/block-library/blocks/latest-comments/style.css |
286 B |
build/block-library/blocks/latest-posts/editor-rtl.css |
137 B |
build/block-library/blocks/latest-posts/editor.css |
137 B |
build/block-library/blocks/latest-posts/style-rtl.css |
534 B |
build/block-library/blocks/latest-posts/style.css |
532 B |
build/block-library/blocks/list/style-rtl.css |
63 B |
build/block-library/blocks/list/style.css |
63 B |
build/block-library/blocks/media-text/editor-rtl.css |
263 B |
build/block-library/blocks/media-text/editor.css |
264 B |
build/block-library/blocks/media-text/style-rtl.css |
492 B |
build/block-library/blocks/media-text/style.css |
489 B |
build/block-library/blocks/more/editor-rtl.css |
434 B |
build/block-library/blocks/more/editor.css |
434 B |
build/block-library/blocks/navigation-link/editor-rtl.css |
633 B |
build/block-library/blocks/navigation-link/editor.css |
634 B |
build/block-library/blocks/navigation-link/style-rtl.css |
94 B |
build/block-library/blocks/navigation-link/style.css |
94 B |
build/block-library/blocks/navigation/editor-rtl.css |
1.55 kB |
build/block-library/blocks/navigation/editor.css |
1.55 kB |
build/block-library/blocks/navigation/style-rtl.css |
1.63 kB |
build/block-library/blocks/navigation/style.css |
1.63 kB |
build/block-library/blocks/navigation/view.min.js |
2.87 kB |
build/block-library/blocks/nextpage/editor-rtl.css |
395 B |
build/block-library/blocks/nextpage/editor.css |
395 B |
build/block-library/blocks/page-list/editor-rtl.css |
310 B |
build/block-library/blocks/page-list/editor.css |
311 B |
build/block-library/blocks/page-list/style-rtl.css |
240 B |
build/block-library/blocks/page-list/style.css |
240 B |
build/block-library/blocks/paragraph/editor-rtl.css |
157 B |
build/block-library/blocks/paragraph/editor.css |
157 B |
build/block-library/blocks/paragraph/style-rtl.css |
247 B |
build/block-library/blocks/paragraph/style.css |
248 B |
build/block-library/blocks/post-author/editor-rtl.css |
209 B |
build/block-library/blocks/post-author/editor.css |
209 B |
build/block-library/blocks/post-author/style-rtl.css |
183 B |
build/block-library/blocks/post-author/style.css |
184 B |
build/block-library/blocks/post-comments-form/style-rtl.css |
140 B |
build/block-library/blocks/post-comments-form/style.css |
140 B |
build/block-library/blocks/post-comments/style-rtl.css |
360 B |
build/block-library/blocks/post-comments/style.css |
359 B |
build/block-library/blocks/post-content/editor-rtl.css |
139 B |
build/block-library/blocks/post-content/editor.css |
139 B |
build/block-library/blocks/post-excerpt/editor-rtl.css |
73 B |
build/block-library/blocks/post-excerpt/editor.css |
73 B |
build/block-library/blocks/post-excerpt/style-rtl.css |
69 B |
build/block-library/blocks/post-excerpt/style.css |
69 B |
build/block-library/blocks/post-featured-image/editor-rtl.css |
338 B |
build/block-library/blocks/post-featured-image/editor.css |
338 B |
build/block-library/blocks/post-featured-image/style-rtl.css |
141 B |
build/block-library/blocks/post-featured-image/style.css |
141 B |
build/block-library/blocks/post-template/editor-rtl.css |
100 B |
build/block-library/blocks/post-template/editor.css |
99 B |
build/block-library/blocks/post-template/style-rtl.css |
379 B |
build/block-library/blocks/post-template/style.css |
380 B |
build/block-library/blocks/post-title/style-rtl.css |
60 B |
build/block-library/blocks/post-title/style.css |
60 B |
build/block-library/blocks/preformatted/style-rtl.css |
103 B |
build/block-library/blocks/preformatted/style.css |
103 B |
build/block-library/blocks/pullquote/editor-rtl.css |
183 B |
build/block-library/blocks/pullquote/editor.css |
183 B |
build/block-library/blocks/pullquote/style-rtl.css |
318 B |
build/block-library/blocks/pullquote/style.css |
318 B |
build/block-library/blocks/pullquote/theme-rtl.css |
169 B |
build/block-library/blocks/pullquote/theme.css |
169 B |
build/block-library/blocks/query-pagination-numbers/editor-rtl.css |
122 B |
build/block-library/blocks/query-pagination-numbers/editor.css |
121 B |
build/block-library/blocks/query-pagination/editor-rtl.css |
270 B |
build/block-library/blocks/query-pagination/editor.css |
262 B |
build/block-library/blocks/query-pagination/style-rtl.css |
168 B |
build/block-library/blocks/query-pagination/style.css |
168 B |
build/block-library/blocks/query-title/editor-rtl.css |
86 B |
build/block-library/blocks/query-title/editor.css |
86 B |
build/block-library/blocks/query/editor-rtl.css |
131 B |
build/block-library/blocks/query/editor.css |
132 B |
build/block-library/blocks/quote/style-rtl.css |
169 B |
build/block-library/blocks/quote/style.css |
169 B |
build/block-library/blocks/quote/theme-rtl.css |
221 B |
build/block-library/blocks/quote/theme.css |
221 B |
build/block-library/blocks/rss/editor-rtl.css |
201 B |
build/block-library/blocks/rss/editor.css |
202 B |
build/block-library/blocks/rss/style-rtl.css |
290 B |
build/block-library/blocks/rss/style.css |
290 B |
build/block-library/blocks/search/editor-rtl.css |
211 B |
build/block-library/blocks/search/editor.css |
211 B |
build/block-library/blocks/search/style-rtl.css |
359 B |
build/block-library/blocks/search/style.css |
362 B |
build/block-library/blocks/search/theme-rtl.css |
64 B |
build/block-library/blocks/search/theme.css |
64 B |
build/block-library/blocks/separator/editor-rtl.css |
99 B |
build/block-library/blocks/separator/editor.css |
99 B |
build/block-library/blocks/separator/style-rtl.css |
251 B |
build/block-library/blocks/separator/style.css |
251 B |
build/block-library/blocks/separator/theme-rtl.css |
172 B |
build/block-library/blocks/separator/theme.css |
172 B |
build/block-library/blocks/shortcode/editor-rtl.css |
476 B |
build/block-library/blocks/shortcode/editor.css |
476 B |
build/block-library/blocks/site-logo/editor-rtl.css |
646 B |
build/block-library/blocks/site-logo/editor.css |
647 B |
build/block-library/blocks/site-logo/style-rtl.css |
154 B |
build/block-library/blocks/site-logo/style.css |
154 B |
build/block-library/blocks/site-tagline/editor-rtl.css |
87 B |
build/block-library/blocks/site-tagline/editor.css |
87 B |
build/block-library/blocks/site-title/editor-rtl.css |
85 B |
build/block-library/blocks/site-title/editor.css |
85 B |
build/block-library/blocks/social-link/editor-rtl.css |
164 B |
build/block-library/blocks/social-link/editor.css |
165 B |
build/block-library/blocks/social-links/editor-rtl.css |
800 B |
build/block-library/blocks/social-links/editor.css |
799 B |
build/block-library/blocks/social-links/style-rtl.css |
1.34 kB |
build/block-library/blocks/social-links/style.css |
1.34 kB |
build/block-library/blocks/spacer/editor-rtl.css |
308 B |
build/block-library/blocks/spacer/editor.css |
308 B |
build/block-library/blocks/spacer/style-rtl.css |
48 B |
build/block-library/blocks/spacer/style.css |
48 B |
build/block-library/blocks/table/editor-rtl.css |
478 B |
build/block-library/blocks/table/editor.css |
478 B |
build/block-library/blocks/table/style-rtl.css |
480 B |
build/block-library/blocks/table/style.css |
480 B |
build/block-library/blocks/table/theme-rtl.css |
188 B |
build/block-library/blocks/table/theme.css |
188 B |
build/block-library/blocks/tag-cloud/editor-rtl.css |
118 B |
build/block-library/blocks/tag-cloud/editor.css |
118 B |
build/block-library/blocks/tag-cloud/style-rtl.css |
94 B |
build/block-library/blocks/tag-cloud/style.css |
94 B |
build/block-library/blocks/template-part/editor-rtl.css |
551 B |
build/block-library/blocks/template-part/editor.css |
550 B |
build/block-library/blocks/template-part/theme-rtl.css |
101 B |
build/block-library/blocks/template-part/theme.css |
101 B |
build/block-library/blocks/term-description/editor-rtl.css |
90 B |
build/block-library/blocks/term-description/editor.css |
90 B |
build/block-library/blocks/text-columns/editor-rtl.css |
95 B |
build/block-library/blocks/text-columns/editor.css |
95 B |
build/block-library/blocks/text-columns/style-rtl.css |
166 B |
build/block-library/blocks/text-columns/style.css |
166 B |
build/block-library/blocks/verse/style-rtl.css |
87 B |
build/block-library/blocks/verse/style.css |
87 B |
build/block-library/blocks/video/editor-rtl.css |
569 B |
build/block-library/blocks/video/editor.css |
570 B |
build/block-library/blocks/video/style-rtl.css |
173 B |
build/block-library/blocks/video/style.css |
173 B |
build/block-library/blocks/video/theme-rtl.css |
124 B |
build/block-library/blocks/video/theme.css |
124 B |
build/block-library/common-rtl.css |
1.29 kB |
build/block-library/common.css |
1.29 kB |
build/block-library/editor-rtl.css |
9.73 kB |
build/block-library/editor.css |
9.73 kB |
build/block-library/index.min.js |
145 kB |
build/block-library/reset-rtl.css |
514 B |
build/block-library/reset.css |
515 B |
build/block-library/style-rtl.css |
10.2 kB |
build/block-library/style.css |
10.2 kB |
build/block-library/theme-rtl.css |
692 B |
build/block-library/theme.css |
693 B |
build/block-serialization-default-parser/index.min.js |
1.29 kB |
build/block-serialization-spec-parser/index.min.js |
3.06 kB |
build/blocks/index.min.js |
47.3 kB |
build/components/index.min.js |
182 kB |
build/components/style-rtl.css |
15.8 kB |
build/components/style.css |
15.8 kB |
build/compose/index.min.js |
10.2 kB |
build/core-data/index.min.js |
12.4 kB |
build/customize-widgets/index.min.js |
10.1 kB |
build/customize-widgets/style-rtl.css |
1.48 kB |
build/customize-widgets/style.css |
1.48 kB |
build/data-controls/index.min.js |
828 B |
build/data/index.min.js |
7.23 kB |
build/date/index.min.js |
31.8 kB |
build/deprecated/index.min.js |
738 B |
build/dom-ready/index.min.js |
577 B |
build/dom/index.min.js |
4.62 kB |
build/edit-navigation/index.min.js |
13.9 kB |
build/edit-navigation/style-rtl.css |
3.12 kB |
build/edit-navigation/style.css |
3.12 kB |
build/edit-post/classic-rtl.css |
483 B |
build/edit-post/classic.css |
483 B |
build/edit-post/index.min.js |
58.7 kB |
build/edit-post/style-rtl.css |
7.29 kB |
build/edit-post/style.css |
7.28 kB |
build/edit-site/index.min.js |
25.9 kB |
build/edit-site/style-rtl.css |
4.99 kB |
build/edit-site/style.css |
4.98 kB |
build/edit-widgets/index.min.js |
16.1 kB |
build/edit-widgets/style-rtl.css |
3.88 kB |
build/edit-widgets/style.css |
3.88 kB |
build/editor/index.min.js |
38.6 kB |
build/editor/style-rtl.css |
3.88 kB |
build/editor/style.css |
3.88 kB |
build/element/index.min.js |
3.44 kB |
build/escape-html/index.min.js |
739 B |
build/format-library/index.min.js |
5.69 kB |
build/format-library/style-rtl.css |
668 B |
build/format-library/style.css |
669 B |
build/hooks/index.min.js |
1.76 kB |
build/html-entities/index.min.js |
628 B |
build/i18n/index.min.js |
3.73 kB |
build/is-shallow-equal/index.min.js |
710 B |
build/keyboard-shortcuts/index.min.js |
1.74 kB |
build/keycodes/index.min.js |
1.43 kB |
build/list-reusable-blocks/index.min.js |
2.07 kB |
build/list-reusable-blocks/style-rtl.css |
842 B |
build/list-reusable-blocks/style.css |
842 B |
build/media-utils/index.min.js |
3.08 kB |
build/notices/index.min.js |
1.07 kB |
build/nux/index.min.js |
2.31 kB |
build/nux/style-rtl.css |
745 B |
build/nux/style.css |
742 B |
build/plugins/index.min.js |
1.99 kB |
build/primitives/index.min.js |
1.03 kB |
build/priority-queue/index.min.js |
791 B |
build/react-i18n/index.min.js |
924 B |
build/redux-routine/index.min.js |
2.82 kB |
build/reusable-blocks/index.min.js |
2.56 kB |
build/reusable-blocks/style-rtl.css |
256 B |
build/reusable-blocks/style.css |
256 B |
build/rich-text/index.min.js |
10.6 kB |
build/server-side-render/index.min.js |
1.63 kB |
build/shortcode/index.min.js |
1.68 kB |
build/token-list/index.min.js |
848 B |
build/url/index.min.js |
1.95 kB |
build/viewport/index.min.js |
1.28 kB |
build/warning/index.min.js |
1.13 kB |
build/widgets/index.min.js |
6.23 kB |
build/widgets/style-rtl.css |
1 kB |
build/widgets/style.css |
1.01 kB |
build/wordcount/index.min.js |
1.24 kB |
This LGTM. Just a couple notes from our sychronous discussion earlier: We will manage a navigation stack of slugs (like view breadcrumbs) each time a View is entered into. Using these slugs we'll be able to retrieve any relevant metadata about the current and previous views. This will allow us to programatically set the view header and back buttons to the correct values as well as render the correct view when hitting the back buttons. Do we also need to think of a |
|
||
return ( | ||
<GlobalStylesNavigationContext.Provider | ||
value={ { currentView, setCurrentView } } |
sarayourfriend
Jun 29, 2021
Contributor
Nit: should this object be memoized?
Nit: should this object be memoized?
Thank you for proposing a simple navigation system @tyxla If possible it would be good to see how this system expands for the dynamic view/routes case as for sure we will need to have views per each block and it seems to only thing not covered. |
return ( | ||
<> | ||
<h3>Colors view</h3> | ||
<button onClick={ navigateToRoot }>< Back to Root view</button> |
jorgefilipecosta
Jun 29, 2021
Member
This is just for demo purposes for now, but it already shows that we probably need general components with things like the back button to go back to previews view, the title of the view etc.
This is just for demo purposes for now, but it already shows that we probably need general components with things like the back button to go back to previews view, the title of the view etc.
|
||
return ( | ||
<GlobalStylesNavigationContext.Provider | ||
value={ { currentView, setCurrentView } } |
jorgefilipecosta
Jun 29, 2021
Member
´{ currentView, setCurrentView }` creates a new object every time the component rerenders, given that this is a context value I guess it will trigger unrequited rerender on the components tree. Maybe in this case useMemo is helpful.
´{ currentView, setCurrentView }` creates a new object every time the component rerenders, given that this is a context value I guess it will trigger unrequited rerender on the components tree. Maybe in this case useMemo is helpful.
import GlobalStylesViewTypography from '../views/typography'; | ||
import GlobalStylesViewTypographyElement from '../views/typography-element'; | ||
|
||
const allViews = { |
jorgefilipecosta
Jun 29, 2021
Member
This may grow huge with all the subviews. Maybe the root view does not need to be aware of the subviews and just of its children, and then its children are aware of its subviews.
Another alternative is importing the subviews from the children.
import { views as colorViews } from '../views/colors'
const allViews = {
...colorViews,
}
But for now keeping them in a central place is ok we don't know yet if it is going to be a problem or not.
This may grow huge with all the subviews. Maybe the root view does not need to be aware of the subviews and just of its children, and then its children are aware of its subviews.
Another alternative is importing the subviews from the children.
import { views as colorViews } from '../views/colors'
const allViews = {
...colorViews,
}
But for now keeping them in a central place is ok we don't know yet if it is going to be a problem or not.
[ VIEW_COLORS ]: GlobalStylesViewColors, | ||
[ VIEW_COLORS_ELEMENT ]: GlobalStylesViewColorsElement, | ||
[ VIEW_COLORS_PALETTE ]: GlobalStylesViewColorsPalette, | ||
[ VIEW_TYPOGRAPHY ]: GlobalStylesViewTypography, |
jorgefilipecosta
Jun 29, 2021
Member
I may want to change the typography settings of block A I just installed. So in practice all these views could also be nested e.g: I may go to root-> view typography to change typography settings for all the site, or I may go to root -> blocks -> block a (dynamic depending on the blocks of site) -> view typography.
It would be nice to see how this system expands to this dynamic case. E.g: we may have a const all blocks = []
that simulates the blocks on the website. And then we could simulate this "dynamic" view case.
It is not a blocker we can git it a try in a follow-up PR.
I may want to change the typography settings of block A I just installed. So in practice all these views could also be nested e.g: I may go to root-> view typography to change typography settings for all the site, or I may go to root -> blocks -> block a (dynamic depending on the blocks of site) -> view typography.
It would be nice to see how this system expands to this dynamic case. E.g: we may have a const all blocks = []
that simulates the blocks on the website. And then we could simulate this "dynamic" view case.
It is not a blocker we can git it a try in a follow-up PR.
Description
One of the bigger blockers for moving #32923 forward (moving global styles v2 from g2 to Gutenberg) is the navigation/router logic. There's a lot to discuss there when it comes to how functional and "routery" we want it to be, whether we need advanced routing (with react router or so), URL persistence, history management, a dedicated data store, animations, transitions, etc. However, to me, none of that is a blocker for the initial implementation and all of those could be incrementally added to the project.
So what we really need to move the project forward is a simple navigation system that's responsible for holding all the views (I'm adopting that term as per this discussion), maintaining and presenting the current view and allowing navigation between all the views. That's all we need in order to make progress for now, and all the rest could be considered a feature and/or eye candy. If we land this, it will help unblock much of #32923 and allow us to actually get much closer to a working prototype.
So this PR sets the stage with a very simple navigation system that's based on the existing
Navigation
component base and uses the Context API. We're introducing the views that are introduced in #32923 as simple empty placeholder components with some navigational items inside them, which we're currently using just for demonstration. Since that's not imported anywhere, we can use that stage and further build the Global Styles v2 prototype on top of it.How has this been tested?
This is manually testable through a new Storybook story:
npm run storybook:dev
Types of changes
New feature
Checklist:
*.native.js
files for terms that need renaming or removal).