import { TokenStorage } from "@/app/lib/token"; import { Box, Button, Card, Center, FileButton, Image, Paper, Stack, Text, } from "@mantine/core"; import { useShallowEffect } from "@mantine/hooks"; import { IconCamera, IconUpload } from "@tabler/icons-react"; import { useState } from "react"; import { AccentColor, MainColor } from "../_global/color"; import { ComponentGlobal_NotifikasiBerhasil, ComponentGlobal_NotifikasiPeringatan, } from "../_global/notif_global"; import { DIRECTORY_ID } from "@/app/lib"; import { funGlobal_UploadToStorage } from "../_global/fun"; export default function Coba_UploadFile() { const [data, setData] = useState(); const [file, setFile] = useState(null); const [images, setImages] = useState(); async function loadListDir(setData: any) { const rootDirEndPoint = await fetch( "https://wibu-storage.wibudev.com/api/dir/root/list", { method: "GET", headers: { "Content-Type": "application/json", Authorization: `Bearer ${TokenStorage.value}`, }, } ); const dataDir = await rootDirEndPoint.json(); // console.log(dataDir); const dirHipmiEndPoint = await fetch( `https://wibu-storage.wibudev.com/api/dir/${dataDir.dirs[0].id}/list`, { method: "GET", headers: { "Content-Type": "application/json", Authorization: `Bearer ${TokenStorage.value}`, }, } ); const hipmiDir = await dirHipmiEndPoint.json(); // console.log(hipmiDir.dirs[0]); setData(hipmiDir.dirs[0]); } // async function CcekToken() { // const rootDirEndPoint = await fetch( // "https://wibu-storage.wibudev.com/api/dir/root/list", // { // method: "GET", // headers: { // "Content-Type": "application/json", // Authorization: `Bearer ${process.env.WS_APIKEY}`, // }, // } // ); // const dataDir = await rootDirEndPoint.json(); // console.log(dataDir); // } useShallowEffect(() => { loadListDir(setData); // CekToken() }, [setData]); const [imagesId, setImagesId] = useState(""); return ( {images ? ( ) : ( Upload Gambar )} { try { const buffer = URL.createObjectURL( new Blob([new Uint8Array(await files.arrayBuffer())]) ); setImages(buffer); setFile(files); } catch (error) { console.log(error); } }} accept="image/png,image/jpeg" > {(props) => ( )}
{/*
{JSON.stringify(data, null, 2)}
*/} {/* Foto */}
); } async function coba_ButtonFileUpload({ file, dirId, onDone, }: { file: File; dirId: string; onDone: () => void; }) { if (!file) return ComponentGlobal_NotifikasiPeringatan("Tidak ada file"); const allowedMimeTypes = [ "image/png", "image/jpeg", "image/gif", "text/csv", "application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "text/plain", ]; if (!allowedMimeTypes.includes(file.type)) return ComponentGlobal_NotifikasiPeringatan("File tidak sesuai"); if (file.size > 100 * 1024 * 1024) return ComponentGlobal_NotifikasiPeringatan("File terlalu besar"); const formData = new FormData(); formData.append("file", file); formData.append("dirId", dirId); try { const res = await fetch("https://wibu-storage.wibudev.com/api/upload", { method: "POST", body: formData, headers: { Authorization: `Bearer ${TokenStorage.value}`, }, }); const dataRes = await res.json(); if (res.ok) { console.log("File Sukses Di Upload"); console.log(dataRes); } else { const errorText = await res.text(); console.log("jika error", errorText); } } catch (error) { console.error("Upload error:", error); } finally { onDone(); } }