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;