import React, { useRef } from 'react'; import { ImageFile } from '@/components/ImageWizard/types'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Textarea } from '@/components/ui/textarea'; import { Trash2, ArrowUp, ArrowDown, Plus, Bookmark, Settings2, ChevronDown } from 'lucide-react'; import { T, translate } from '@/i18n'; import AddToCollectionModal from '@/components/AddToCollectionModal'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from "@/components/ui/accordion"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; interface PostComposerProps { images: ImageFile[]; setImages: React.Dispatch>; onRemoveImage: (id: string) => void; onFileUpload: (event: React.ChangeEvent) => void; dropZoneRef: React.RefObject; isDragging: boolean; onDragEnter: (e: React.DragEvent) => void; onDragOver: (e: React.DragEvent) => void; onDragLeave: (e: React.DragEvent) => void; onDrop: (e: React.DragEvent) => void; postTitle: string; setPostTitle: (value: string) => void; postDescription: string; setPostDescription: (value: string) => void; onPublish: () => void; onPublishToGallery?: () => void; onAppendToPost?: () => void; isPublishing: boolean; isEditing?: boolean; postId?: string; settings: any; setSettings: (settings: any) => void; } const ImageItem = ({ image, index, total, onUpdate, onRemove, onMove }: { image: ImageFile; index: number; total: number; onUpdate: (id: string, field: 'title' | 'description', value: string) => void; onRemove: (id: string) => void; onMove: (index: number, direction: 'up' | 'down') => void; }) => { return (
{/* Reorder Controls */}
{/* Thumbnail */}
{image.type === 'video' ? ( image.uploadStatus === 'ready' ? ( <> {image.title}
) : (
{image.uploadStatus === 'error' ? ( Upload Failed ) : ( <>
{image.uploadProgress}% )}
) ) : ( {image.title} )}
{/* Actions - Mobile */}
{/* Inputs */}
onUpdate(image.id, 'title', e.target.value)} className="h-9 w-full" placeholder="Image title..." />