From ae88f7d181a3dd4a4ff333e6a87c06bc5737cbf8 Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Thu, 12 Sep 2024 11:51:19 -0400 Subject: [PATCH 1/5] add types --- .../src/app/services/marketplace.service.ts | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/web/projects/ui/src/app/services/marketplace.service.ts b/web/projects/ui/src/app/services/marketplace.service.ts index bc2dcc7ab..4c8ab98a6 100644 --- a/web/projects/ui/src/app/services/marketplace.service.ts +++ b/web/projects/ui/src/app/services/marketplace.service.ts @@ -42,7 +42,7 @@ export class MarketplaceService implements AbstractMarketplaceService { private readonly knownHosts$: Observable = this.patch .watch$('ui', 'marketplace', 'knownHosts') .pipe( - map(hosts => { + map((hosts: { [url: string]: UIStore }) => { const { start9, community } = this.config.marketplace let arr = [ toStoreIdentity(start9, hosts[start9]), @@ -81,31 +81,35 @@ export class MarketplaceService implements AbstractMarketplaceService { shareReplay({ bufferSize: 1, refCount: true }), ) - private readonly marketplace$ = this.knownHosts$.pipe( - startWith([]), - pairwise(), - mergeMap(([prev, curr]) => - curr.filter(c => !prev.find(p => sameUrl(c.url, p.url))), - ), - mergeMap(({ url, name }) => - this.fetchStore$(url).pipe( - tap(data => { - if (data?.info.name) this.updateStoreName(url, name, data.info.name) - }), - map(data => [url, data]), - startWith<[string, StoreData | null]>([url, null]), + private readonly marketplace$: Observable = + this.knownHosts$.pipe( + startWith([]), + pairwise(), + mergeMap(([prev, curr]) => + curr.filter(c => !prev.find(p => sameUrl(c.url, p.url))), ), - ), - scan<[string, StoreData | null], Record>( - (requests, [url, store]) => { - requests[url] = store + mergeMap(({ url, name }) => + this.fetchStore$(url).pipe( + tap(data => { + if (data?.info.name) this.updateStoreName(url, name, data.info.name) + }), + map(data => [ + url, + data, + ]), + startWith<[string, StoreData | null]>([url, null]), + ), + ), + scan<[string, StoreData | null], Record>( + (requests, [url, store]) => { + requests[url] = store - return requests - }, - {}, - ), - shareReplay({ bufferSize: 1, refCount: true }), - ) + return requests + }, + {}, + ), + shareReplay({ bufferSize: 1, refCount: true }), + ) private readonly filteredMarketplace$ = combineLatest([ this.clientStorageService.showDevTools$, From 21dd08544b3454f65675d49a4bc5a7a3787f8e4f Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Thu, 12 Sep 2024 11:55:10 -0400 Subject: [PATCH 2/5] update version to clear refresh alert --- web/projects/ui/src/app/services/api/mock-patch.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/projects/ui/src/app/services/api/mock-patch.ts b/web/projects/ui/src/app/services/api/mock-patch.ts index ba2966b7f..34804fbc6 100644 --- a/web/projects/ui/src/app/services/api/mock-patch.ts +++ b/web/projects/ui/src/app/services/api/mock-patch.ts @@ -1,6 +1,7 @@ import { DataModel } from 'src/app/services/patch-db/data-model' import { Mock } from './api.fixures' import { BUILT_IN_WIDGETS } from '../../pages/widgets/built-in/widgets' +const version = require('../../../../../../package.json').version export const mockPatchData: DataModel = { ui: { @@ -37,7 +38,7 @@ export const mockPatchData: DataModel = { arch: 'x86_64', onionAddress: 'myveryownspecialtoraddress', id: 'abcdefgh', - version: '0.3.6', + version, lastBackup: new Date(new Date().valueOf() - 604800001).toISOString(), lanAddress: 'https://adjective-noun.local', torAddress: 'https://myveryownspecialtoraddress.onion', From 27416efb6df06c44e22ccf668a6ccc01f80e969c Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Thu, 12 Sep 2024 11:55:54 -0400 Subject: [PATCH 3/5] only display alt implementations if no flavors --- .../marketplace-show/marketplace-show.page.ts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/web/projects/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.ts b/web/projects/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.ts index 018ddbb64..d2af27efc 100644 --- a/web/projects/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.ts +++ b/web/projects/ui/src/app/pages/marketplace-routes/marketplace-show/marketplace-show.page.ts @@ -51,15 +51,14 @@ export class MarketplaceShowPage { readonly flavors$ = this.route.queryParamMap.pipe( switchMap(paramMap => - this.marketplaceService - .getSelectedStore$() - .pipe( - map(s => - s.packages.filter( - p => p.id === this.pkgId && p.flavor !== paramMap.get('flavor'), - ), + this.marketplaceService.getSelectedStore$().pipe( + map(s => + s.packages.filter( + p => p.id === this.pkgId && p.flavor !== paramMap.get('flavor'), ), ), + filter(p => p.length > 0), + ), ), ) From dbbc42c5fdab7f729b6454f628206a0949483d20 Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Thu, 12 Sep 2024 17:03:01 -0400 Subject: [PATCH 4/5] update packages --- web/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/package-lock.json b/web/package-lock.json index ac1f77a6b..7ceeb4399 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "startos-ui", - "version": "0.3.6", + "version": "0.3.6-alpha.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "startos-ui", - "version": "0.3.6", + "version": "0.3.6-alpha.5", "license": "MIT", "dependencies": { "@angular/animations": "^14.1.0", @@ -116,7 +116,7 @@ }, "../sdk/dist": { "name": "@start9labs/start-sdk", - "version": "0.3.6-alpha5", + "version": "0.3.6-alpha8", "license": "MIT", "dependencies": { "@iarna/toml": "^2.2.5", From 47855dc78bc68856bce8caa52a8110bebaca75ee Mon Sep 17 00:00:00 2001 From: Lucy Cifferello <12953208+elvece@users.noreply.github.com> Date: Tue, 17 Sep 2024 14:46:09 -0400 Subject: [PATCH 5/5] remove explicit type --- web/projects/ui/src/app/services/marketplace.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/projects/ui/src/app/services/marketplace.service.ts b/web/projects/ui/src/app/services/marketplace.service.ts index 4c8ab98a6..a080f051d 100644 --- a/web/projects/ui/src/app/services/marketplace.service.ts +++ b/web/projects/ui/src/app/services/marketplace.service.ts @@ -42,7 +42,7 @@ export class MarketplaceService implements AbstractMarketplaceService { private readonly knownHosts$: Observable = this.patch .watch$('ui', 'marketplace', 'knownHosts') .pipe( - map((hosts: { [url: string]: UIStore }) => { + map(hosts => { const { start9, community } = this.config.marketplace let arr = [ toStoreIdentity(start9, hosts[start9]),