Browse Source

chore(admin-ui): Fix issue with breadcrumb observable

Michael Bromley 2 years ago
parent
commit
cbb0526e11

+ 2 - 10
packages/admin-ui/src/lib/catalog/src/components/product-variant-detail/product-variant-detail.component.ts

@@ -1,6 +1,5 @@
 import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
 import { FormBuilder, FormControl, FormGroup, UntypedFormGroup } from '@angular/forms';
-import { ActivatedRoute, Router } from '@angular/router';
 import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 import {
     Asset,
@@ -17,15 +16,13 @@ import {
     NotificationService,
     Permission,
     ProductOptionFragment,
-    ProductVariantFragment,
     ProductVariantUpdateMutationDocument,
-    ServerConfigService,
     TypedBaseDetailComponent,
     UpdateProductVariantInput,
 } from '@vendure/admin-ui/core';
 import { pick } from '@vendure/common/lib/pick';
 import { unique } from '@vendure/common/lib/unique';
-import { combineLatest, concat, EMPTY, Observable } from 'rxjs';
+import { combineLatest, concat, Observable } from 'rxjs';
 import {
     distinctUntilChanged,
     map,
@@ -35,11 +32,9 @@ import {
     switchMap,
     switchMapTo,
     take,
-    tap,
 } from 'rxjs/operators';
 import { ProductDetailService } from '../../providers/product-detail/product-detail.service';
 import { ApplyFacetDialogComponent } from '../apply-facet-dialog/apply-facet-dialog.component';
-import { UpdateProductOptionDialogComponent } from '../update-product-option-dialog/update-product-option-dialog.component';
 
 interface SelectedAssets {
     assets?: Asset[];
@@ -112,9 +107,6 @@ export class ProductVariantDetailComponent
     facetValues$: Observable<NonNullable<GetProductVariantDetailQuery['productVariant']>['facetValues']>;
 
     constructor(
-        route: ActivatedRoute,
-        router: Router,
-        serverConfigService: ServerConfigService,
         private productDetailService: ProductDetailService,
         private formBuilder: FormBuilder,
         private modalService: ModalService,
@@ -122,7 +114,7 @@ export class ProductVariantDetailComponent
         protected dataService: DataService,
         private changeDetector: ChangeDetectorRef,
     ) {
-        super(route, router, serverConfigService, dataService);
+        super();
     }
 
     ngOnInit() {

+ 2 - 10
packages/admin-ui/src/lib/core/src/common/base-detail.component.ts

@@ -176,12 +176,7 @@ export abstract class TypedBaseDetailComponent<
     protected result$: Observable<ResultOf<T>>;
     protected entity: ResultOf<T>[Field];
 
-    protected constructor(
-        route?: ActivatedRoute,
-        router?: Router,
-        serverConfigService?: ServerConfigService,
-        dataService?: DataService,
-    ) {
+    protected constructor() {
         super(inject(ActivatedRoute), inject(Router), inject(ServerConfigService), inject(DataService));
     }
 
@@ -241,10 +236,7 @@ export function detailComponentWithResolver<
                 .query(config.query, { id })
                 .stream$.pipe(takeUntil(navigateAway$), shareReplay(1));
             const entity$ = result$.pipe(map(result => result[config.entityKey]));
-            const entityStream$ = entity$.pipe(
-                switchMap(raw => entity$),
-                filter(notNullOrUndefined),
-            );
+            const entityStream$ = entity$.pipe(filter(notNullOrUndefined));
             return result$.pipe(
                 map(result => ({
                     entity: entityStream$,

+ 2 - 2
packages/admin-ui/src/lib/core/src/providers/alerts/alerts.service.ts

@@ -1,6 +1,6 @@
 import { Injectable } from '@angular/core';
 import { notNullOrUndefined } from '@vendure/common/lib/shared-utils';
-import { BehaviorSubject, combineLatest, interval, Observable, of, Subject, switchMap } from 'rxjs';
+import { BehaviorSubject, combineLatest, interval, isObservable, Observable, Subject, switchMap } from 'rxjs';
 import { map, mapTo, startWith, take } from 'rxjs/operators';
 
 export interface AlertConfig<T = any> {
@@ -57,7 +57,7 @@ export class Alert<T> {
         const result = this.config.check();
         if (result instanceof Promise) {
             result.then(data => this.data$.next(data));
-        } else if (result instanceof Observable) {
+        } else if (isObservable(result)) {
             result.pipe(take(1)).subscribe(data => this.data$.next(data));
         } else {
             this.data$.next(result);

+ 7 - 5
packages/admin-ui/src/lib/core/src/providers/breadcrumb/breadcrumb.service.ts

@@ -1,7 +1,13 @@
 import { Injectable, OnDestroy } from '@angular/core';
 import { ActivatedRoute, Data, NavigationEnd, Params, PRIMARY_OUTLET, Router } from '@angular/router';
 import { flatten } from 'lodash';
-import { combineLatest as observableCombineLatest, Observable, of as observableOf, Subject } from 'rxjs';
+import {
+    combineLatest as observableCombineLatest,
+    isObservable,
+    Observable,
+    of as observableOf,
+    Subject,
+} from 'rxjs';
 import { filter, map, shareReplay, startWith, switchMap, takeUntil } from 'rxjs/operators';
 import { DataService } from '../../data/providers/data.service';
 
@@ -135,10 +141,6 @@ function isBreadcrumbFunction(value: BreadcrumbDefinition): value is BreadcrumbF
     return typeof value === 'function';
 }
 
-function isObservable(value: BreadcrumbDefinition): value is Observable<BreadcrumbValue> {
-    return value instanceof Observable;
-}
-
 function isBreadcrumbLabelLinkPair(value: BreadcrumbValue): value is BreadcrumbLabelLinkPair {
     return value.hasOwnProperty('label') && value.hasOwnProperty('link');
 }

+ 1 - 6
packages/admin-ui/src/lib/customer/src/components/customer-detail/customer-detail.component.ts

@@ -1,6 +1,5 @@
 import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
 import { FormBuilder, UntypedFormArray, UntypedFormControl, Validators } from '@angular/forms';
-import { ActivatedRoute, Router } from '@angular/router';
 import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 import {
     CreateAddressInput,
@@ -17,7 +16,6 @@ import {
     GetCustomerHistoryQuery,
     ModalService,
     NotificationService,
-    ServerConfigService,
     SortOrder,
     TimelineHistoryEntry,
     TypedBaseDetailComponent,
@@ -112,16 +110,13 @@ export class CustomerDetailComponent
     private orderListUpdates$ = new Subject<CustomerWithOrders>();
 
     constructor(
-        route: ActivatedRoute,
-        router: Router,
-        serverConfigService: ServerConfigService,
         private changeDetector: ChangeDetectorRef,
         private formBuilder: FormBuilder,
         protected dataService: DataService,
         private modalService: ModalService,
         private notificationService: NotificationService,
     ) {
-        super(route, router, serverConfigService, dataService);
+        super();
     }
 
     ngOnInit() {

+ 1 - 6
packages/admin-ui/src/lib/customer/src/components/customer-group-detail/customer-group-detail.component.ts

@@ -1,6 +1,5 @@
 import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
 import { FormBuilder, UntypedFormGroup } from '@angular/forms';
-import { ActivatedRoute, Router } from '@angular/router';
 import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 import { ResultOf } from '@graphql-typed-document-node/core';
 import {
@@ -8,7 +7,6 @@ import {
     GetCustomerGroupDetailDocument,
     ModalService,
     NotificationService,
-    ServerConfigService,
     TypedBaseDetailComponent,
 } from '@vendure/admin-ui/core';
 import { gql } from 'apollo-angular';
@@ -46,15 +44,12 @@ export class CustomerGroupDetailComponent
     });
 
     constructor(
-        route: ActivatedRoute,
-        router: Router,
-        serverConfigService: ServerConfigService,
         private formBuilder: FormBuilder,
         protected dataService: DataService,
         private modalService: ModalService,
         private notificationService: NotificationService,
     ) {
-        super(route, router, serverConfigService, dataService);
+        super();
     }
 
     ngOnInit() {

+ 1 - 6
packages/admin-ui/src/lib/marketing/src/components/promotion-detail/promotion-detail.component.ts

@@ -1,6 +1,5 @@
 import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
 import { FormBuilder, UntypedFormArray, UntypedFormGroup, Validators } from '@angular/forms';
-import { ActivatedRoute, Router } from '@angular/router';
 import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 import {
     ConfigurableOperation,
@@ -18,7 +17,6 @@ import {
     NotificationService,
     PROMOTION_FRAGMENT,
     PromotionFragment,
-    ServerConfigService,
     TypedBaseDetailComponent,
     UpdatePromotionInput,
 } from '@vendure/admin-ui/core';
@@ -67,15 +65,12 @@ export class PromotionDetailComponent
     private allActions: ConfigurableOperationDefinition[] = [];
 
     constructor(
-        router: Router,
-        route: ActivatedRoute,
-        serverConfigService: ServerConfigService,
         private changeDetector: ChangeDetectorRef,
         protected dataService: DataService,
         private formBuilder: FormBuilder,
         private notificationService: NotificationService,
     ) {
-        super(route, router, serverConfigService, dataService);
+        super();
         this.customFields = this.getCustomFieldConfig('Promotion');
     }
 

+ 2 - 8
packages/admin-ui/src/lib/order/src/components/order-detail/order-detail.component.ts

@@ -1,6 +1,5 @@
 import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
-import { FormBuilder, FormGroup, UntypedFormGroup } from '@angular/forms';
-import { ActivatedRoute, Router } from '@angular/router';
+import { FormBuilder, FormGroup } from '@angular/forms';
 import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 import {
     DataService,
@@ -10,12 +9,10 @@ import {
     GetOrderQuery,
     ModalService,
     NotificationService,
-    Order,
     ORDER_DETAIL_FRAGMENT,
     OrderDetailFragment,
     OrderDetailQueryDocument,
     Refund,
-    ServerConfigService,
     SortOrder,
     TimelineHistoryEntry,
     TypedBaseDetailComponent,
@@ -79,9 +76,6 @@ export class OrderDetailComponent
     ];
 
     constructor(
-        router: Router,
-        route: ActivatedRoute,
-        serverConfigService: ServerConfigService,
         private changeDetector: ChangeDetectorRef,
         protected dataService: DataService,
         private notificationService: NotificationService,
@@ -89,7 +83,7 @@ export class OrderDetailComponent
         private orderTransitionService: OrderTransitionService,
         private formBuilder: FormBuilder,
     ) {
-        super(route, router, serverConfigService, dataService);
+        super();
     }
 
     ngOnInit() {

+ 2 - 14
packages/admin-ui/src/lib/settings/src/components/seller-detail/seller-detail.component.ts

@@ -1,27 +1,18 @@
 import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';
-import { FormBuilder, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';
-import { ActivatedRoute, Router } from '@angular/router';
+import { FormBuilder, Validators } from '@angular/forms';
 import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
 import {
-    BaseDetailComponent,
     CreateSellerInput,
-    CurrencyCode,
-    CustomFieldConfig,
     DataService,
     GetSellerDetailDocument,
-    GetZoneListQuery,
-    ItemOf,
     LanguageCode,
     NotificationService,
     Permission,
-    SELLER_FRAGMENT,
     SellerFragment,
-    ServerConfigService,
     TypedBaseDetailComponent,
     UpdateSellerInput,
 } from '@vendure/admin-ui/core';
 import { gql } from 'apollo-angular';
-import { Observable } from 'rxjs';
 import { mergeMap, take } from 'rxjs/operators';
 
 export const GET_SELLER_DETAIL = gql`
@@ -58,15 +49,12 @@ export class SellerDetailComponent
     readonly updatePermission = [Permission.SuperAdmin, Permission.UpdateSeller, Permission.CreateSeller];
 
     constructor(
-        router: Router,
-        route: ActivatedRoute,
-        protected serverConfigService: ServerConfigService,
         private changeDetector: ChangeDetectorRef,
         protected dataService: DataService,
         private formBuilder: FormBuilder,
         private notificationService: NotificationService,
     ) {
-        super(route, router, serverConfigService, dataService);
+        super();
     }
 
     ngOnInit() {