diff --git a/frontend/projects/ui/src/app/pages/apps-routes/app-show/components/app-show-menu/app-show-menu.component.html b/frontend/projects/ui/src/app/pages/apps-routes/app-show/components/app-show-menu/app-show-menu.component.html index d0537b481..0be9b2258 100644 --- a/frontend/projects/ui/src/app/pages/apps-routes/app-show/components/app-show-menu/app-show-menu.component.html +++ b/frontend/projects/ui/src/app/pages/apps-routes/app-show/components/app-show-menu/app-show-menu.component.html @@ -4,6 +4,7 @@ button detail (click)="button.action()" + [disabled]="button.disabled" > diff --git a/frontend/projects/ui/src/app/pages/apps-routes/app-show/pipes/to-buttons.pipe.ts b/frontend/projects/ui/src/app/pages/apps-routes/app-show/pipes/to-buttons.pipe.ts index 0646e9067..bc6af0b3d 100644 --- a/frontend/projects/ui/src/app/pages/apps-routes/app-show/pipes/to-buttons.pipe.ts +++ b/frontend/projects/ui/src/app/pages/apps-routes/app-show/pipes/to-buttons.pipe.ts @@ -13,6 +13,7 @@ export interface Button { description: string icon: string action: Function + disabled?: boolean } @Pipe({ @@ -86,13 +87,8 @@ export class ToButtonsPipe implements PipeTransform { icon: 'receipt-outline', }, // view in marketplace - { - action: () => - this.navCtrl.navigateForward([`marketplace/${pkg.manifest.id}`]), - title: 'Marketplace', - description: 'View service in marketplace', - icon: 'storefront-outline', - }, + this.viewInMarketplaceButton(pkg), + // donate { action: () => this.donate(pkg), title: 'Donate', @@ -116,6 +112,25 @@ export class ToButtonsPipe implements PipeTransform { await modal.present() } + private viewInMarketplaceButton(pkg: PackageDataEntry): Button { + return pkg.installed?.['marketplace-url'] + ? { + action: () => + this.navCtrl.navigateForward([`marketplace/${pkg.manifest.id}`]), + title: 'Marketplace', + description: 'View service in marketplace', + icon: 'storefront-outline', + } + : { + disabled: true, + action: () => {}, + title: 'Marketplace', + description: + 'This package has been side-loaded and is not available in the Start9 Marketplace', + icon: 'storefront-outline', + } + } + private async donate({ manifest }: PackageDataEntry): Promise { const url = manifest['donation-url'] if (url) {