'use client'; import React, { useState, ChangeEvent, FormEvent } from 'react'; import IconTrashLines from '../icon/icon-trash-lines'; import axios from 'axios'; import { useRouter } from 'next/navigation'; interface FormErrors { [key: string]: string; } interface EditEventFormProps { eventId: string | null; } const CreateEventGalleryForm: React.FC = ({ eventId }) => { const router = useRouter(); const [selectedImages, setSelectedImages] = useState([]); const [previewUrls, setPreviewUrls] = useState([]); const [errors, setErrors] = useState({}); const handleFileChange = (e: ChangeEvent) => { const files = Array.from(e.target.files || []); const validImages: File[] = []; const previews: string[] = []; files.forEach((file) => { if (file.type.startsWith('image/')) { validImages.push(file); previews.push(URL.createObjectURL(file)); } }); setSelectedImages(prev => [...prev, ...validImages]); setPreviewUrls(prev => [...prev, ...previews]); }; const handleImageDelete = (index: number) => { setSelectedImages(prev => prev.filter((_, i) => i !== index)); setPreviewUrls(prev => prev.filter((_, i) => i !== index)); }; const validateForm = (): boolean => { const newErrors: FormErrors = {}; if (selectedImages.length === 0) { newErrors.images = 'Please upload at least one image'; } setErrors(newErrors); return Object.keys(newErrors).length === 0; }; const handleSubmit = async (e: FormEvent) => { e.preventDefault(); if (!validateForm()) return; try { const formData = new FormData(); selectedImages.forEach((file, index) => { formData.append(`files`, file); }); const uploadRes = await axios.post(`https://api.tamilculturewaterloo.org/api/upload/multiple`, formData) console.log("uploadres", uploadRes) const uploadedUrls = uploadRes?.data?.data?.map((image: any) => image?.fullUrl) || []; // Step 2: Prepare correct body for bulk save const body = { eventid: Number(eventId), // ensure number imageurl: uploadedUrls // API may expect 'imageurls' not 'imageurl' }; console.log("Sending body:", body); // Step 3: Call bulk API await axios.post( `https://api.tamilculturewaterloo.org/api/event-images/bulk`, body ); router.push(`/event-gallery?eventid=${eventId}`); } catch (error) { console.error('Upload failed:', error); } }; return (

Upload Gallery Images

{/* File Input */}
{errors.images &&

{errors.images}

}
{/* Previews */} {previewUrls.length > 0 && (
{previewUrls.map((url, index) => (
{`Preview
))}
)} {/* Submit */}
); }; export default CreateEventGalleryForm;