-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Zoom Out: Disable zooming out when Distraction Free mode is activated #67028
Changes from 4 commits
d69ae8f
51ea6fd
ab28e26
b037bf4
bcd29c4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can revert changes from this file; the zoom-out toggle will be disabled or hidden in distraction-free mode. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hi @Mamaduka, Thank you for taking the time to review the PR. The changes in this file address the feedback provided in this comment: WordPress/gutenberg#67028 (issuecomment-2478844725). Regarding the zoom-out toggle, should it be made entirely inaccessible, including via keyboard shortcuts? Or, as per @t-hamano's comment, should the current implementation be retained, allowing keyboard shortcuts to zoom out, which would automatically disable distraction-free mode? Looking forward to your guidance. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This component renders the UI element for the toggle; changing logic here doesn't change login for keyboard shortcuts. Since the button will be disabled or hidden, there's no need for logic updates. Keyboard shortcut behavior can be handled in a separate PR. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -835,6 +835,9 @@ export const toggleDistractionFree = | |
dispatch.setIsInserterOpened( false ); | ||
dispatch.setIsListViewOpened( false ); | ||
} ); | ||
|
||
// Exit zoom out state when toggling distraction free mode. | ||
unlock( registry.dispatch( blockEditorStore ) ).resetZoomLevel(); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Let's move this into the P.S. The inline comment seems redundant here. |
||
} | ||
registry.batch( () => { | ||
registry | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like other settings buttons in the header are hidden via CSS. I wonder if we should do the same here.
cc @draganescu
gutenberg/packages/editor/src/components/header/style.scss
Lines 257 to 261 in 564f069
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @Mamaduka,
Based on the comment above, if I use CSS to hide the button, a potential issue arises: pressing cmd + shift + 0 will still trigger the zoom-out action via the shortcut, as the logic resides in the callback function within the ZoomOutToggle component.
To address this, I see two potential solutions:
I’d appreciate your input on which approach would be preferable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
useShortcut
also accepts options argument, and we can disable the shortcut whenisDistractionFree
is true.Example:
gutenberg/packages/editor/src/components/global-keyboard-shortcuts/index.js
Lines 46 to 56 in 564f069
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personally, I'd like the Zoom Out button to be hidden rather than disabled when the Distraction free mode is enabled. What do you think?
I don't know why the other buttons are hidden with CSS, but as for the Zoom Out toggle button, it looks fine to render it conditionally using
useViewportMatch
etc 🤔There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know this either; it could be related to animations. Let's follow the current example from the core for hiding similar buttons; if the hiding method is changed in the future, we can do that in one go.