import "./FileBrowser.css"; import { type Component, createSignal, Index, Show } from "solid-js"; import { FileIcon, FolderIcon, FolderOpenIcon } from "./icons/index.ts"; export type BrowserFolder = Map; export type FileHandler = (path: string) => void; function isFolder(entry: string | BrowserFolder): entry is BrowserFolder { return typeof (entry as BrowserFolder).size === "number"; } export const FileBrowser: Component<{ root: BrowserFolder; handler: FileHandler; }> = ({ root, handler }) => { const FileEntry: Component<{ name: string; path: string; }> = ({ name, path }) => { return (
{name}
); }; const FolderEntry: Component<{ folder: BrowserFolder; name: string; open: boolean; }> = ({ folder, name, open }) => { const [isOpen, setIsOpen] = createSignal(open); return ( <>
setIsOpen(!isOpen())}> {isOpen() ? : } {name}
); }; const FileList: Component<{ folder: BrowserFolder }> = ({ folder }) => { return ( ); }; return (
); };