diff --git a/apps/meteor/client/views/admin/subscription/components/FeatureUsageCard.tsx b/apps/meteor/client/views/admin/subscription/components/FeatureUsageCard.tsx
index 3e736062bd7d..a7a62abc18e9 100644
--- a/apps/meteor/client/views/admin/subscription/components/FeatureUsageCard.tsx
+++ b/apps/meteor/client/views/admin/subscription/components/FeatureUsageCard.tsx
@@ -11,7 +11,7 @@ type FeatureUsageCardProps = {
export type CardProps = {
title: string;
- infoText?: string;
+ infoText?: string | ReactNode;
upgradeButton?: ReactNode;
};
diff --git a/apps/meteor/client/views/admin/subscription/components/InfoTextIconModal.tsx b/apps/meteor/client/views/admin/subscription/components/InfoTextIconModal.tsx
index 9316949dcb66..4f7c186f4915 100644
--- a/apps/meteor/client/views/admin/subscription/components/InfoTextIconModal.tsx
+++ b/apps/meteor/client/views/admin/subscription/components/InfoTextIconModal.tsx
@@ -1,6 +1,6 @@
import { IconButton } from '@rocket.chat/fuselage';
import { useSetModal } from '@rocket.chat/ui-contexts';
-import type { ReactElement } from 'react';
+import type { ReactElement, ReactNode } from 'react';
import React, { memo } from 'react';
import { useTranslation } from 'react-i18next';
@@ -8,7 +8,7 @@ import GenericModal from '../../../../components/GenericModal';
export type InfoTextIconModalProps = {
title: string;
- infoText: string;
+ infoText: string | ReactNode;
};
const InfoTextIconModal = ({ title, infoText }: InfoTextIconModalProps): ReactElement => {
diff --git a/apps/meteor/client/views/admin/subscription/components/cards/AppsUsageCard.tsx b/apps/meteor/client/views/admin/subscription/components/cards/AppsUsageCard.tsx
index dbd402ef2c7f..4bce3653838e 100644
--- a/apps/meteor/client/views/admin/subscription/components/cards/AppsUsageCard.tsx
+++ b/apps/meteor/client/views/admin/subscription/components/cards/AppsUsageCard.tsx
@@ -1,7 +1,7 @@
import { Box, ProgressBar, Skeleton } from '@rocket.chat/fuselage';
import type { ReactElement } from 'react';
import React from 'react';
-import { useTranslation } from 'react-i18next';
+import { Trans, useTranslation } from 'react-i18next';
import type { CardProps } from '../FeatureUsageCard';
import FeatureUsageCard from '../FeatureUsageCard';
@@ -25,7 +25,15 @@ const AppsUsageCard = ({ privateAppsLimit, marketplaceAppsLimit }: AppsUsageCard
const card: CardProps = {
title: t('Apps'),
- infoText: t('Apps_InfoText'),
+ infoText: (
+
+ Community workspaces can enable up to 5 marketplace apps. Private apps can only be enabled in
+
+ premium plans
+
+ .
+
+ ),
...((marketplaceAppsPercentage || 0) >= 80 && {
upgradeButton: (
diff --git a/packages/i18n/src/locales/en.i18n.json b/packages/i18n/src/locales/en.i18n.json
index ea7e31422cb1..272afe7e8bab 100644
--- a/packages/i18n/src/locales/en.i18n.json
+++ b/packages/i18n/src/locales/en.i18n.json
@@ -6467,7 +6467,7 @@
"MAC_InfoText": "(MAC) the number of unique omnichannel contacts engaged with during the billing month.",
"CountMAC_InfoText": "(MAC) the number of unique omnichannel contacts engaged with during the calendar month.",
"ActiveSessions_InfoText": "Total concurrent connections. A single user can be connected multiple times. User presence service is disabled at 200 or more to prevent performance issues.",
- "Apps_InfoText": "Community allows up to 3 private apps and 5 marketplace apps to be enabled",
+ "Apps_InfoText": "Community workspaces can enable up to 5 marketplace apps. Private apps can only be enabled in <1>premium plans1>.",
"Remove_RocketChat_Watermark_InfoText": "Watermark is automatically removed when a paid license is active.",
"Remove_RocketChat_Watermark": "Remove Rocket.Chat watermark",
"High_scalabaility": "High scalabaility",