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
property
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'],
}),