diff --git a/packages/block-editor/src/components/inspector-controls/index.native.js b/packages/block-editor/src/components/inspector-controls/fill.native.js similarity index 57% rename from packages/block-editor/src/components/inspector-controls/index.native.js rename to packages/block-editor/src/components/inspector-controls/fill.native.js index ed131ddb4ce6a..01ac32b256500 100644 --- a/packages/block-editor/src/components/inspector-controls/index.native.js +++ b/packages/block-editor/src/components/inspector-controls/fill.native.js @@ -7,18 +7,27 @@ import { View } from 'react-native'; * WordPress dependencies */ import { Children } from '@wordpress/element'; -import { createSlotFill, BottomSheetConsumer } from '@wordpress/components'; +import { BottomSheetConsumer } from '@wordpress/components'; +import warning from '@wordpress/warning'; /** * Internal dependencies */ +import groups from './groups'; import { useBlockEditContext } from '../block-edit/context'; import { BlockSettingsButton } from '../block-settings'; -const { Fill, Slot } = createSlotFill( 'InspectorControls' ); - -const FillWithSettingsButton = ( { children, ...props } ) => { +export default function InspectorControlsFill( { + children, + __experimentalGroup: group = 'default', + ...props +} ) { const { isSelected } = useBlockEditContext(); + const Fill = groups[ group ]?.Fill; + if ( ! Fill ) { + warning( `Unknown InspectorControl group "${ group }" provided.` ); + return null; + } if ( ! isSelected ) { return null; } @@ -35,13 +44,4 @@ const FillWithSettingsButton = ( { children, ...props } ) => { { Children.count( children ) > 0 && } ); -}; - -const InspectorControls = FillWithSettingsButton; - -InspectorControls.Slot = Slot; - -/** - * @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/inspector-controls/README.md - */ -export default InspectorControls; +} diff --git a/packages/block-editor/src/components/inspector-controls/slot.native.js b/packages/block-editor/src/components/inspector-controls/slot.native.js new file mode 100644 index 0000000000000..adf4da06965e4 --- /dev/null +++ b/packages/block-editor/src/components/inspector-controls/slot.native.js @@ -0,0 +1,22 @@ +/** + * WordPress dependencies + */ +import warning from '@wordpress/warning'; + +/** + * Internal dependencies + */ +import groups from './groups'; + +export default function InspectorControlsSlot( { + __experimentalGroup: group = 'default', + ...props +} ) { + const Slot = groups[ group ]?.Slot; + if ( ! Slot ) { + warning( `Unknown InspectorControl group "${ group }" provided.` ); + return null; + } + + return ; +}