UNPKG

@intuitionrobotics/thunderstorm

Version:
25 lines (24 loc) 1.11 kB
import * as React from "react"; import { TreeNode } from "../tree/types"; export type ItemRendererProps<Item = any> = { item: Item; }; export type _BaseItemRenderer<ItemType> = React.ComponentType<ItemRendererProps<ItemType>>; export declare abstract class BaseItemRenderer<ItemType, S extends {} = {}> extends React.Component<ItemRendererProps<ItemType>, S> { render(): React.ReactNode; protected abstract renderItem(item: ItemType): React.ReactNode; } export type NodeRendererProps<Item = any> = { item: Item; node: TreeNode; }; export type _BaseNodeRenderer<ItemType> = React.ComponentType<NodeRendererProps<ItemType>>; export declare abstract class BaseNodeRenderer<ItemType, S extends {} = {}> extends React.Component<NodeRendererProps<ItemType>, S> { render(): React.ReactNode; protected abstract renderItem(item: ItemType): React.ReactNode; } export type BaseRendererMap<R extends React.ComponentType<any>> = { [k: string]: R; }; export type ItemRendererMap = BaseRendererMap<_BaseItemRenderer<any>>; export type TreeRendererMap = BaseRendererMap<_BaseNodeRenderer<any>>;