import { OPACITY_ON_LOAD } from "../../Layout/animations"; import Header from "../../Components/Header"; import { AspectRatio, Box, Button, Divider, FormControl, FormHelperText, FormLabel, Heading, Image, Input, Stack, Textarea, useToast, } from "@chakra-ui/react"; import fallbackImage from "../../assets/ultp-fallback-img.webp"; import { useState } from "react"; import { yupResolver } from "@hookform/resolvers/yup"; import { useForm } from "react-hook-form"; import { addEvents } from "../../Validations/Validations"; import { TiWarning } from "react-icons/ti"; import Loader01 from "../../Components/Loaders/Loader01"; import { useNavigate } from "react-router-dom"; import { motion } from "framer-motion"; import { useCreateEventsMutation } from "../../Services/api.service"; import ToastBox from "../../Components/ToastBox"; const AddEvents = () => { const toast = useToast(); const navigate = useNavigate(); const [createEvents] = useCreateEventsMutation(); // Invoke the hook to get the mutation function const [selectedImage, setSelectedImage] = useState(fallbackImage); const [largeImageData, setLargeImageData] = useState(null); const [isLoading, setIsLoading] = useState(false); const [eventDatesInput, setEventsDatesInputs] = useState([]); // Function to handle adding new date inputs const addDateInput = () => { setEventsDatesInputs([...eventDatesInput, ""]); }; // Function to handle the change in date inputs const handleDateChange = (index, event) => { const newDates = [...eventDatesInput]; newDates[index] = event.target.value; setEventsDatesInputs(newDates); }; const { register, handleSubmit, reset, watch, formState: { errors }, } = useForm({ resolver: yupResolver(addEvents), }); const handleImageChange = (e) => { const file = e.target.files[0]; setLargeImageData(file); if (file) { const reader = new FileReader(); reader.onloadend = () => { setSelectedImage(reader.result); }; reader.readAsDataURL(file); } }; const onSubmit = (data) => { setIsLoading(true); const formData = new FormData(); formData.append("title", data.title); formData.append("content", data.content); formData.append("location", data.location); formData.append("organizer_name", data.organizer_name); formData.append("organizer_mobile_number", data.organizer_mobile_number); formData.append("organizer_email", data.organizer_email); if (eventDatesInput.length === 0 || eventDatesInput[0]==="") { setIsLoading(false); return toast({ render: () => ( ), }); } else { eventDatesInput.forEach((date, index) => { formData.append(`dates[${index}]`, date); }); } if (data.banner_image[0]) { formData.append("banner_image", data.banner_image[0]); } // for (const [key, value] of formData.entries()) { // // console.log(`${key}: ${value}`); // } // Trigger the mutationconst const res = createEvents(formData) .then((response) => { // Handle the response here // // console.log("Mutation response:", response?.data?.statusCode); // // console.log("Mutation response:", response?.data?.message); if (response?.data?.statusCode === 201) { setIsLoading(false); toast({ title: response?.data?.message, status: "success", isClosable: true, }); reset(); navigate("/events"); } else if (response?.data?.statusCode === 500) { setIsLoading(false); toast({ title: response?.data?.message, status: "error", // Change status to error isClosable: true, }); } }) .catch((error) => { // Handle errors // // console.error("Error creating community:", error?.message); setIsLoading(false); // Handle error notification if needed }); }; return (
{/*