InspectorDropdown
The T2 InspectorDropdown is a base component for displaying dropdowns in the
inspector panel. It's not a stand-alone component, but intended to be used by
other controls. It's similar to the native ToolbarDropdownMenu
component,
with the main difference that it's displayed in InspectorControls
and
not in BlockControls
.
It's used by LayoutDropdown
, HorizontalAlignDropdown
and VerticalAlignDropdown
.
allowing them to be used both in the Block Toolbar and in the Inspector Panel.
Each dropdown menu item is represented by a DropdownMenuOption
object, containing
a value
, an icon
and a title
.
Example
import { __ } from '@wordpress/i18n';
import { group, row, stack, grid } from '@wordpress/icons';
import { InspectorDropdown } from '@t2/editor';
const options = [
{ value: 'default', icon: group, title: __('Default', 't2') },
{ value: 'stack', icon: stack, title: __('Stack', 't2') },
{ value: 'row', icon: row, title: __('Row', 't2') },
{ value: 'grid', icon: grid, title: __('Grid', 't2') },
];
export function MyDropdown(props) {
const {label, value, onChange, required } = props;
return (
<InspectorDropdown
label={__('Layout', 't2')}
value={value || 'default'}
options={options}
onChange={(selection: string | undefined) => onChange(selection)}
required={true}
/>
);
}
Component properties
export type InspectorDropdownProps = {
/** The control label. */
label?: string;
/** The selected dropdown menu item. */
value?: string;
/** Callback returning the selected dropdown value. */
onChange: (value: string | undefined) => void;
/** An array of dropdown menu items. */
options: InspectorDropdownOption[];
/** Whether a valid string value is always returned (true) or not (false, default). */
required?: boolean;
};
Components based on InspectorDropdown
LayoutDropdown

HorizontalAlignDropdown

VerticalAlignDropdown
