import { DialogBody, DialogCloseTrigger, DialogContent, DialogFooter, DialogHeader, DialogRoot, DialogTitle, DialogTrigger } from "../../../components/ui/dialog" import { Box, Field, Input, Stack, Text } from "@chakra-ui/react" import { IoMdAdd } from "react-icons/io" import { Button } from "../../../components/ui/button" import { FiUpload } from "react-icons/fi"; import { useState } from "react"; // import { useCreateTemplatePostMutation } from "../../../Redux/Service/template.master.service"; import { Toaster, toaster } from "../../../components/ui/toaster" import axios from "axios"; function TemplateAddModel({ id }: { id: number }) { const [title, setTitle] = useState(""); const [subTitle, setSubTitle] = useState(""); const [userType, setUserType] = useState(""); const [images, setImages] = useState<(File | string)[]>([]); // const [createTemplatePost] = useCreateTemplatePostMutation() const [isOpen, setIsOpen] = useState(false); const token = localStorage.getItem("token"); if (!token) { console.error("No token found in localStorage!"); return; } const handleOpenModal = () => { setIsOpen(true); // Open modal when clicking "Add" }; const handleImageChange = async (event: React.ChangeEvent) => { if (event.target.files) { const file = event.target.files[0]; if (!["image/jpeg", "image/jpg", "image/png"].includes(file.type)) { toaster.create({ title: "Error", description: "Only JPEG, JPG, and PNG files are allowed.", type: "error", }); return; } setImages((prevImages) => [...prevImages, file]); } }; const handleSubmit = async () => { if (!title || !subTitle || !userType || images.length === 0) { toaster.create({ title: "Error", description: "Please fill in all required fields and upload at least one image.", type: "error", }); return; } // const payload = { // id: id, // principle_type_xid: userType, // title, // sub_title: subTitle, // image_name: images.filter((img) => typeof img === "string"), // Send only Base64 strings // }; const formData = new FormData(); formData.append("id", `${id}`); formData.append("principle_type_xid", `${userType}`); formData.append("title", title); formData.append("sub_title", subTitle); images.forEach((image, index) => { if (image instanceof File) { formData.append(`image_name[${index}]`, image, image.name); // Ensure indexed naming } }); if (token) { const payload = JSON.parse(atob(token.split(".")[1])); console.log("Token Payload:", payload); } try { // await createTemplatePost(formData) if (token) { await axios.post(`https://ssa.betadelivery.com/apia/v1/template-store`, formData, { headers: { 'Content-Type': 'multipart/form-data', 'access-token': `${token}`, }, // withCredentials: true, }); } setTitle(""); setSubTitle(""); setUserType(""); setImages([]); setIsOpen(false) } catch (error) { console.error("Error creating template:", error); // alert("Failed to create template"); } }; console.log("Token stored:", window.localStorage.getItem("token")); return ( {/* */} Add Title setTitle(e.target.value)} /> Subtitle setSubTitle(e.target.value)} /> Select User Type Images {images.length > 0 ? ( images.map((img, index) => ( {`Uploaded )) ) : ( // Placeholder to maintain layout )} {/* */} setIsOpen(false)} /> ) } export default TemplateAddModel