import React, { useState, useRef, useEffect } from 'react'; import { FaArrowRight } from 'react-icons/fa'; import { AiOutlineDelete } from 'react-icons/ai'; import { BsShareFill } from 'react-icons/bs'; import { usePromptOperations, Prompt } from '../../../../hooks/usePrompts'; import { useLanguage } from '../../../../contexts/LanguageContext'; import styles from './DashboardPromptSetItem.module.css'; interface DashboardPromptSetItemProps { prompt: Prompt; onDelete?: () => void; onRun: (prompt: Prompt) => void; } function DashboardPromptSetItem({ prompt, onDelete, onRun }: DashboardPromptSetItemProps) { const { t } = useLanguage(); const { handlePromptDelete, deletingPrompts, deleteError } = usePromptOperations(); const contentRef = useRef(null); const [showDeleteConfirm, setShowDeleteConfirm] = useState(false); const isDeleting = deletingPrompts.has(prompt.id); const handleDeleteClick = async () => { if (showDeleteConfirm) { const success = await handlePromptDelete(prompt.id); if (success && onDelete) { onDelete(); } setShowDeleteConfirm(false); } else { setShowDeleteConfirm(true); } }; const handleCancelDelete = () => { setShowDeleteConfirm(false); }; const handleRun = () => { onRun(prompt); }; const handleShare = () => { console.log('Sharing prompt:', prompt); }; return (

{prompt.name}

{prompt.createdAt && (

{t('promptset.created')}: {new Date(prompt.createdAt).toLocaleDateString('de-DE')}

)}

{prompt.content}

{deleteError && (
{t('promptset.delete_error')}: {deleteError}
)} {isDeleting && (
{t('promptset.deleting_message')}
)}
); } export default DashboardPromptSetItem;