import { useCallback } from 'react'; import { useDropzone } from 'react-dropzone'; import { StepWrapper } from '../../components/StepWrapper'; import { useWizardStore } from '../../store/wizardStore'; import { Upload, Plus, Trash2, ArrowLeft, ChevronRight } from 'lucide-react'; import clsx from 'clsx'; export default function PhotoUploadStep() { const { setStep, photos, existingImages, removePhoto, removeExistingImage, addPhoto } = useWizardStore(); const baseUrl = import.meta.env.VITE_BASE_URL; const onDrop = useCallback((acceptedFiles: File[]) => { acceptedFiles.forEach(file => addPhoto(file)); }, [addPhoto]); const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, accept: { 'image/*': [] }, maxFiles: 10 }); return (

Galería de
Imágenes

Gestiona las fotos de tu aviso. La primera será la portada.

{/* GRILLA DE FOTOS (EXISTENTES + NUEVAS) */} {(existingImages.length > 0 || photos.length > 0) && (
{/* Renderizado de Fotos Heredadas */} {existingImages.map((img, idx) => (
Original
{idx === 0 && (
Portada
)}
))} {/* Renderizado de Fotos Nuevas (Files) */} {photos.map((file, idx) => (
Nueva
{existingImages.length === 0 && idx === 0 && (
Portada
)}
))} {/* BOTÓN "AÑADIR MÁS" dentro de la grilla si ya hay fotos */}
Añadir más
)} {/* ÁREA DE CARGA INICIAL (Solo si está todo vacío) */} {existingImages.length === 0 && photos.length === 0 && (

Sube tus fotografías

Arrastra tus fotos aquí o haz clic para buscarlas. Soporta JPG, PNG y WebP.

)}
); }