|
1 | 1 | import React, { |
2 | 2 | forwardRef, |
3 | | - useState, |
| 3 | + MouseEvent, |
| 4 | + RefObject, |
| 5 | + useCallback, |
4 | 6 | useImperativeHandle, |
5 | 7 | useMemo, |
6 | | - RefObject, |
7 | | - MouseEvent, |
8 | 8 | useRef, |
9 | | - useCallback, |
| 9 | + useState, |
10 | 10 | } from 'react'; |
11 | 11 | import { CSSTransition, TransitionGroup } from 'react-transition-group'; |
12 | 12 | import classNames from 'classnames'; |
13 | 13 | import { get } from 'lodash-es'; |
14 | 14 |
|
15 | | -import TreeNode from '@tdesign/common-js/tree-v1/tree-node'; |
16 | 15 | import log from '@tdesign/common-js/log/index'; |
| 16 | +import TreeNode from '@tdesign/common-js/tree-v1/tree-node'; |
17 | 17 | import type { |
18 | 18 | TreeNodeState, |
19 | 19 | TreeNodeValue, |
20 | 20 | TypeTreeNodeData, |
21 | 21 | TypeTreeNodeModel, |
22 | 22 | } from '@tdesign/common-js/tree-v1/types'; |
23 | | -import { TreeOptionData, StyledProps, ComponentScrollToElementParams } from '../common'; |
24 | | -import { TreeItemProps } from './interface'; |
25 | | -import TreeItem from './TreeItem'; |
26 | 23 |
|
| 24 | +import parseTNode from '../_util/parseTNode'; |
| 25 | +import useDefaultProps from '../hooks/useDefaultProps'; |
| 26 | +import { usePersistFn } from '../hooks/usePersistFn'; |
| 27 | +import { treeDefaultProps } from './defaultProps'; |
| 28 | +import { TreeDraggableContext } from './hooks/TreeDraggableContext'; |
27 | 29 | import useControllable from './hooks/useControllable'; |
28 | 30 | import { useStore } from './hooks/useStore'; |
29 | 31 | import { useTreeConfig } from './hooks/useTreeConfig'; |
30 | | -import { TreeDraggableContext } from './hooks/TreeDraggableContext'; |
31 | | -import parseTNode from '../_util/parseTNode'; |
32 | | -import { usePersistFn } from '../hooks/usePersistFn'; |
33 | 32 | import useTreeVirtualScroll from './hooks/useTreeVirtualScroll'; |
| 33 | +import TreeItem from './TreeItem'; |
34 | 34 |
|
35 | | -import type { TreeInstanceFunctions, TdTreeProps } from './type'; |
36 | | -import { treeDefaultProps } from './defaultProps'; |
37 | | -import useDefaultProps from '../hooks/useDefaultProps'; |
| 35 | +import type { ComponentScrollToElementParams, StyledProps, TreeOptionData } from '../common'; |
| 36 | +import type { TreeItemProps } from './interface'; |
| 37 | +import type { TdTreeProps, TreeInstanceFunctions } from './type'; |
38 | 38 |
|
39 | 39 | export type TreeProps = TdTreeProps & StyledProps; |
40 | 40 |
|
@@ -179,11 +179,12 @@ const Tree = forwardRef<TreeInstanceFunctions<TreeOptionData>, TreeProps>((origi |
179 | 179 | }; |
180 | 180 |
|
181 | 181 | const handleChange: TreeItemProps['onChange'] = (node, ctx) => { |
182 | | - if (!node || disabled || node.disabled) { |
183 | | - return; |
184 | | - } |
185 | | - setChecked(node, !node.isChecked(), { ...ctx, trigger: 'node-click' }); |
| 182 | + if (!node || disabled || node.disabled) return; |
| 183 | + const checked = node.toggleChecked(); |
| 184 | + const treeNodeModel = node?.getModel(); |
| 185 | + onChange?.(checked, { node: treeNodeModel, ...ctx, trigger: 'node-click' }); |
186 | 186 | }; |
| 187 | + |
187 | 188 | const handleScrollToElement = useCallback( |
188 | 189 | (params: ComponentScrollToElementParams) => { |
189 | 190 | let { index } = params; |
|
0 commit comments