Skip to main content

ActionBarDropdownMenuItem

ActionBarDropdownMenuItem

A dropdown menu item in the ActionBar area at the top of one of the list or detail views.

Signature
interface ActionBarDropdownMenuItem {
id: string;
label: string;
locationId: ActionBarLocationId;
hasDivider?: boolean;
buttonState?: (context: ActionBarContext) => Observable<ActionBarButtonState | undefined>;
onClick?: (event: MouseEvent, context: ActionBarContext) => void;
routerLink?: RouterLinkDefinition;
icon?: string;
requiresPermission?: string | string[];
}

id

property
string

A unique identifier for the item.

label

property
string

The label to display for the item. This can also be a translation token, e.g. invoice-plugin.print-invoice.

locationId

The location in the UI where this menu item should be displayed.

hasDivider

property
boolean

Whether to render a divider above this item.

buttonState

property
(context: ActionBarContext) => Observable<ActionBarButtonState | undefined>

A function which returns an observable of the button state, allowing you to dynamically enable/disable or show/hide the button.

onClick

property
(event: MouseEvent, context: ActionBarContext) => void

icon

property
string

An optional icon to display with the item. The icon should be a valid shape name from the Clarity Icons set.

requiresPermission

property
string | string[]

Control the display of this item based on the user permissions. Note: if you attempt to pass a PermissionDefinition object, you will get a compilation error. Instead, pass the plain string version. For example, if the permission is defined as:

export const MyPermission = new PermissionDefinition('ProductReview');

then the generated permission strings will be:

  • CreateProductReview
  • ReadProductReview
  • UpdateProductReview
  • DeleteProductReview