providers.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import {
  2. addNavMenuItem,
  3. registerDashboardWidget,
  4. registerFormInputComponent,
  5. registerPageTab,
  6. setDashboardWidgetLayout,
  7. } from '@vendure/admin-ui/core';
  8. import { RelationReviewInputComponent } from './components/featured-review-selector/featured-review-selector.component';
  9. import { ProductReviewsListComponent } from './components/product-reviews-list/product-reviews-list.component';
  10. import { ReviewCountLinkComponent } from './components/review-count-link/review-count-link.component';
  11. import { StarRatingComponent } from './components/star-rating/star-rating.component';
  12. export default [
  13. registerFormInputComponent('review-count-link', ReviewCountLinkComponent),
  14. registerFormInputComponent('star-rating-form-input', StarRatingComponent),
  15. registerFormInputComponent('review-selector-form-input', RelationReviewInputComponent),
  16. addNavMenuItem(
  17. {
  18. id: 'reviews',
  19. label: 'Product reviews',
  20. routerLink: ['/extensions/product-reviews'],
  21. icon: 'star',
  22. },
  23. 'marketing',
  24. ),
  25. registerDashboardWidget('reviews', {
  26. title: 'Latest reviews',
  27. supportedWidths: [4, 6, 8, 12],
  28. loadComponent: () => import('./widgets/reviews-widget/reviews-widget.component').then(m => m.default),
  29. }),
  30. setDashboardWidgetLayout([
  31. { id: 'metrics', width: 12 },
  32. { id: 'orderSummary', width: 6 },
  33. { id: 'reviews', width: 6 },
  34. { id: 'latestOrders', width: 12 },
  35. ]),
  36. registerPageTab({
  37. location: 'product-detail',
  38. route: 'reviews',
  39. tab: 'Reviews',
  40. tabIcon: 'star',
  41. component: ProductReviewsListComponent,
  42. }),
  43. ];