register-bulk-action.mdx 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. ---
  2. title: "RegisterBulkAction"
  3. generated: true
  4. ---
  5. <GenerationInfo sourceFile="packages/admin-ui/src/lib/core/src/extension/register-bulk-action.ts" sourceLine="52" packageName="@vendure/admin-ui" since="1.8.0" />
  6. Registers a custom [BulkAction](/reference/admin-ui-api/bulk-actions/bulk-action#bulkaction) which can be invoked from the bulk action menu
  7. of any supported list view.
  8. This allows you to provide custom functionality that can operate on any of the selected
  9. items in the list view.
  10. In this example, imagine we have an integration with a 3rd-party text translation service. This
  11. bulk action allows us to select multiple products from the product list view, and send them for
  12. translation via a custom service which integrates with the translation service's API.
  13. *Example*
  14. ```ts title="providers.ts"
  15. import { ModalService, registerBulkAction, SharedModule } from '@vendure/admin-ui/core';
  16. import { ProductDataTranslationService } from './product-data-translation.service';
  17. export default [
  18. ProductDataTranslationService,
  19. registerBulkAction({
  20. location: 'product-list',
  21. label: 'Send to translation service',
  22. icon: 'language',
  23. onClick: ({ injector, selection }) => {
  24. const modalService = injector.get(ModalService);
  25. const translationService = injector.get(ProductDataTranslationService);
  26. modalService
  27. .dialog({
  28. title: `Send ${selection.length} products for translation?`,
  29. buttons: [
  30. { type: 'secondary', label: 'cancel' },
  31. { type: 'primary', label: 'send', returnValue: true },
  32. ],
  33. })
  34. .subscribe(response => {
  35. if (response) {
  36. translationService.sendForTranslation(selection.map(item => item.productId));
  37. }
  38. });
  39. },
  40. }),
  41. ];
  42. ```
  43. ```ts title="Signature"
  44. function registerBulkAction(bulkAction: BulkAction): void
  45. ```
  46. Parameters
  47. ### bulkAction
  48. <MemberInfo kind="parameter" type={`<a href='/reference/admin-ui-api/bulk-actions/bulk-action#bulkaction'>BulkAction</a>`} />