Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
79e56b6
Update document title buttons radius (#53221)
jameskoster Aug 2, 2023
0524c65
Fix: Sync status overlaps for some languages in Patterns post type pa…
t-hamano Aug 3, 2023
3a9178a
Image block: Fix stretched images constrained by max-width (#53274)
ajlende Aug 3, 2023
d564a13
Image Block: Don't render `DimensionsTool` if it is not resizable (#5…
t-hamano Aug 4, 2023
baefb67
Fix missing Replace button in content-locked Image blocks (#53410)
noisysocks Aug 8, 2023
cc90b61
fix the go to for non pages by showing it only for pages (#53408)
draganescu Aug 8, 2023
340df75
Site Editor: Fix document actions label helper method (#52974)
Mamaduka Aug 9, 2023
3f0c87a
Image: Clear aspect ratio when wide aligned (#53439)
ajlende Aug 9, 2023
2c25cd2
RichText: Remove 'Footnotes' when interactive formatting is disabled …
Mamaduka Aug 10, 2023
6e1ddbf
Preserve block style variations when securing theme json (#53466)
dsas Aug 11, 2023
e46b446
Site editor: add missing i18n in `HomeTemplateDetails` (#53543)
swissspidy Aug 11, 2023
4c487cd
Fix: Snack bar not fixed on certain pages in the Site Editor (#53207)
tellthemachines Aug 14, 2023
1cb6459
Fix document title alignment in command palette button (#53224)
jameskoster Aug 2, 2023
96b6b1e
Fallback to default max viewport if layout wide size is fluid. (#53551)
tellthemachines Aug 11, 2023
d5275a5
Link Control: persist advanced settings toggle state to preferences i…
scruffian Aug 2, 2023
7605074
Add tests for fluid layout + typography (#53554)
tellthemachines Aug 11, 2023
c81f322
Fix support of sticky position in non-iframed post editor (#53540)
stokesman Aug 15, 2023
0139ded
Revert "Footnotes: Fix recursion into updating attributes when attrib…
tellthemachines Aug 16, 2023
093496a
Fix: indicator style when block moving mode (#53972)
t-hamano Aug 29, 2023
7f41dd3
Fix post editor top toolbar with custom fields in Safari (#53688)
draganescu Aug 15, 2023
6ae0c48
Set top toolbar size dynamically (#53526)
draganescu Aug 15, 2023
d67ed5e
Roll back camelCase change in 96b6b1e
ramonjd Aug 31, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix missing Replace button in content-locked Image blocks (#53410)
* Revert "don't display BlockContextualToolbar at all in contentonly locking (#53110)"

This reverts commit 5efce0e.

* Alternative fix to hide BlockContextualToolbar when there are no controls
  • Loading branch information
noisysocks authored and tellthemachines committed Aug 31, 2023
commit baefb6792fb52f0616685fa761b598f60bf191b6
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
/**
* WordPress dependencies
*/
import { __experimentalUseSlotFills as useSlotFills } from '@wordpress/components';
import warning from '@wordpress/warning';

/**
* Internal dependencies
*/
import groups from './groups';

export function useHasAnyBlockControls() {
let hasAnyBlockControls = false;
for ( const group in groups ) {
// It is safe to violate the rules of hooks here as the `groups` object
// is static and will not change length between renders. Do not return
// early as that will cause the hook to be called a different number of
// times between renders.
// eslint-disable-next-line react-hooks/rules-of-hooks
if ( useHasBlockControls( group ) ) {
hasAnyBlockControls = true;
}
}
return hasAnyBlockControls;
}

export function useHasBlockControls( group = 'default' ) {
const Slot = groups[ group ]?.Slot;
const fills = useSlotFills( Slot?.__unstableName );
if ( ! Slot ) {
warning( `Unknown BlockControls group "${ group }" provided.` );
return null;
}
return !! fills?.length;
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import NavigableToolbar from '../navigable-toolbar';
import BlockToolbar from '../block-toolbar';
import { store as blockEditorStore } from '../../store';
import { unlock } from '../../lock-unlock';
import { useHasAnyBlockControls } from '../block-controls/use-has-block-controls';

function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
// When the toolbar is fixed it can be collapsed
Expand All @@ -34,10 +35,10 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
const isLargeViewport = useViewportMatch( 'medium' );
const {
blockType,
blockEditingMode,
hasParents,
showParentSelector,
selectedBlockClientId,
isContentOnly,
} = useSelect( ( select ) => {
const {
getBlockName,
Expand All @@ -58,9 +59,8 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
blockType:
_selectedBlockClientId &&
getBlockType( getBlockName( _selectedBlockClientId ) ),
blockEditingMode: getBlockEditingMode( _selectedBlockClientId ),
hasParents: parents.length,
isContentOnly:
getBlockEditingMode( _selectedBlockClientId ) === 'contentOnly',
showParentSelector:
parentBlockType &&
getBlockEditingMode( firstParentClientId ) === 'default' &&
Expand All @@ -78,10 +78,13 @@ function BlockContextualToolbar( { focusOnMount, isFixed, ...props } ) {
setIsCollapsed( false );
}, [ selectedBlockClientId ] );

const isToolbarEnabled =
! blockType ||
hasBlockSupport( blockType, '__experimentalToolbar', true );
const hasAnyBlockControls = useHasAnyBlockControls();
if (
isContentOnly ||
( blockType &&
! hasBlockSupport( blockType, '__experimentalToolbar', true ) )
! isToolbarEnabled ||
( blockEditingMode !== 'default' && ! hasAnyBlockControls )
) {
return null;
}
Expand Down
4 changes: 0 additions & 4 deletions packages/block-editor/src/components/block-tools/style.scss
Original file line number Diff line number Diff line change
Expand Up @@ -121,10 +121,6 @@
}
}

&:has(.block-editor-block-toolbar:empty) {
display: none;
}

// Add a scrim to the right of the collapsed button.
&.is-collapsed::after {
content: "";
Expand Down