import React from 'react'; import DeleteIcon from '@mui/icons-material/Delete'; import ImageIcon from '@mui/icons-material/Image'; import ExpandMoreIcon from '@mui/icons-material/ExpandMore'; import ExpandLessIcon from '@mui/icons-material/ExpandLess'; import KeyboardDoubleArrowDownIcon from '@mui/icons-material/KeyboardDoubleArrowDown'; import KeyboardDoubleArrowUpIcon from '@mui/icons-material/KeyboardDoubleArrowUp'; import DragIndicatorIcon from '@mui/icons-material/DragIndicator'; interface Answer { id: string; text: string; image_url?: string; } interface PollAnswerEditorProps { answer: Answer; answerNumber: number; totalAnswers: number; answerIndex: number; onUpdate: (answer: Answer) => void; onDelete: () => void; onMove: (direction: 'up' | 'down') => void; canDelete: boolean; setModalConfig: (config: any) => void; closeModal: () => void; } const PollAnswerEditor: React.FC = ({ answer, answerNumber, totalAnswers, answerIndex, onUpdate, onDelete, onMove, canDelete, setModalConfig, closeModal }) => { const [collapsed, setCollapsed] = React.useState(false); const updateAnswer = (field: keyof Answer, value: any) => { onUpdate({ ...answer, [field]: value, }); }; const openMediaUploader = () => { if (typeof (window as any).wp !== 'undefined' && (window as any).wp.media) { const mediaUploader = (window as any).wp.media({ title: 'Select Image', button: { text: 'Use Image' }, multiple: false, library: { type: 'image' } }); mediaUploader.on('select', () => { const attachment = mediaUploader.state().get('selection').first().toJSON(); updateAnswer('image_url', attachment.url); }); mediaUploader.open(); } else { alert('WordPress media uploader is not available.'); } }; return (
Answer {answerNumber}
{canDelete && ( )}
{!collapsed && (
updateAnswer('text', e.target.value)} placeholder={`Answer ${answerNumber}`} />
{answer.image_url ? (
{`Answer
) : ( )}
)}
); }; export default PollAnswerEditor;