import { Box, FormControl, FormHelperText, FormLabel, Input, Stack, Textarea, Heading, Button, useToast, Divider, Image, } from "@chakra-ui/react"; import React, { useState } from "react"; import fallbackImage from "../../assets/ultp-fallback-img.webp"; import { TiWarning } from "react-icons/ti"; import { motion } from "framer-motion"; import { OPACITY_ON_LOAD } from "../../Layout/animations"; import { yupResolver } from "@hookform/resolvers/yup"; import { useForm } from "react-hook-form"; import { addCommunityBannerSchema, addCommunitySchema, } from "../../Validations/Validations"; import { useNavigate } from "react-router-dom"; import Loader01 from "../../Components/Loaders/Loader01"; import Header from "../Header"; import ToastBox from "../ToastBox"; import BannerMainCard from "./BannerMainCard"; const AddBanner = ({ createApi, navigateLink, title, center }) => { const toast = useToast(); const navigate = useNavigate(); const [isLoading, setIsLoading] = useState(false); const [selectedImage, setSelectedImage] = useState(fallbackImage); const [largeImageData, setLargeImageData] = useState(null); const { register, handleSubmit, reset, watch, formState: { errors }, } = useForm({ resolver: yupResolver(addCommunityBannerSchema), }); const formData = watch(); const onSubmit = async (data) => { try { setIsLoading(true); const formData = new FormData(); formData.append("heading", data.heading); formData.append("sub_heading", data.sub_heading); formData.append("CTO_button_link", data.CTO_button_link); formData.append("CTO_button_title", data.CTO_button_title); if (selectedImage[0]) { formData.append("banner_image", data.banner_image[0]); } // Trigger the mutation createApi(formData) .then((response) => { if (response?.data?.statusCode === 200) { setIsLoading(false); toast({ render: () => ( ), }); reset(); navigate(navigateLink); } else if (response?.data?.statusCode === 500) { setIsLoading(false); toast({ render: () => ( ), }); } }) .catch((error) => { // Handle errors // // console.error("Error creating community:", error); setIsLoading(false); // Handle error notification if needed }); } catch (error) { // Handle errors // // console.error("Error creating community:", error); setIsLoading(false); } }; 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); } }; return (
Banner info Select the platform for which you need to create this campaign. Banner image Below is the profile that will be displayed on the community page. <> {/* Selected Image */} {selectedImage === fallbackImage || largeImageData === null ? ( "" ) : ( {largeImageData?.name} {(largeImageData?.size / (1024 * 1024)).toFixed(2)} mb )}
Heading 50} // maxLength={51} /> 50 ? "red" : "gray.500"} className="web-text-small" > If heading crosses 50 characters it will cause problem in alignment on website.you have entered {formData?.heading?.length}{" "} characters {errors.name && ( {errors.heading.message} )} Sub heading