Skip to content

Commit db2bd4f

Browse files
feat: Add node click and double-click callbacks to TreeSelect (#7975)
1 parent 6127893 commit db2bd4f

File tree

4 files changed

+105
-0
lines changed

4 files changed

+105
-0
lines changed

components/doc/common/apidoc/index.json

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54266,6 +54266,19 @@
5426654266
"returnType": "void",
5426754267
"description": "Used to hide the overlay."
5426854268
},
54269+
{
54270+
"name": "onNodeClick",
54271+
"parameters": [
54272+
{
54273+
"name": "event",
54274+
"optional": false,
54275+
"type": "TreeSelectNodeClickEvent",
54276+
"description": "Custom click event."
54277+
}
54278+
],
54279+
"returnType": "void",
54280+
"description": "Callback to invoke when the node is clicked."
54281+
},
5426954282
{
5427054283
"name": "onNodeCollapse",
5427154284
"parameters": [
@@ -54279,6 +54292,19 @@
5427954292
"returnType": "void",
5428054293
"description": "Callback to invoke when a node is collapsed."
5428154294
},
54295+
{
54296+
"name": "onNodeDoubleClick",
54297+
"parameters": [
54298+
{
54299+
"name": "event",
54300+
"optional": false,
54301+
"type": "TreeSelectNodeDoubleClickEvent",
54302+
"description": "Custom doubleclick event."
54303+
}
54304+
],
54305+
"returnType": "void",
54306+
"description": "Callback to invoke when the node is double-clicked."
54307+
},
5428254308
{
5428354309
"name": "onNodeExpand",
5428454310
"parameters": [
@@ -54433,6 +54459,26 @@
5443354459
"description": "The filtered value"
5443454460
}
5443554461
]
54462+
},
54463+
"TreeSelectNodeDoubleClickEvent": {
54464+
"description": "Custom double click event.",
54465+
"relatedProp": "onNodeDoubleClick",
54466+
"props": [
54467+
{
54468+
"name": "originalEvent",
54469+
"optional": false,
54470+
"readonly": false,
54471+
"type": "SyntheticEvent<Element, Event>",
54472+
"description": "Browser event"
54473+
},
54474+
{
54475+
"name": "node",
54476+
"optional": false,
54477+
"readonly": false,
54478+
"type": "TreeNode",
54479+
"description": "The current node"
54480+
}
54481+
]
5443654482
}
5443754483
}
5443854484
},
@@ -54900,6 +54946,28 @@
5490054946
}
5490154947
],
5490254948
"callbacks": []
54949+
},
54950+
"TreeSelectNodeClickEvent": {
54951+
"description": "Custom click event",
54952+
"relatedProp": "onNodeClick",
54953+
"props": [
54954+
{
54955+
"name": "originalEvent",
54956+
"optional": false,
54957+
"readonly": false,
54958+
"type": "SyntheticEvent<Element, Event>",
54959+
"description": "Browser event"
54960+
},
54961+
{
54962+
"name": "node",
54963+
"optional": false,
54964+
"readonly": false,
54965+
"type": "TreeNode",
54966+
"description": "The current node"
54967+
}
54968+
],
54969+
"callbacks": [],
54970+
"extendedBy": "TreeSelectNodeDoubleClickEvent"
5490354971
}
5490454972
}
5490554973
},

components/lib/treeselect/TreeSelect.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,8 @@ export const TreeSelect = React.memo(
673673
onCollapse={props.onNodeCollapse}
674674
onExpand={props.onNodeExpand}
675675
onFilterValueChange={onFilterValueChange}
676+
onNodeClick={props.onNodeClick}
677+
onNodeDoubleClick={props.onNodeDoubleClick}
676678
onSelect={onNodeSelect}
677679
onSelectionChange={onSelectionChange}
678680
onToggle={onNodeToggle}

components/lib/treeselect/TreeSelectBase.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,9 @@ export const TreeSelectBase = ComponentBase.extend({
170170
onBlur: null,
171171
onFilterValueChange: null,
172172
onHide: null,
173+
onNodeClick: null,
173174
onNodeCollapse: null,
175+
onNodeDoubleClick: null,
174176
onNodeExpand: null,
175177
onNodeSelect: null,
176178
onNodeUnselect: null,

components/lib/treeselect/treeselect.d.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,29 @@ interface TreeSelectFilterOptions {
359359
reset?: () => void;
360360
}
361361

362+
/**
363+
* Custom click event
364+
* @see {@link TreeSelectProps.onNodeClick}
365+
*/
366+
interface TreeSelectNodeClickEvent {
367+
/**
368+
* Browser event
369+
*/
370+
originalEvent: React.SyntheticEvent;
371+
/**
372+
* The current node
373+
*/
374+
node: TreeNode;
375+
}
376+
377+
/**
378+
* Custom double click event.
379+
* @see {@link TreeSelectProps.onNodeDoubleClick}
380+
* @extends {TreeSelectNodeClickEvent}
381+
* @event
382+
*/
383+
interface TreeSelectNodeDoubleClickEvent extends TreeSelectNodeClickEvent {}
384+
362385
/**
363386
* Defines valid properties in TreeSelect component. In addition to these, all properties of HTMLDivElement can be used in this component.
364387
* @group Properties
@@ -595,11 +618,21 @@ export interface TreeSelectProps extends Omit<React.DetailedHTMLProps<React.Inpu
595618
* Used to hide the overlay.
596619
*/
597620
onHide?(): void;
621+
/**
622+
* Callback to invoke when the node is clicked.
623+
* @param {TreeSelectNodeClickEvent} event - Custom click event.
624+
*/
625+
onNodeClick?(event: TreeSelectNodeClickEvent): void;
598626
/**
599627
* Callback to invoke when a node is collapsed.
600628
* @param {TreeSelectEventNodeEvent} event - Custom change event.
601629
*/
602630
onNodeCollapse?(event: TreeSelectEventNodeEvent): void;
631+
/**
632+
* Callback to invoke when the node is double-clicked.
633+
* @param {TreeSelectNodeDoubleClickEvent} event - Custom doubleclick event.
634+
*/
635+
onNodeDoubleClick?(event: TreeSelectNodeDoubleClickEvent): void;
603636
/**
604637
* Callback to invoke when a node is expanded.
605638
* @param {TreeSelectEventNodeEvent} event - Custom change event.

0 commit comments

Comments
 (0)