import { lazy, Suspense, useState } from 'react'; import { __ } from '@wordpress/i18n'; import Tooltip from '@/components/Common/Tooltip'; import Icon from '@/utils/Icon'; import { useChatAvailability } from '@/hooks/useChatAvailability'; // Loaded on first open only: the modal pulls in react-markdown and its // remark/micromark stack, which would otherwise sit in the core bundle. const ChatAssistantModal = lazy( () => import( './ChatAssistantModal' ) ); const ChatAssistantButton = () => { const { abilitiesEnabled, disabledReason, isDisabled } = useChatAvailability(); const [ isOpen, setIsOpen ] = useState( false ); const [ hasOpened, setHasOpened ] = useState( false ); if ( ! abilitiesEnabled ) { return null; } const openChat = () => { if ( isDisabled ) { return; } setHasOpened( true ); setIsOpen( true ); }; return ( <> {hasOpened && ( setIsOpen( false )} /> )} ); }; export default ChatAssistantButton;