import React, { useEffect, useState } from "react"; import CreateFolder from "./CreateFolder"; import ModalUi from "./ModalUi"; import axios from "axios"; import { themeColor } from "../utils/ThemeColor/backColor"; import "../css/selectFolder.css"; const SelectFolder = ({ required, onSuccess, folderCls, isOpenModal, setIsOpenMoveModal, setPdfData }) => { const [clickFolder, setClickFolder] = useState(""); // const [selectFolder, setSelectedFolder] = useState({}); const [folderList, setFolderList] = useState([]); const [tabList, setTabList] = useState([]); const [isLoader, setIsLoader] = useState(false); // const [folderPath, setFolderPath] = useState(""); const [isAdd, setIsAdd] = useState(false); useEffect(() => { if (isOpenModal) { setIsAdd(false); setClickFolder({}); setFolderList([]); setTabList([]); fetchFolder(); } }, []); //fetch folder data const fetchFolder = async (folderPtr) => { setIsLoader(true); let url; const classUrl = `${localStorage.getItem("baseUrl")}classes/${folderCls}`; if (folderPtr) { url = `${classUrl}?where={"Folder": {"__type":"Pointer","className":"${folderCls}","objectId":"${folderPtr.objectId}"},"Type":"Folder"}`; } else { url = `${classUrl}?where={"Folder":{"$exists":false},"Type":"Folder"}`; } try { const res = await axios.get(url, { headers: { "X-Parse-Application-Id": localStorage.getItem("parseAppId"), "X-Parse-Session-Token": localStorage.getItem("accesstoken") } }); if (res.data.results) { setFolderList(res.data.results); setIsLoader(false); setIsAdd(false); } setIsLoader(false); } catch (err) { console.log("err", err); setIsLoader(false); } }; const handleSelect = (item) => { setFolderList([]); setClickFolder({ ObjectId: item.objectId, Name: item.Name }); if (tabList.length > 0) { const tab = tabList.some((x) => x.objectId === item.objectId); if (!tab) { setTabList((tabs) => [...tabs, item]); const folderPtr = { __type: "Pointer", className: folderCls, objectId: item.objectId }; fetchFolder(folderPtr); } } else { setTabList((tabs) => [...tabs, item]); const folderPtr = { __type: "Pointer", className: folderCls, objectId: item.objectId }; fetchFolder(folderPtr); } }; const handleSubmit = () => { let url = "Root"; tabList.forEach((t) => { url = url + " / " + t.Name; }); // setFolderPath(url); // setSelectedFolder(clickFolder); if (onSuccess) { onSuccess(clickFolder); } setIsOpenMoveModal(false); }; const handleCancel = () => { setIsOpenMoveModal(false); setClickFolder({}); setFolderList([]); setTabList([]); }; const removeTabListItem = async (e, i) => { e.preventDefault(); // setEditable(false); if (!isAdd) { setIsLoader(true); let folderPtr; if (i) { setFolderList([]); let list = tabList.filter((itm, j) => { if (j <= i) { return itm; } }); let _len = list.length - 1; folderPtr = { __type: "Pointer", className: folderCls, objectId: list[_len].objectId }; setTabList(list); } else { setClickFolder({}); // setSelectedFolder({}); setFolderList([]); setTabList([]); } fetchFolder(folderPtr); } }; const handleCreate = () => { setIsAdd(!isAdd); }; const handleAddFolder = (res) => { setPdfData((prev) => [...prev, res]); setFolderList([]); if (clickFolder && clickFolder.ObjectId) { fetchFolder({ __type: "Pointer", className: folderCls, objectId: clickFolder.ObjectId }); } else { fetchFolder(); } }; return (