@wordpress/components
Version:
UI components for WordPress.
78 lines (50 loc) • 2.25 kB
Markdown
# ToolsPanelItem
<div class="callout callout-alert">
This feature is still experimental. “Experimental” means this is an early
implementation subject to drastic and breaking changes.
</div>
<br />
This component acts as a wrapper and controls the display of items to be contained
within a ToolsPanel. An item is displayed if it is flagged as a default control
or the corresponding panel menu item, provided via context, is toggled on for
this item.
## Usage
See [`tools-panel/README.md#usage`](/packages/components/src/tools-panel/tools-panel/)
for how to use `ToolsPanelItem`.
## Props
### `hasValue`: `() => boolean`
This is called when building the `ToolsPanel` menu to determine the item's
initial checked state.
- Required: Yes
### `isShownByDefault`: `boolean`
This prop identifies the current item as being displayed by default. This means
it will show regardless of whether it has a value set or is toggled on in the
panel's menu.
- Required: No
- Default: `false`
### `label`: `string`
The supplied label is dual purpose.
It is used as:
1. the human-readable label for the panel's dropdown menu
2. a key to locate the corresponding item in the panel's menu context to
determine if the panel item should be displayed.
A panel item's `label` should be unique among all items within a single panel.
- Required: Yes
### `onDeselect`: `() => void`
Called when this item is deselected in the `ToolsPanel` menu. This is normally
used to reset the panel item control's value.
- Required: No
### `onSelect`: `() => void`
A callback to take action when this item is selected in the `ToolsPanel` menu.
- Required: No
### `panelId`: `string | null`
Panel items will ensure they are only registering with their intended panel by
comparing the `panelId` props set on both the item and the panel itself, or if the `panelId` is explicitly `null`. This
allows items to be injected from a shared source.
- Required: No
### `resetAllFilter`: `( attributes?: any ) => any`
A `ToolsPanel` will collect each item's `resetAllFilter` and pass an array of
these functions through to the panel's `resetAll` callback. They can then be
iterated over to perform additional tasks.
- Required: No
- Default: `() => {}`