import { useState } from "react"; import { useVirtualRoot } from "../../../hooks/virtual-drive/VirtualRootContext.js"; import styles from "./FileExplorer.module.css"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faArrowUp, faCaretLeft, faCaretRight, faCog, faDesktop, faFile, faFileLines, faFolder, faHouse, faImage, faSearch } from "@fortawesome/free-solid-svg-icons"; // eslint-disable-next-line no-unused-vars import { VirtualFile } from "../../../features/virtual-drive/virtual-file.js"; import { useWindowsManager } from "../../../hooks/windows/WindowsManagerContext.js"; /** * @param {Object} props * @param {VirtualFile} props.file */ function FilePreview({ file }) { let preview = null; switch (file.extension) { case "png": preview = break; case "txt": preview = break; default: preview = break; } return preview; } export function FileExplorer({ startPath }) { const virtualRoot = useVirtualRoot(); const [currentDirectory, setCurrentDirectory] = useState(virtualRoot.navigate(startPath ?? "~")); const [path, setPath] = useState(currentDirectory.path); const windowsManager = useWindowsManager(); const changeDirectory = (path, absolute = false) => { const directory = absolute ? virtualRoot.navigate(path) : currentDirectory.navigate(path); console.log(directory); if (directory) { setCurrentDirectory(directory); setPath(directory.path); } } const onPathChange = (event) => { return setPath(event.target.value); }; const onKeyDown = (event) => { const value = event.target.value; if (event.key === "Enter") { setCurrentDirectory(virtualRoot.navigate(value)); } }; return (
{currentDirectory.files.map((file, index) => )} {currentDirectory.subFolders.map(({ name }, index) => )}
); }