import { AI_LICENSE_MODULE } from '@rocket.chat/ai-search';
import { Box, Button, Callout, CardGrid, Tag } from '@rocket.chat/fuselage';
import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client';
import { useRouter, useSetting } from '@rocket.chat/ui-contexts';
import type { ReactElement, ReactNode } from 'react';
import { useTranslation } from 'react-i18next';
import AICenterCapabilityCard from './AICenterCapabilityCard';
import PageSkeleton from '../../../components/PageSkeleton';
import { useHasLicenseModule } from '../../../hooks/useHasLicenseModule';
const AICenterOverview = (): ReactElement => {
const { t } = useTranslation();
const router = useRouter();
const { data: hasAILicense, isPending } = useHasLicenseModule(AI_LICENSE_MODULE);
const intelligentSearchEnabled = useSetting('AI_Intelligent_Search_Enabled', false);
const mcpEnabled = useSetting('MCP_Enabled', false);
const searchSettingsHref = router.buildRoutePath({ name: 'admin-ai-center', params: { section: 'search' } });
const llmSettingsHref = router.buildRoutePath({ name: 'admin-ai-center', params: { section: 'llm-providers' } });
const mcpSettingsHref = router.buildRoutePath({ name: 'admin-ai-center', params: { section: 'mcp' } });
const subscriptionHref = router.buildRoutePath({ name: 'subscription' });
if (isPending) {
return ;
}
let aiSearchStatus: ReactNode;
let llmProviderStatus: ReactNode;
let mcpStatus: ReactNode;
if (hasAILicense === false) {
aiSearchStatus = {t('Locked')};
llmProviderStatus = {t('Locked')};
mcpStatus = {t('Locked')};
} else if (hasAILicense) {
aiSearchStatus = intelligentSearchEnabled ? {t('Enabled')} : {t('Disabled')};
llmProviderStatus = {t('Available')};
mcpStatus = mcpEnabled ? {t('Enabled')} : {t('Disabled')};
}
return (
{hasAILicense === false && (
{t('AI_Center_license_required_description')}
)}
{t('Capabilities')}
);
};
export default AICenterOverview;