) => {
+ this.objectUpdatesService.initialize(this.url, relationshipPaginatedList.page, new Date());
}),
);
@@ -533,10 +532,24 @@ export class EditRelationshipListComponent implements OnInit, OnDestroy {
this.relationshipService.isLeftItem(relationship, this.item).pipe(
// emit an array containing both the relationship and whether it's the left item,
// as we'll need both
- map((isLeftItem: boolean) => [relationship, isLeftItem]),
+ switchMap((isLeftItem: boolean) => {
+ if (isLeftItem) {
+ return relationship.rightItem.pipe(
+ getFirstCompletedRemoteData(),
+ getRemoteDataPayload(),
+ map((relatedItem: Item) => [relationship, isLeftItem, relatedItem]),
+ );
+ } else {
+ return relationship.leftItem.pipe(
+ getFirstCompletedRemoteData(),
+ getRemoteDataPayload(),
+ map((relatedItem: Item) => [relationship, isLeftItem, relatedItem]),
+ );
+ }
+ }),
),
),
- map(([relationship, isLeftItem]: [Relationship, boolean]) => {
+ map(([relationship, isLeftItem, relatedItem]: [Relationship, boolean, Item]) => {
// turn it into a RelationshipIdentifiable, an
const nameVariant =
isLeftItem ? relationship.rightwardValue : relationship.leftwardValue;
@@ -546,6 +559,7 @@ export class EditRelationshipListComponent implements OnInit, OnDestroy {
relationship,
originalIsLeft: isLeftItem,
originalItem: this.item,
+ relatedItem: relatedItem,
nameVariant,
} as RelationshipIdentifiable;
}),
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 97cfb7a16b..f79d0ee0d1 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
@@ -131,9 +131,7 @@ export class EditRelationshipComponent implements OnChanges {
this.leftItem$,
this.rightItem$,
]).pipe(
- map((items: Item[]) =>
- items.find((item) => item.uuid !== this.editItem.uuid),
- ),
+ map(([leftItem, rightItem]: [Item, Item]) => leftItem.uuid === this.editItem.uuid ? rightItem : leftItem),
take(1),
).subscribe((relatedItem) => {
this.relatedItem$.next(relatedItem);
diff --git a/src/app/item-page/edit-item-page/item-relationships/item-relationships.component.html b/src/app/item-page/edit-item-page/item-relationships/item-relationships.component.html
index 53eb412a8f..4c8ea49f99 100644
--- a/src/app/item-page/edit-item-page/item-relationships/item-relationships.component.html
+++ b/src/app/item-page/edit-item-page/item-relationships/item-relationships.component.html
@@ -5,13 +5,13 @@