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

Sidebar reacts to screen size and refactor to use interface package #22565

Conversation

jorgefilipecosta
Copy link
Member

This PR applies the following changes:

  • Implements the functionality to automatically close the sidebar when the screen is resized from desktop and reopened when the opposite happens.
  • Refactors the edit-post module to use the mobile sidebar control from the interface package.
  • Refactors edit-post to use the sidebar toggle button the interface package instead of repeating its own.
  • Makes edit site and edit widgets use the mobile sidebar control behavior from interface package. Currently it was impossible to open the block inspector on mobile in both screens.
  • Implements the sidebars e.g: block inspector on the customizer blocks.

@jorgefilipecosta jorgefilipecosta added [Feature] Widgets Screen The block-based screen that replaced widgets.php. [Package] Edit Post /packages/edit-post [Package] Edit Widgets /packages/edit-widgets [Package] Interface /packages/interface labels May 22, 2020
@github-actions
Copy link

github-actions bot commented May 22, 2020

Size Change: +344 B (0%)

Total Size: 1.12 MB

Filename Size Change
build/block-directory/index.js 6.48 kB +1 B
build/block-editor/index.js 105 kB +5 B (0%)
build/blocks/index.js 48.1 kB -2 B (0%)
build/components/index.js 190 kB +1 B
build/core-data/index.js 11.4 kB +3 B (0%)
build/data/index.js 8.42 kB +3 B (0%)
build/edit-post/index.js 302 kB -18 B (0%)
build/edit-post/style-rtl.css 12.2 kB -3 B (0%)
build/edit-post/style.css 12.2 kB -3 B (0%)
build/edit-site/index.js 14 kB +161 B (1%)
build/edit-site/style-rtl.css 5.52 kB -6 B (0%)
build/edit-site/style.css 5.53 kB -6 B (0%)
build/edit-widgets/index.js 8.05 kB +178 B (2%)
build/edit-widgets/style-rtl.css 4.59 kB +15 B (0%)
build/edit-widgets/style.css 4.59 kB +15 B (0%)
ℹ️ 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.83 kB 0 B
build/blob/index.js 620 B 0 B
build/block-directory/style-rtl.css 788 B 0 B
build/block-directory/style.css 788 B 0 B
build/block-editor/style-rtl.css 10.9 kB 0 B
build/block-editor/style.css 10.9 kB 0 B
build/block-library/editor-rtl.css 7.17 kB 0 B
build/block-library/editor.css 7.17 kB 0 B
build/block-library/index.js 118 kB 0 B
build/block-library/style-rtl.css 7.48 kB 0 B
build/block-library/style.css 7.48 kB 0 B
build/block-library/theme-rtl.css 684 B 0 B
build/block-library/theme.css 686 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/components/style-rtl.css 17.1 kB 0 B
build/components/style.css 17.1 kB 0 B
build/compose/index.js 9.31 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 771 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 3.11 kB 0 B
build/edit-navigation/index.js 6.63 kB 0 B
build/edit-navigation/style-rtl.css 857 B 0 B
build/edit-navigation/style.css 856 B 0 B
build/editor/editor-styles-rtl.css 425 B 0 B
build/editor/editor-styles.css 428 B 0 B
build/editor/index.js 44.6 kB 0 B
build/editor/style-rtl.css 5.06 kB 0 B
build/editor/style.css 5.06 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.71 kB 0 B
build/format-library/style-rtl.css 502 B 0 B
build/format-library/style.css 502 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/index.js 3.12 kB 0 B
build/list-reusable-blocks/style-rtl.css 226 B 0 B
build/list-reusable-blocks/style.css 226 B 0 B
build/media-utils/index.js 5.29 kB 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 616 B 0 B
build/nux/style.css 613 B 0 B
build/plugins/index.js 2.56 kB 0 B
build/primitives/index.js 1.5 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 14.8 kB 0 B
build/server-side-render/index.js 2.68 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.28 kB 0 B
build/url/index.js 4.02 kB 0 B
build/viewport/index.js 1.84 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

Comment on lines 32 to 35
isPostSaveable: select( 'core/editor' ).isEditedPostSaveable(),
deviceType: select(
'core/edit-post'
).__experimentalGetPreviewDeviceType(),
Copy link
Contributor

Choose a reason for hiding this comment

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

I don't see these being used.

@@ -154,6 +146,7 @@ function Layout() {
<LocalAutosaveMonitor />
<EditPostKeyboardShortcuts />
<EditorKeyboardShortcutsRegister />
<SettingsSidebar />
Copy link
Contributor

Choose a reason for hiding this comment

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

Why was this moved here?

Copy link
Member Author

Choose a reason for hiding this comment

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

Our slot mechanism for complementary areas works with assumption multiple fills are rendered. Only the fill of the active complementary area is shown, but buttons to toggle the complementary area are rendered for all the areas.
Previously the core sidebar fill was only rendered when the sidebar was enabled, and we had a custom made toggle button for the sidebar.
This PR makes sure the core sidebars use the same logic as the plugin sidebars so we need to move SettingsSidebar to a position where it is unconditionoly rendered even if no sidebars are active. Otherwise, when no sidebars are active, we would not render the toggle button for core sidebars.

Comment on lines +27 to +44
let sidebar = select( 'core/interface' ).getActiveComplementaryArea(
'core/edit-post'
);
if (
! [ 'edit-post/document', 'edit-post/block' ].includes( sidebar )
) {
if ( select( 'core/block-editor' ).getBlockSelectionStart() ) {
sidebar = 'edit-post/block';
}
sidebar = 'edit-post/document';
}
Copy link
Contributor

Choose a reason for hiding this comment

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

This deserves a comment. Why do we now have a fallback instead of returning null?

@@ -135,6 +146,7 @@ function Editor( { settings: _settings } ) {
<Context.Provider value={ context }>
<FocusReturnProvider>
<KeyboardShortcuts.Register />
<Sidebar />
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is this sidebar out here now and how is it different from the new one below?

Copy link
Contributor

Choose a reason for hiding this comment

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

Does this have the fills for the slot below?

Copy link
Contributor

Choose a reason for hiding this comment

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

Why is that abstraction necessary?

Copy link
Contributor

Choose a reason for hiding this comment

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

A name like SidebarComplementaryAreaFills would make it easier to grasp.

Copy link
Member Author

Choose a reason for hiding this comment

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

Similar to https://github.com/WordPress/gutenberg/pull/22565/files#r430034009. We need to unconditionally render the fills even if currently we don't have an active sidebar. I renamed the component to SidebarComplementaryAreaFills 👍

Comment on lines 19 to 20
width: calc(100% + 24px);
}

.edit-widgets-sidebar {
z-index: z-index(".edit-widgets-sidebar");
Copy link
Contributor

Choose a reason for hiding this comment

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

These can be merged.

jorgefilipecosta and others added 5 commits May 25, 2020 19:57
…-widgets and edit-site; Add auto close on mobile sidebar behaviour interface package
Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
@jorgefilipecosta jorgefilipecosta force-pushed the add/block-inspector-customizer-blocks-mobile-sidebars-on-edit-site-and-edit-widgets branch from cd29902 to 543e9e2 Compare May 25, 2020 18:57
@jorgefilipecosta jorgefilipecosta force-pushed the add/block-inspector-customizer-blocks-mobile-sidebars-on-edit-site-and-edit-widgets branch from 543e9e2 to e8f0930 Compare May 25, 2020 19:21
Copy link
Member Author

@jorgefilipecosta jorgefilipecosta left a comment

Choose a reason for hiding this comment

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

Hi @epiqueras thank you for the review. Your feedback was applied!

@@ -135,6 +146,7 @@ function Editor( { settings: _settings } ) {
<Context.Provider value={ context }>
<FocusReturnProvider>
<KeyboardShortcuts.Register />
<Sidebar />
Copy link
Member Author

Choose a reason for hiding this comment

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

Similar to https://github.com/WordPress/gutenberg/pull/22565/files#r430034009. We need to unconditionally render the fills even if currently we don't have an active sidebar. I renamed the component to SidebarComplementaryAreaFills 👍

jorgefilipecosta and others added 3 commits May 26, 2020 12:56
…ex.js

Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
…ex.js

Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
…ex.js

Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
jorgefilipecosta and others added 4 commits May 26, 2020 12:57
…ex.js

Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
…ex.js

Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
…ex.js

Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
Co-authored-by: Enrique Piqueras <epiqueras@users.noreply.github.com>
@jorgefilipecosta jorgefilipecosta force-pushed the add/block-inspector-customizer-blocks-mobile-sidebars-on-edit-site-and-edit-widgets branch from b1a359b to fa068eb Compare May 26, 2020 12:21
@jorgefilipecosta jorgefilipecosta changed the title Block inspector customizer; Mobile sidebars on in edit site/widgets; Inspector customizer; Mobile sidebars on in edit site/widgets; May 26, 2020
@jorgefilipecosta jorgefilipecosta merged commit 34d5c6b into master May 26, 2020
@jorgefilipecosta jorgefilipecosta deleted the add/block-inspector-customizer-blocks-mobile-sidebars-on-edit-site-and-edit-widgets branch May 26, 2020 14:05
@github-actions github-actions bot added this to the Gutenberg 8.3 milestone May 26, 2020
@oandregal oandregal changed the title Inspector customizer; Mobile sidebars on in edit site/widgets; Sidebar reacts to screen size and refactor to use interface package Jun 8, 2020
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. [Package] Edit Post /packages/edit-post [Package] Edit Widgets /packages/edit-widgets [Package] Interface /packages/interface
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants