From 53463077dffec75ab39185e4a1ba91c77a3f9d23 Mon Sep 17 00:00:00 2001 From: Lucy C <12953208+elvece@users.noreply.github.com> Date: Thu, 15 Sep 2022 13:30:49 -0600 Subject: [PATCH] Bugfix/marketplace add (#1805) * remove falsey check when getting marketplaces, as no alts could exist * filter boolean but start with object Co-authored-by: Matt Hill --- .../ui/src/app/services/marketplace.service.ts | 11 ++++++++--- frontend/projects/ui/src/app/util/get-marketplace.ts | 12 ++++++++++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/frontend/projects/ui/src/app/services/marketplace.service.ts b/frontend/projects/ui/src/app/services/marketplace.service.ts index bab591ea8..e85c97706 100644 --- a/frontend/projects/ui/src/app/services/marketplace.service.ts +++ b/frontend/projects/ui/src/app/services/marketplace.service.ts @@ -37,8 +37,13 @@ export class MarketplaceService extends AbstractMarketplaceService { private readonly uiMarketplaceData$ = this.patch .watch$('ui', 'marketplace') .pipe( + filter(Boolean), + startWith({ + 'selected-id': null, + 'known-hosts': {}, + }), distinctUntilChanged( - (prev, curr) => prev?.['selected-id'] === curr?.['selected-id'], + (prev, curr) => prev['selected-id'] === curr['selected-id'], ), shareReplay(1), ) @@ -280,8 +285,8 @@ export class MarketplaceService extends AbstractMarketplaceService { } } - private toMarketplace(marketplace?: UIMarketplaceData): Marketplace { - return marketplace?.['selected-id'] + private toMarketplace(marketplace: UIMarketplaceData): Marketplace { + return marketplace['selected-id'] ? marketplace['known-hosts'][marketplace['selected-id']] : this.config.marketplace } diff --git a/frontend/projects/ui/src/app/util/get-marketplace.ts b/frontend/projects/ui/src/app/util/get-marketplace.ts index 8209e5338..7f2454a5b 100644 --- a/frontend/projects/ui/src/app/util/get-marketplace.ts +++ b/frontend/projects/ui/src/app/util/get-marketplace.ts @@ -3,10 +3,18 @@ import { DataModel, UIMarketplaceData, } from 'src/app/services/patch-db/data-model' -import { filter, firstValueFrom } from 'rxjs' +import { filter, firstValueFrom, startWith } from 'rxjs' export function getMarketplace( patch: PatchDB, ): Promise { - return firstValueFrom(patch.watch$('ui', 'marketplace').pipe(filter(Boolean))) + return firstValueFrom( + patch.watch$('ui', 'marketplace').pipe( + filter(Boolean), + startWith({ + 'selected-id': null, + 'known-hosts': {}, + }), + ), + ) }