diff --git a/apps/meteor/client/views/admin/apps/AppDetailsHeader.tsx b/apps/meteor/client/views/admin/apps/AppDetailsHeader.tsx
index fbcb3c41c74f..5e7d522c5cfa 100644
--- a/apps/meteor/client/views/admin/apps/AppDetailsHeader.tsx
+++ b/apps/meteor/client/views/admin/apps/AppDetailsHeader.tsx
@@ -11,7 +11,7 @@ import { App } from './types';
const AppDetailsHeader = ({ app }: { app: App }): ReactElement => {
const t = useTranslation();
- const { iconFileData, name, author, version, iconFileContent, installed, modifiedAt, bundledIn, description } = app;
+ const { iconFileData, name, author, version, iconFileContent, installed, isSubscribed, modifiedAt, bundledIn, description } = app;
const lastUpdated = modifiedAt && formatDistanceStrict(new Date(modifiedAt), new Date(), { addSuffix: false });
return (
@@ -29,7 +29,7 @@ const AppDetailsHeader = ({ app }: { app: App }): ReactElement => {
- {installed && }
+ {(installed || isSubscribed) && }
diff --git a/apps/meteor/client/views/admin/apps/AppMenu.js b/apps/meteor/client/views/admin/apps/AppMenu.js
index ca1492a57386..7daf4505c9b5 100644
--- a/apps/meteor/client/views/admin/apps/AppMenu.js
+++ b/apps/meteor/client/views/admin/apps/AppMenu.js
@@ -124,39 +124,43 @@ function AppMenu({ app, ...props }) {
action: handleSubscription,
},
}),
- ...(isAppEnabled && {
- disable: {
+ ...(app.installed &&
+ isAppEnabled && {
+ disable: {
+ label: (
+
+
+ {t('Disable')}
+
+ ),
+ action: handleDisable,
+ },
+ }),
+ ...(app.installed &&
+ !isAppEnabled && {
+ enable: {
+ label: (
+
+
+ {t('Enable')}
+
+ ),
+ action: handleEnable,
+ },
+ }),
+ ...(app.installed && {
+ uninstall: {
label: (
-
-
- {t('Disable')}
+
+
+ {t('Uninstall')}
),
- action: handleDisable,
+ action: handleUninstall,
},
}),
- ...(!isAppEnabled && {
- enable: {
- label: (
-
-
- {t('Enable')}
-
- ),
- action: handleEnable,
- },
- }),
- uninstall: {
- label: (
-
-
- {t('Uninstall')}
-
- ),
- action: handleUninstall,
- },
}),
- [canAppBeSubscribed, t, handleSubscription, isAppEnabled, handleDisable, handleEnable, handleUninstall],
+ [canAppBeSubscribed, t, handleSubscription, app.installed, isAppEnabled, handleDisable, handleEnable, handleUninstall],
);
return ;
diff --git a/apps/meteor/client/views/admin/apps/AppRow.tsx b/apps/meteor/client/views/admin/apps/AppRow.tsx
index a3b975827c34..33fcfd4a33e7 100644
--- a/apps/meteor/client/views/admin/apps/AppRow.tsx
+++ b/apps/meteor/client/views/admin/apps/AppRow.tsx
@@ -94,8 +94,8 @@ const AppRow: FC = ({ medium, ...props }) => {
)}
-
- {installed && }
+
+ {installed && }
diff --git a/apps/meteor/client/views/admin/apps/MarketplaceRow.tsx b/apps/meteor/client/views/admin/apps/MarketplaceRow.tsx
index 73117cc2dc3b..7080723ce82e 100644
--- a/apps/meteor/client/views/admin/apps/MarketplaceRow.tsx
+++ b/apps/meteor/client/views/admin/apps/MarketplaceRow.tsx
@@ -27,6 +27,7 @@ const MarketplaceRow: FC = ({ medium, large, ...props }) =>
marketplaceVersion,
iconFileContent,
installed,
+ isSubscribed,
} = props;
const t = useTranslation();
@@ -103,8 +104,8 @@ const MarketplaceRow: FC = ({ medium, large, ...props }) =>
)}
-
- {installed && }
+
+ {(installed || isSubscribed) && }
diff --git a/packages/core-typings/src/Apps.ts b/packages/core-typings/src/Apps.ts
index 4623a8b64d61..23bc6d952e9b 100644
--- a/packages/core-typings/src/Apps.ts
+++ b/packages/core-typings/src/Apps.ts
@@ -49,6 +49,7 @@ export type App = {
iconFileContent: string;
installed?: boolean;
isEnterpriseOnly?: boolean;
+ isSubscribed: boolean;
bundledIn: {
bundleId: string;
bundleName: string;