import { useEffect, useState } from "react"; import { motion } from "framer-motion"; import { FaUpload, FaTrash, FaFileImage, FaFileVideo } from "react-icons/fa"; import { api } from "../API/api"; import { useLoading } from "../Context/LoadingContext"; const ManageFiles = ({ id }) => { const BACKEND = "https://backend.dine360ads.com/"; const [files, setFiles] = useState([]); const [upd, setupd] = useState(0); const [uploading, setUploading] = useState(false); const { setLoading } = useLoading(); useEffect(() => { fetchFiles(); }, [id, upd]); const fetchFiles = async () => { try { setLoading(true); const res = await api.get(`/client/files/${id}`); setFiles(res); } catch (e) { console.error(e); } setLoading(false); }; const deleteFiles = async (fileid) => { try { setLoading(true); await api.delete(`/files/del/${fileid}`); setupd(upd + 1); } catch (e) { console.error(e); } setLoading(false); }; const handleFileUpload = async (file) => { if (!file) return; setUploading(true); const fd = new FormData(); fd.append("file", file); fd.append("file_name", file.name); fd.append("client_id", id); try { setLoading(true); await api.post("/files/upload", fd, { headers: { "Content-Type": "multipart/form-data" } }); fetchFiles(); } catch (e) { console.error(e); } finally { setUploading(false); setLoading(false); } }; const handleMultipleUpload = async (e) => { const filesToUpload = e.target.files; if (!filesToUpload?.length) return; setUploading(true); for (let i = 0; i < filesToUpload.length; i++) { await handleFileUpload(filesToUpload[i]); } setUploading(false); }; return (
No files uploaded yet.
) : ({fileName}