diff --git a/frontend/projects/ui/src/app/modals/app-config/app-config.page.ts b/frontend/projects/ui/src/app/modals/app-config/app-config.page.ts index c61a80699..3e750ce1d 100644 --- a/frontend/projects/ui/src/app/modals/app-config/app-config.page.ts +++ b/frontend/projects/ui/src/app/modals/app-config/app-config.page.ts @@ -65,7 +65,9 @@ export class AppConfigPage { async ngOnInit() { try { - this.pkg = await getPackage(this.patch, this.pkgId) + const pkg = await getPackage(this.patch, this.pkgId) + if (!pkg) return + this.pkg = pkg if (!this.pkg.manifest.config) return diff --git a/frontend/projects/ui/src/app/pages/apps-routes/app-interfaces/app-interfaces.page.ts b/frontend/projects/ui/src/app/pages/apps-routes/app-interfaces/app-interfaces.page.ts index cfe993d41..20c480496 100644 --- a/frontend/projects/ui/src/app/pages/apps-routes/app-interfaces/app-interfaces.page.ts +++ b/frontend/projects/ui/src/app/pages/apps-routes/app-interfaces/app-interfaces.page.ts @@ -34,6 +34,8 @@ export class AppInterfacesPage { async ngOnInit() { const pkg = await getPackage(this.patch, this.pkgId) + if (!pkg) return + const interfaces = pkg.manifest.interfaces const uiKey = getUiInterfaceKey(interfaces) diff --git a/frontend/projects/ui/src/app/pages/server-routes/marketplaces/marketplaces.page.ts b/frontend/projects/ui/src/app/pages/server-routes/marketplaces/marketplaces.page.ts index 534edb9f2..271736115 100644 --- a/frontend/projects/ui/src/app/pages/server-routes/marketplaces/marketplaces.page.ts +++ b/frontend/projects/ui/src/app/pages/server-routes/marketplaces/marketplaces.page.ts @@ -117,7 +117,6 @@ export class MarketplacesPage { async presentAction(id: string | null) { // no need to view actions if is selected marketplace const marketplace = await getMarketplace(this.patch) - if (id === marketplace['selected-id']) return const buttons: ActionSheetButton[] = [ diff --git a/frontend/projects/ui/src/app/services/marketplace.service.ts b/frontend/projects/ui/src/app/services/marketplace.service.ts index e85c97706..e50fbab3c 100644 --- a/frontend/projects/ui/src/app/services/marketplace.service.ts +++ b/frontend/projects/ui/src/app/services/marketplace.service.ts @@ -37,11 +37,13 @@ export class MarketplaceService extends AbstractMarketplaceService { private readonly uiMarketplaceData$ = this.patch .watch$('ui', 'marketplace') .pipe( - filter(Boolean), - startWith({ - 'selected-id': null, - 'known-hosts': {}, - }), + map( + m => + m || { + 'selected-id': null, + 'known-hosts': {}, + }, + ), distinctUntilChanged( (prev, curr) => prev['selected-id'] === curr['selected-id'], ), diff --git a/frontend/projects/ui/src/app/util/get-marketplace.ts b/frontend/projects/ui/src/app/util/get-marketplace.ts index 7f2454a5b..05e6a05db 100644 --- a/frontend/projects/ui/src/app/util/get-marketplace.ts +++ b/frontend/projects/ui/src/app/util/get-marketplace.ts @@ -3,18 +3,20 @@ import { DataModel, UIMarketplaceData, } from 'src/app/services/patch-db/data-model' -import { filter, firstValueFrom, startWith } from 'rxjs' +import { firstValueFrom, map } from 'rxjs' export function getMarketplace( patch: PatchDB, ): Promise { return firstValueFrom( patch.watch$('ui', 'marketplace').pipe( - filter(Boolean), - startWith({ - 'selected-id': null, - 'known-hosts': {}, - }), + map( + m => + m || { + 'selected-id': null, + 'known-hosts': {}, + }, + ), ), ) } diff --git a/frontend/projects/ui/src/app/util/get-package-data.ts b/frontend/projects/ui/src/app/util/get-package-data.ts index 7542ce024..dc649d632 100644 --- a/frontend/projects/ui/src/app/util/get-package-data.ts +++ b/frontend/projects/ui/src/app/util/get-package-data.ts @@ -8,7 +8,7 @@ import { filter, firstValueFrom } from 'rxjs' export function getPackage( patch: PatchDB, id: string, -): Promise { +): Promise { return firstValueFrom(patch.watch$('package-data', id)) }