import React, { useState } from 'react'; import { IconButton, Menu, MenuItem, ListItemIcon, ListItemText, Divider } from '@mui/material'; import { MoreVert as MoreVertIcon, Publish as PublishIcon, Edit as EditIcon, Image as ImageIcon, GetApp as ExportIcon, Delete as DeleteIcon } from '@mui/icons-material'; import { WordPressPublish } from './WordPressPublish'; interface ContentActionsMenuProps { contentId: string; contentTitle: string; imageGenerationStatus: 'pending' | 'generating' | 'complete' | 'failed'; wordpressStatus: 'draft' | 'publishing' | 'published' | 'failed'; onEdit?: () => void; onGenerateImage?: () => void; onExport?: () => void; onDelete?: () => void; onWordPressStatusChange?: (status: string) => void; } export const ContentActionsMenu: React.FC = ({ contentId, contentTitle, imageGenerationStatus, wordpressStatus, onEdit, onGenerateImage, onExport, onDelete, onWordPressStatusChange }) => { const [anchorEl, setAnchorEl] = useState(null); const [showWordPressDialog, setShowWordPressDialog] = useState(false); const open = Boolean(anchorEl); const handleClick = (event: React.MouseEvent) => { setAnchorEl(event.currentTarget); }; const handleClose = () => { setAnchorEl(null); }; const handlePublishClick = () => { setShowWordPressDialog(true); handleClose(); }; const handleMenuAction = (action: () => void) => { action(); handleClose(); }; // Check if WordPress publishing is available const canPublishToWordPress = imageGenerationStatus === 'complete' && wordpressStatus !== 'published' && wordpressStatus !== 'publishing'; return ( <> {/* WordPress Publishing - Only show if images are ready */} {canPublishToWordPress && ( <> Publish to WordPress )} {/* Edit Action */} {onEdit && ( handleMenuAction(onEdit)}> Edit )} {/* Generate Image Action */} {onGenerateImage && ( handleMenuAction(onGenerateImage)}> Generate Image Prompts )} {/* Export Action */} {onExport && ( handleMenuAction(onExport)}> Export )} {/* Delete Action */} {onDelete && ( <> handleMenuAction(onDelete)} sx={{ color: 'error.main' }}> Delete )} {/* WordPress Publish Dialog */} {showWordPressDialog && ( )} ); };