import { useCallback, useEffect } from "react"; import { useDropzone } from "react-dropzone"; import { useGlobal, useLocal } from "web-utils"; import { apiProxy } from "../../../../base/load/api/api-proxy"; import { Modal } from "../../../../utils/ui/modal"; import { EDGlobal } from "../../logic/ed-global"; import { EdFileTree } from "./file-tree"; import { FEntry } from "./type"; export const EdFileBrowser = () => { const p = useGlobal(EDGlobal, "EDITOR"); const local = useLocal({ entry: {} as Record, }); useEffect(() => { if (!p.script.api && p.site.config?.api_url) { p.script.api = apiProxy(p.site.config.api_url); p.render(); } p.script.api._raw(`/_file/?dir`).then((e: FEntry[]) => { if (Array.isArray(e)) { local.entry = { "/": e }; p.ui.popup.file.enabled = true; p.render(); } }); }, []); const onDrop = useCallback((acceptedFiles: any[]) => { console.log(acceptedFiles); }, []); const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop, noClick: true, }); if (!p.ui.popup.file.enabled) return null; return ( <>
{ p.ui.popup.file.open = true; p.render(); }} > {" "}
Files
{ if (!open) { p.ui.popup.file.open = false; p.render(); } }} >
{isDragActive && (
Drag Here to Upload
)}
Moko
); };