import type { Directory, SetState } from "@components/Playground"; import React, { useState } from "react"; export default function FileView({ root, fileName, setSelectedFileName, className, }: { root: Directory; fileName: string; setSelectedFileName: SetState; className?: string; }) { return (
{Object.entries(root.dirs ?? {}).map(([name, dir]) => { return ( ); })} {Object.entries(root.files ?? {}).map(([name, _]) => { return ( setSelectedFileName(name)} /> ); })}
); } function FileElement({ name, disabled, onClick, }: { name: string; disabled: boolean; onClick?: React.MouseEventHandler; }) { return ( ); } function DirElement({ name, dir: currentDir, collapsed: pCollapsed, fileName, setSelectedFileName, }: { name: string; dir: Directory; collapsed?: boolean; fileName: string; setSelectedFileName: SetState; }) { const [collapsed, setCollapsed] = useState(pCollapsed ?? false); const modSetSelectedFileName: SetState = (selected) => { setSelectedFileName(name + "/" + selected); }; return (
{collapsed ? null : (
{Object.entries(currentDir.dirs ?? {}).map( ([dirname, dir]) => { return ( ); } )} {Object.entries(currentDir.files ?? {}).map( ([currentName, _]) => { return ( modSetSelectedFileName(currentName) } /> ); } )}
)}
); }