import React, { useEffect, useState } from "react"; import Parse from "parse"; import Alert from "./Alert"; import { themeColor } from "../utils/ThemeColor/backColor"; const CreateFolder = ({ parentFolderId, onSuccess, folderCls }) => { const folderPtr = { __type: "Pointer", className: folderCls, objectId: parentFolderId }; const [name, setName] = useState(""); const [folderList, setFolderList] = useState([]); const [isAlert, setIsAlert] = useState(false); const [selectedParent, setSelectedParent] = useState(); const [alert, setAlert] = useState({ type: "info", message: "" }); useEffect(() => { fetchFolder(); // eslint-disable-next-line }, []); const fetchFolder = async () => { try { const FolderQuery = new Parse.Query(folderCls); if (parentFolderId) { FolderQuery.equalTo("Folder", folderPtr); FolderQuery.equalTo("Type", "Folder"); } else { FolderQuery.doesNotExist("Folder"); FolderQuery.equalTo("Type", "Folder"); } const res = await FolderQuery.find(); if (res) { const result = JSON.parse(JSON.stringify(res)); if (result) { setFolderList(result); } } } catch (error) { console.log("Err ", error); } }; const handleCreateFolder = async (event) => { event.preventDefault(); if (name) { const currentUser = Parse.User.current(); const exsitQuery = new Parse.Query(folderCls); exsitQuery.equalTo("Name", name); exsitQuery.equalTo("Type", "Folder"); if (parentFolderId) { exsitQuery.equalTo("Folder", folderPtr); } const templExist = await exsitQuery.first(); if (templExist) { setAlert({ type: "dange", message: "Folder already exist!" }); setIsAlert(true); setTimeout(() => { setIsAlert(false); }, 1000); } else { const template = new Parse.Object(folderCls); template.set("Name", name); template.set("Type", "Folder"); if (selectedParent) { template.set("Folder", { __type: "Pointer", className: folderCls, objectId: selectedParent }); } else if (parentFolderId) { template.set("Folder", folderPtr); } template.set("CreatedBy", Parse.User.createWithoutData(currentUser.id)); const res = await template.save(); if (res) { const result = JSON.parse(JSON.stringify(res)); if (onSuccess) { setAlert({ type: "success", message: "Folder created successfully!" }); setIsAlert(true); setTimeout(() => { setIsAlert(false); }, 1000); onSuccess(result); } } } } else { setAlert({ type: "info", message: "Please fill folder name" }); setIsAlert(true); setTimeout(() => { setIsAlert(false); }, 1000); } }; const handleOptions = (e) => { setSelectedParent(e.target.value); }; return (