@gechiui/block-editor
Version:
46 lines (40 loc) • 898 B
JavaScript
/**
* GeChiUI dependencies
*/
import { useContext } from '@gechiui/element';
import {
__experimentalToolbarContext as ToolbarContext,
ToolbarGroup,
__experimentalUseSlot as useSlot,
} from '@gechiui/components';
/**
* Internal dependencies
*/
import groups from './groups';
export default function BlockControlsSlot( { group = 'default', ...props } ) {
const accessibleToolbarState = useContext( ToolbarContext );
const Slot = groups[ group ].Slot;
const slot = useSlot( Slot.__unstableName );
const hasFills = Boolean( slot.fills && slot.fills.length );
if ( ! hasFills ) {
return null;
}
if ( group === 'default' ) {
return (
<Slot
{ ...props }
bubblesVirtually
fillProps={ accessibleToolbarState }
/>
);
}
return (
<ToolbarGroup>
<Slot
{ ...props }
bubblesVirtually
fillProps={ accessibleToolbarState }
/>
</ToolbarGroup>
);
}