diff --git a/src/app/item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.spec.ts b/src/app/item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.spec.ts index 384e475c379..087866959cc 100644 --- a/src/app/item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.spec.ts +++ b/src/app/item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.spec.ts @@ -166,7 +166,7 @@ describe('EditRelationshipComponent', () => { comp.url = url; comp.fieldUpdate = fieldUpdate1; comp.editItem = item; - comp.relatedItem$ = observableOf(relatedItem); + comp.relatedItem$.next(relatedItem); fixture.detectChanges(); }); diff --git a/src/app/item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.ts b/src/app/item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.ts index 36df6a50f04..8341070537e 100644 --- a/src/app/item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.ts +++ b/src/app/item-page/edit-item-page/item-relationships/edit-relationship/edit-relationship.component.ts @@ -13,9 +13,9 @@ import { } from '@ng-bootstrap/ng-bootstrap'; import { TranslateModule } from '@ngx-translate/core'; import { + BehaviorSubject, combineLatest as observableCombineLatest, Observable, - of, } from 'rxjs'; import { filter, @@ -45,7 +45,6 @@ import { ListableObjectComponentLoaderComponent } from '../../../../shared/objec import { VirtualMetadataComponent } from '../../virtual-metadata/virtual-metadata.component'; @Component({ - // eslint-disable-next-line @angular-eslint/component-selector selector: 'ds-edit-relationship', styleUrls: ['./edit-relationship.component.scss'], templateUrl: './edit-relationship.component.html', @@ -95,7 +94,7 @@ export class EditRelationshipComponent implements OnChanges { /** * The related item of this relationship */ - relatedItem$: Observable; + relatedItem$: BehaviorSubject = new BehaviorSubject(null); /** * The view-mode we're currently on @@ -128,16 +127,19 @@ export class EditRelationshipComponent implements OnChanges { getRemoteDataPayload(), filter((item: Item) => hasValue(item) && isNotEmpty(item.uuid)), ); - this.relatedItem$ = observableCombineLatest( + observableCombineLatest([ this.leftItem$, this.rightItem$, - ).pipe( + ]).pipe( map((items: Item[]) => items.find((item) => item.uuid !== this.editItem.uuid), ), - ); + take(1), + ).subscribe((relatedItem) => { + this.relatedItem$.next(relatedItem); + }); } else { - this.relatedItem$ = of(this.update.relatedItem); + this.relatedItem$.next(this.update.relatedItem); } } @@ -146,10 +148,10 @@ export class EditRelationshipComponent implements OnChanges { */ remove(): void { this.closeVirtualMetadataModal(); - observableCombineLatest( + observableCombineLatest([ this.leftItem$, this.rightItem$, - ).pipe( + ]).pipe( map((items: Item[]) => items.map((item) => this.objectUpdatesService .isSelectedVirtualMetadata(this.url, this.relationship.id, item.uuid)),