Skip to content

Commit 89b9673

Browse files
committed
fix: fix scroll height in more tree items
1 parent 8195e81 commit 89b9673

File tree

1 file changed

+83
-70
lines changed

1 file changed

+83
-70
lines changed
Lines changed: 83 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Menu, Tree, Trigger } from '@arco-design/web-react';
22
import { IconDown, IconPlus } from '@arco-design/web-react/icon';
3-
import React, { useState } from 'react';
3+
import React from 'react';
44
import {
55
generateDefaultNode,
66
WebsiteTreeNode,
@@ -11,6 +11,17 @@ import styled from 'styled-components';
1111
import { ClearWebsiteBtn } from './ClearWebsiteBtn';
1212
import { stopPropagation } from '../utils/dom';
1313

14+
const Root = styled.div`
15+
display: flex;
16+
flex-direction: column;
17+
height: 100%;
18+
19+
> .tree {
20+
flex: 1;
21+
overflow: auto;
22+
}
23+
`;
24+
1425
const StyledTree = styled(Tree)`
1526
margin-top: 0.5rem;
1627
@@ -68,81 +79,83 @@ export const SideTree: React.FC = React.memo(() => {
6879
} = useTreeStore();
6980

7081
return (
71-
<div>
82+
<Root>
7283
<Row>
7384
<AddWebsiteBtn />
7485
<ClearWebsiteBtn />
7586
</Row>
7687

77-
<StyledTree
78-
draggable={true}
79-
blockNode={true}
80-
selectedKeys={selectedNode ? [selectedNode.key] : []}
81-
expandedKeys={expandedKeys}
82-
onExpand={(expandedKeys) => {
83-
setExpandedKeys(expandedKeys);
84-
}}
85-
treeData={treeData}
86-
icons={{
87-
switcherIcon: <IconDown />,
88-
}}
89-
renderTitle={(props) => (
90-
<Trigger
91-
position="br"
92-
popupAlign={{
93-
right: [20, 20],
94-
}}
95-
popup={() => (
96-
<StyledMenu>
97-
<Menu.Item
98-
key="del"
99-
onClick={(e) => {
100-
stopPropagation(e);
101-
if (props.dataRef && props.dataRef.key) {
102-
deleteTreeNode(props.dataRef.key);
103-
}
104-
}}
105-
>
106-
Delete
107-
</Menu.Item>
108-
</StyledMenu>
109-
)}
110-
trigger={'contextMenu'}
111-
>
112-
<div>{props.title}</div>
113-
</Trigger>
114-
)}
115-
onSelect={(_, extra) => {
116-
const nodeData = extra.node.props.dataRef;
117-
if (nodeData) {
118-
setSelectedNode(nodeData as WebsiteTreeNode);
119-
}
120-
}}
121-
renderExtra={(node) => {
122-
return (
123-
<IconPlus
124-
className="add-icon"
125-
onClick={() => {
126-
if (!node.dataRef) {
127-
return;
128-
}
129-
130-
const key = node.dataRef.key;
131-
if (!key) {
132-
return;
133-
}
134-
135-
setExpandedKeys([...expandedKeys, key]);
136-
addTreeNodeChildren(key, generateDefaultNode());
88+
<div className="tree">
89+
<StyledTree
90+
draggable={true}
91+
blockNode={true}
92+
selectedKeys={selectedNode ? [selectedNode.key] : []}
93+
expandedKeys={expandedKeys}
94+
onExpand={(expandedKeys) => {
95+
setExpandedKeys(expandedKeys);
96+
}}
97+
treeData={treeData}
98+
icons={{
99+
switcherIcon: <IconDown />,
100+
}}
101+
renderTitle={(props) => (
102+
<Trigger
103+
position="br"
104+
popupAlign={{
105+
right: [20, 20],
137106
}}
138-
/>
139-
);
140-
}}
141-
onDrop={({ dragNode, dropNode, dropPosition }) => {
142-
moveTreeNode(dragNode, dropNode, dropPosition);
143-
}}
144-
/>
145-
</div>
107+
popup={() => (
108+
<StyledMenu>
109+
<Menu.Item
110+
key="del"
111+
onClick={(e) => {
112+
stopPropagation(e);
113+
if (props.dataRef && props.dataRef.key) {
114+
deleteTreeNode(props.dataRef.key);
115+
}
116+
}}
117+
>
118+
Delete
119+
</Menu.Item>
120+
</StyledMenu>
121+
)}
122+
trigger={'contextMenu'}
123+
>
124+
<div>{props.title}</div>
125+
</Trigger>
126+
)}
127+
onSelect={(_, extra) => {
128+
const nodeData = extra.node.props.dataRef;
129+
if (nodeData) {
130+
setSelectedNode(nodeData as WebsiteTreeNode);
131+
}
132+
}}
133+
renderExtra={(node) => {
134+
return (
135+
<IconPlus
136+
className="add-icon"
137+
onClick={() => {
138+
if (!node.dataRef) {
139+
return;
140+
}
141+
142+
const key = node.dataRef.key;
143+
if (!key) {
144+
return;
145+
}
146+
147+
setExpandedKeys([...expandedKeys, key]);
148+
addTreeNodeChildren(key, generateDefaultNode());
149+
}}
150+
/>
151+
);
152+
}}
153+
onDrop={({ dragNode, dropNode, dropPosition }) => {
154+
moveTreeNode(dragNode, dropNode, dropPosition);
155+
}}
156+
/>
157+
</div>
158+
</Root>
146159
);
147160
});
148161
SideTree.displayName = 'SideTree';

0 commit comments

Comments
 (0)