// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from "react"; import { Tree, TreeItem, TreeItemStatus } from "../tree/tree"; import { FileTreeData } from "./file-tree-data"; import { FileTreeItem } from "./file-tree-item"; export interface FileTreeProps { items: Array>; onMenuOpen: (event: React.MouseEvent, item: TreeItem) => void; onSelectionToggle: (event: React.MouseEvent, item: TreeItem) => void; onCollapseToggle: (id: string, status: TreeItemStatus) => void; } export class FileTree extends React.Component { render() { return ; } handleContextMenu = (event: React.MouseEvent, item: TreeItem) => { event.stopPropagation(); this.props.onMenuOpen(event, item); } handleToggle = (event: React.MouseEvent<{}>, { id, status }: TreeItem<{}>) => { this.props.onCollapseToggle(id, status); } handleToggleActive = () => { return; }; handleSelectionChange = (event: React.MouseEvent, item: TreeItem) => { event.stopPropagation(); this.props.onSelectionToggle(event, item); } renderItem = (item: TreeItem) => }