import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import conversationService from '../api/services/conversationService'; import Exit from '../assets/exit.svg'; import Spinner from '../assets/spinner.svg'; export const ShareConversationModal = ({ close, conversationId, }: { close: () => void; conversationId: string; }) => { const [identifier, setIdentifier] = useState(null); const [isCopied, setIsCopied] = useState(false); type StatusType = 'loading' | 'idle' | 'fetched' | 'failed'; const [status, setStatus] = useState('idle'); const { t } = useTranslation(); const domain = window.location.origin; const handleCopyKey = (url: string) => { navigator.clipboard.writeText(url); setIsCopied(true); }; const shareCoversationPublicly: (isPromptable: boolean) => void = ( isPromptable = false, ) => { setStatus('loading'); conversationService .shareConversation(isPromptable, { conversation_id: conversationId }) .then((res) => { console.log(res.status); return res.json(); }) .then((data) => { if (data.success && data.identifier) { setIdentifier(data.identifier); setStatus('fetched'); } else setStatus('failed'); }) .catch((err) => setStatus('failed')); }; return (

{t('modals.shareConv.label')}

{t('modals.shareConv.note')}

{`${domain}/share/${ identifier ?? '....' }`} {status === 'fetched' ? ( ) : ( )}
); };