import React, { Component } from 'react'; import SortableTree, { ExtendedNodeData, TreeItem, NodeRenderer } from 'react-sortable-tree'; import { theme } from '@veeqo/ui'; import { IView } from 'types'; import Glyph from 'components/common/Glyph'; import defaultNodeContentRenderer from './nodeRenderer'; import View from './View'; import Container from './styled'; type ViewId = string; export interface ViewTreeItem extends IView, TreeItem { } export interface SortableViewsProps { views: IView[]; onChange: (treeData: ViewTreeItem[]) => void; onClick?: (id: ViewId) => void; rowHeight?: number; nodeContentRenderer?: NodeRenderer; className?: string; } class SortableViews extends Component { generateNodeProps = ({ node }: ExtendedNodeData) => { const { onClick } = this.props; return { moveHandle: ( ), title: ( ), }; }; canNodeHaveChildren = () => false; render() { const { views, onChange, nodeContentRenderer = defaultNodeContentRenderer, rowHeight = 40, className, ...rest } = this.props; return ( ); } } export default SortableViews;