Skip to main content

ActionBarContext

ActionBarContext

Providers & data available to the onClick & buttonState functions of an ActionBarItem, ActionBarDropdownMenuItem or NavMenuItem.

Signature
interface ActionBarContext {
route: ActivatedRoute;
injector: Injector;
dataService: DataService;
notificationService: NotificationService;
entity$: Observable<Record<string, any> | undefined>;
}

route

property
ActivatedRoute

The router's ActivatedRoute object for the current route. This object contains information about the route, its parameters, and additional data associated with the route.

injector

property

The Angular Injector which can be used to get instances of services and other providers available in the application.

dataService

property

The DataService, which provides methods for querying the server-side data.

notificationService

The NotificationService, which provides methods for displaying notifications to the user.

entity$

property
v2.2.0
Observable<Record<string, any> | undefined>

An observable of the current entity in a detail view. In a list view the observable will not emit any values.

Example

addActionBarDropdownMenuItem({
id: 'print-invoice',
locationId: 'order-detail',
label: 'Print Invoice',
icon: 'printer',
buttonState: context => {
return context.entity$.pipe(
map((order) => {
return order?.state === 'PaymentSettled'
? { disabled: false, visible: true }
: { disabled: true, visible: true };
}),
);
},
requiresPermission: ['UpdateOrder'],
}),