Skip to content

Commit 0734b7d

Browse files
Anton StandrikAnton Standrik
authored andcommitted
fix: pass path and type
1 parent 450fb9d commit 0734b7d

File tree

3 files changed

+22
-22
lines changed

3 files changed

+22
-22
lines changed

src/components/NavigationTree/NavigationTreeNode.tsx

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,7 @@ export interface NavigationTreeNodeProps {
2727
children?: React.ReactNode;
2828
onActivate?: (path: string) => void;
2929
getActions?: NavigationTreeProps['getActions'];
30-
onActionsOpen?: () => void;
31-
onActionsClose?: () => void;
30+
onOpenToggle?: NavigationTreeProps['onOpenToggle'];
3231
renderAdditionalNodeElements?: NavigationTreeProps['renderAdditionalNodeElements'];
3332
cache?: boolean;
3433
}
@@ -73,8 +72,7 @@ export function NavigationTreeNode({
7372
children,
7473
onActivate,
7574
getActions,
76-
onActionsOpen,
77-
onActionsClose,
75+
onOpenToggle,
7876
renderAdditionalNodeElements,
7977
cache,
8078
}: NavigationTreeNodeProps) {
@@ -134,6 +132,17 @@ export function NavigationTreeNode({
134132
return getActions?.(nodeState.path, nodeState.type);
135133
}, [getActions, nodeState]);
136134

135+
const handleOpenToggle = React.useCallback(
136+
(isOpen: boolean) => {
137+
onOpenToggle?.({
138+
path: nodeState.path,
139+
type: nodeState.type,
140+
isOpen,
141+
});
142+
},
143+
[nodeState.path, nodeState.type, onOpenToggle],
144+
);
145+
137146
return (
138147
<TreeView
139148
name={nodeState.name}
@@ -145,8 +154,7 @@ export function NavigationTreeNode({
145154
hasArrow={nodeState.expandable}
146155
onClick={handleClick}
147156
onArrowClick={handleArrowClick}
148-
onActionsClose={onActionsClose}
149-
onActionsOpen={onActionsOpen}
157+
onOpenToggle={handleOpenToggle}
150158
level={level}
151159
>
152160
{children}

src/components/NavigationTree/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ export type NavigationTreeNodePartialState = Omit<
5353
export interface NavigationTreeProps<D = any> {
5454
rootState: NavigationTreeNodePartialState;
5555
fetchPath: (path: string) => Promise<NavigationTreeDataItem[]>;
56+
onOpenToggle?: (args: {
57+
path: string;
58+
type: NavigationTreeNodeType;
59+
isOpen: boolean;
60+
}) => DropdownMenuItemMixed<D>[];
5661
getActions?: (path: string, type: NavigationTreeNodeType) => DropdownMenuItemMixed<D>[];
5762
renderAdditionalNodeElements?: (
5863
path: string,

src/components/TreeView/TreeView.tsx

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,7 @@ export interface TreeViewProps {
1616
active?: boolean;
1717
onClick?: () => void;
1818
onArrowClick?: () => void;
19-
onActionsOpen?: () => void;
20-
onActionsClose?: () => void;
19+
onOpenToggle?: (isOpen: boolean) => void;
2120
hasArrow?: boolean;
2221
actions?: DropdownMenuItemMixed<any>[];
2322
additionalNodeElements?: JSX.Element;
@@ -37,8 +36,7 @@ export function TreeView({
3736
active = false,
3837
onClick,
3938
onArrowClick,
40-
onActionsOpen,
41-
onActionsClose,
39+
onOpenToggle,
4240
hasArrow = false,
4341
actions,
4442
additionalNodeElements,
@@ -76,17 +74,6 @@ export function TreeView({
7674
containerClassName += ' tree-view_children-collapsed';
7775
}
7876

79-
const handleOpenToggle = React.useCallback(
80-
(isOpen: boolean) => {
81-
if (isOpen) {
82-
onActionsOpen?.();
83-
} else {
84-
onActionsClose?.();
85-
}
86-
},
87-
[onActionsOpen, onActionsClose],
88-
);
89-
9077
return (
9178
<div className={b()} style={{[TREE_LEVEL_CSS_VAR]: level} as React.CSSProperties}>
9279
<div className="tree-view">
@@ -109,7 +96,7 @@ export function TreeView({
10996
<div className={b('actions')}>
11097
{additionalNodeElements}
11198
<DropdownMenu
112-
onOpenToggle={handleOpenToggle}
99+
onOpenToggle={onOpenToggle}
113100
defaultSwitcherProps={{
114101
view: 'flat-secondary',
115102
size: 's',

0 commit comments

Comments
 (0)