import { useState } from 'react'; import PropTypes from 'prop-types'; import { Dialog } from 'primereact/dialog'; import { InputText } from 'primereact/inputtext'; import Button from '../../shared/components/_V2/Button'; import { useChatStore } from '../../state/stores/useChatStore'; const PromptBoxModal = ({ onSubmit }) => { const [promptMessage, setPromptMessage] = useState(''); const [latestMessage, setLatestMessage] = useState({ user: '', response: '' }); const [isModalOpen, setIsModalOpen] = useState(false); const { sendChatRequest } = useChatStore(); const handleFormSubmit = async (event) => { event.preventDefault(); if (promptMessage.trim()) { const requestData = { keywords: ['example', 'test'], data: promptMessage, }; setLatestMessage({ user: promptMessage, response: '' }); try { const result = await sendChatRequest('/chat/completions', requestData); const responseText = result.responseText || 'No response from server'; setLatestMessage({ user: promptMessage, response: responseText }); setIsModalOpen(true); } catch (error) { console.error('API request failed:', error); setLatestMessage({ user: promptMessage, response: 'Error communicating with server' }); setIsModalOpen(true); } onSubmit(requestData); setPromptMessage(''); } }; return (
setPromptMessage(e.target.value)} onKeyDown={(e) => { if (e.key === 'Enter') { handleFormSubmit(e); } }} className='flex-grow p-2 text-black rounded' placeholder='Enter your message...' />
); }; PromptBoxModal.propTypes = { onSubmit: PropTypes.func.isRequired, }; export default PromptBoxModal;