mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2026-08-11 20:40:20 +00:00
Add type for TreeNode that rc-tree generates internally (#25077)
* Add type for TreeNode that rc-tree generates internally * Update test * Make InternalTreeNode an interface since it can't be instantiated
This commit is contained in:
committed by
Wesley Wigham
parent
b89b85ab98
commit
321c042eba
Vendored
+31
-24
@@ -1,15 +1,26 @@
|
||||
// Type definitions for rc-tree 1.4
|
||||
// Type definitions for rc-tree 1.10
|
||||
// Project: https://github.com/react-component/tree
|
||||
// Definitions by: John Reilly <https://github.com/johnnyreilly>
|
||||
// Definitions by: John Reilly <https://github.com/johnnyreilly>, Methuselah96 <https://github.com/Methuselah96>
|
||||
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
||||
// TypeScript Version: 2.6
|
||||
// TypeScript Version: 2.7
|
||||
|
||||
import {
|
||||
Component,
|
||||
Props
|
||||
} from "react";
|
||||
import { Component } from "react";
|
||||
|
||||
export interface TreeNodeProps extends Props<TreeNode> {
|
||||
export interface InternalTreeNodeProps extends TreeNodeProps {
|
||||
eventKey: string;
|
||||
expanded: boolean;
|
||||
selected: boolean;
|
||||
checked: boolean;
|
||||
halfChecked: boolean;
|
||||
pos: string;
|
||||
dragOver: boolean;
|
||||
dragOverGapTop: boolean;
|
||||
dragOverGapBottom: boolean;
|
||||
}
|
||||
|
||||
export interface InternalTreeNode extends Component<InternalTreeNodeProps> { }
|
||||
|
||||
export interface TreeNodeProps {
|
||||
/**
|
||||
* additional css class for treeNode
|
||||
*/
|
||||
@@ -26,10 +37,6 @@ export interface TreeNodeProps extends Props<TreeNode> {
|
||||
* tree / subTree's title
|
||||
*/
|
||||
title?: string | JSX.Element;
|
||||
/**
|
||||
* it's used with tree props (default)ExpandedKeys / (default)CheckedKeys / (default)SelectedKeys. You'd better set it, and it must be unique in the tree's all treeNodes
|
||||
*/
|
||||
key?: string | number;
|
||||
/**
|
||||
* whether it is a leaf node
|
||||
*/
|
||||
@@ -40,43 +47,43 @@ export class TreeNode extends Component<TreeNodeProps> { }
|
||||
|
||||
export interface ExpandData {
|
||||
expanded: boolean;
|
||||
node: TreeNode;
|
||||
node: InternalTreeNode;
|
||||
}
|
||||
|
||||
export interface CheckData {
|
||||
checked: boolean;
|
||||
checkedNodes: TreeNode[];
|
||||
checkedNodes: InternalTreeNode[];
|
||||
halfCheckedKeys: string[];
|
||||
node: TreeNode;
|
||||
node: InternalTreeNode;
|
||||
event: "check";
|
||||
}
|
||||
|
||||
export interface SelectData {
|
||||
selected: boolean;
|
||||
selectedNodes: TreeNode[];
|
||||
node: TreeNode;
|
||||
selectedNodes: InternalTreeNode[];
|
||||
node: InternalTreeNode;
|
||||
event: "select";
|
||||
}
|
||||
|
||||
export interface OnDragStartData {
|
||||
event: Event;
|
||||
node: TreeNode;
|
||||
node: InternalTreeNode;
|
||||
}
|
||||
|
||||
export interface OnDragEnterData {
|
||||
event: Event;
|
||||
node: TreeNode;
|
||||
node: InternalTreeNode;
|
||||
expandedKeys: string[];
|
||||
}
|
||||
|
||||
export interface OnDropData {
|
||||
event: Event;
|
||||
node: TreeNode;
|
||||
dragNode: TreeNode;
|
||||
node: InternalTreeNode;
|
||||
dragNode: InternalTreeNode;
|
||||
dragNodesKeys: string[];
|
||||
}
|
||||
|
||||
export interface TreeProps extends Props<Tree> {
|
||||
export interface TreeProps {
|
||||
/**
|
||||
* additional css class of root dom node
|
||||
*/
|
||||
@@ -158,11 +165,11 @@ export interface TreeProps extends Props<Tree> {
|
||||
/**
|
||||
* filter some treeNodes as you need.
|
||||
*/
|
||||
filterTreeNode?(node: TreeNode): boolean;
|
||||
filterTreeNode?(node: InternalTreeNode): boolean;
|
||||
/**
|
||||
* load data asynchronously
|
||||
*/
|
||||
loadData?(node: TreeNode): Promise<any>;
|
||||
loadData?(node: InternalTreeNode): Promise<any>;
|
||||
/**
|
||||
* whether can drag treeNode.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import * as React from 'react';
|
||||
import Tree, { TreeNode, SelectData, CheckData } from 'rc-tree';
|
||||
import Tree, { TreeNode, SelectData, CheckData, InternalTreeNode } from 'rc-tree';
|
||||
|
||||
interface Props {
|
||||
keys: string[];
|
||||
@@ -44,15 +44,15 @@ export class Demo extends React.Component<Props, State> {
|
||||
console.log('onCheck', checkedKeys, info);
|
||||
}
|
||||
|
||||
onDragStart(params: {event: Event, node: TreeNode}) {
|
||||
onDragStart(params: {event: Event, node: InternalTreeNode}) {
|
||||
console.log('onDragStart', params.event, params.node);
|
||||
}
|
||||
|
||||
OnDragEnterData(params: {event: Event, node: TreeNode, expandedKeys: string[]}) {
|
||||
OnDragEnterData(params: {event: Event, node: InternalTreeNode, expandedKeys: string[]}) {
|
||||
console.log('OnDragEnterData', params.event, params.node, params.expandedKeys);
|
||||
}
|
||||
|
||||
OnDropData(params: {event: Event, node: TreeNode, dragNode: TreeNode, dragNodesKeys: string[]}) {
|
||||
OnDropData(params: {event: Event, node: InternalTreeNode, dragNode: InternalTreeNode, dragNodesKeys: string[]}) {
|
||||
console.log('OnDropData', params.event, params.node, params.dragNode, params.dragNodesKeys);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user