Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
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
Provide context value in more toolbar components
  • Loading branch information
ciampo committed Jun 7, 2023
commit ea25c4257bd93b6834e521014af0262f82fbf2a2
5 changes: 5 additions & 0 deletions packages/components/src/toolbar/constants.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
export const CONTEXT_SYSTEM_VALUE = {
DropdownMenu: {
variant: 'toolbar',
},
};
52 changes: 29 additions & 23 deletions packages/components/src/toolbar/toolbar-group/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,12 @@ import { useContext } from '@wordpress/element';
/**
* Internal dependencies
*/
import { ContextSystemProvider } from '../../ui/context';
import ToolbarButton from '../toolbar-button';
import ToolbarGroupContainer from './toolbar-group-container';
import ToolbarGroupCollapsed from './toolbar-group-collapsed';
import ToolbarContext from '../toolbar-context';
import { CONTEXT_SYSTEM_VALUE } from '../constants';

/**
* Renders a collapsible group of controls
Expand Down Expand Up @@ -81,33 +83,37 @@ function ToolbarGroup( {

if ( isCollapsed ) {
return (
<ToolbarGroupCollapsed
label={ title }
controls={ controlSets }
className={ finalClassName }
children={ children }
{ ...props }
/>
<ContextSystemProvider value={ CONTEXT_SYSTEM_VALUE }>
<ToolbarGroupCollapsed
label={ title }
controls={ controlSets }
className={ finalClassName }
children={ children }
{ ...props }
/>
</ContextSystemProvider>
);
}

return (
<ToolbarGroupContainer className={ finalClassName } { ...props }>
{ controlSets?.flatMap( ( controlSet, indexOfSet ) =>
controlSet.map( ( control, indexOfControl ) => (
<ToolbarButton
key={ [ indexOfSet, indexOfControl ].join() }
containerClassName={
indexOfSet > 0 && indexOfControl === 0
? 'has-left-divider'
: null
}
{ ...control }
/>
) )
) }
{ children }
</ToolbarGroupContainer>
<ContextSystemProvider value={ CONTEXT_SYSTEM_VALUE }>
<ToolbarGroupContainer className={ finalClassName } { ...props }>
{ controlSets?.flatMap( ( controlSet, indexOfSet ) =>
controlSet.map( ( control, indexOfControl ) => (
<ToolbarButton
key={ [ indexOfSet, indexOfControl ].join() }
containerClassName={
indexOfSet > 0 && indexOfControl === 0
? 'has-left-divider'
: null
}
{ ...control }
/>
) )
) }
{ children }
</ToolbarGroupContainer>
</ContextSystemProvider>
);
}

Expand Down
18 changes: 11 additions & 7 deletions packages/components/src/toolbar/toolbar-item/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ import warning from '@wordpress/warning';
/**
* Internal dependencies
*/
import { ContextSystemProvider } from '../../ui/context';
import ToolbarContext from '../toolbar-context';
import { CONTEXT_SYSTEM_VALUE } from '../constants';

function ToolbarItem(
{
Expand Down Expand Up @@ -46,13 +48,15 @@ function ToolbarItem(
}

return (
<BaseToolbarItem
{ ...accessibleToolbarState }
{ ...allProps }
as={ Component }
>
{ children }
</BaseToolbarItem>
<ContextSystemProvider value={ CONTEXT_SYSTEM_VALUE }>
<BaseToolbarItem
{ ...accessibleToolbarState }
{ ...allProps }
as={ Component }
>
{ children }
</BaseToolbarItem>
</ContextSystemProvider>
);
}

Expand Down
9 changes: 1 addition & 8 deletions packages/components/src/toolbar/toolbar/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,7 @@ import {
WordPressComponentProps,
ContextSystemProvider,
} from '../../ui/context';

// TODO: swap the legacy `DropdownMenu` with the new version of the component
// once it's stable
const CONTEXT_SYSTEM_VALUE = {
DropdownMenu: {
variant: 'toolbar',
},
};
import { CONTEXT_SYSTEM_VALUE } from '../constants';

function UnforwardedToolbar(
{
Expand Down