import React, { type JSX, useCallback, useMemo } from 'react'; import { useAtomValue } from 'jotai'; import { useTranslation } from 'react-i18next'; import { NotAvailable } from '~/client/components/NotAvailable'; import { NotAvailableForGuest } from '~/client/components/NotAvailableForGuest'; import { useGrowiAppIdForGrowiCloud, useGrowiCloudUri } from '~/states/global'; import { aiEnabledAtom } from '~/states/server-configurations'; import { useAiAssistantSidebarActions } from '../../states'; import { useSWRxAiAssistants } from '../../stores/ai-assistant'; import styles from './OpenDefaultAiAssistantButton.module.scss'; const AiAssistantButton = ({ onClick, }: { onClick?: () => void; }): JSX.Element => ( ); const OpenDefaultAiAssistantButtonSubstance = (): JSX.Element => { const { t } = useTranslation(); const { data: aiAssistantData } = useSWRxAiAssistants(); const { openChat } = useAiAssistantSidebarActions(); const defaultAiAssistant = useMemo(() => { if (aiAssistantData == null) { return null; } const allAiAssistants = [ ...aiAssistantData.myAiAssistants, ...aiAssistantData.teamAiAssistants, ]; return allAiAssistants.find((aiAssistant) => aiAssistant.isDefault); }, [aiAssistantData]); const openDefaultAiAssistantButtonClickHandler = useCallback(() => { if (defaultAiAssistant == null) { return; } openChat(defaultAiAssistant); }, [defaultAiAssistant, openChat]); return ( ); }; const OpenDefaultAiAssistantButton = (): JSX.Element => { const isAiEnabled = useAtomValue(aiEnabledAtom); const { t } = useTranslation(); const growiCloudUri = useGrowiCloudUri(); const growiAppIdForGrowiCloud = useGrowiAppIdForGrowiCloud(); const isCloud = growiCloudUri != null && growiAppIdForGrowiCloud != null; if (!isAiEnabled) { if (!isCloud) return <>; return (

{t('default_ai_assistant.open_cloud_settings_to_enable')}

share {t('default_ai_assistant.to_cloud_settings')} } >
); } return ; }; export default OpenDefaultAiAssistantButton;