import React from "react"; import { TreeNodeEventData } from "./TreeProps"; export interface TreeContextValue { /** * 树节点是否可选择 * * @default false */ selectable: boolean; /** * 树节点是否支持点击高亮 * * @default false */ activable: boolean; /** * 高亮的节点 */ activeIds: string[]; /** * 展开的节点 */ expandedIds: string[]; /** * 是否点击整个节点范围可控制展开 */ fullExpandable: boolean; /** * 是否点击整个节点范围可控制高亮 */ fullActivable: boolean; /** * 异步加载 */ onLoad?: (id: string) => Promise; /** * 异步加载失败 */ onLoadError?: (id: string, error: Error) => void; /** * 点击高亮 */ onActive?: ( id: string, event: React.MouseEvent, data: TreeNodeEventData ) => void; /** * 展开/收起 */ onExpand?: ( id: string, expanded: boolean, event: React.MouseEvent, data: TreeNodeEventData ) => void; /** * 树节点的展开/收起图标 */ switcherIcon?: | ((context: { expanded: boolean; nodeId: string }) => React.ReactNode) | React.ReactNode; /** * 组件版本 */ flatten?: true; } export const TreeContext = React.createContext({ selectable: false, activable: false, expandedIds: [], activeIds: [], fullExpandable: false, fullActivable: false, });