@intuitionrobotics/thunderstorm
Version:
25 lines (24 loc) • 1.11 kB
TypeScript
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>>;