Skip to content

Commit 8195e81

Browse files
committed
feat: record tree expend keys
1 parent 52243f8 commit 8195e81

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

src/renderer/components/SideTree.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,13 @@ export const SideTree: React.FC = React.memo(() => {
5959
const {
6060
treeData,
6161
selectedNode,
62+
expandedKeys,
63+
setExpandedKeys,
6264
moveTreeNode,
6365
setSelectedNode,
6466
addTreeNodeChildren,
6567
deleteTreeNode,
6668
} = useTreeStore();
67-
const [expandedKeys, setExpandedKeys] = useState<string[]>([]);
6869

6970
return (
7071
<div>

src/renderer/store/tree.ts

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ export type WebsiteTreeNode = {
1818
interface TreeStoreState {
1919
selectedNode: WebsiteTreeNode | null;
2020
treeData: WebsiteTreeNode[];
21+
expandedKeys: string[];
2122
setSelectedNode: (selectedNode: WebsiteTreeNode | null) => void;
2223
setTreeData: (treeData: WebsiteTreeNode[]) => void;
24+
setExpandedKeys: (expandedKeys: string[]) => void;
2325
addTreeNode: (treeNode: WebsiteTreeNode) => void;
2426
addTreeNodeChildren: (parentKey: string, treeNode: WebsiteTreeNode) => void;
2527
moveTreeNode: (
@@ -63,6 +65,7 @@ export const useTreeStore = create<TreeStoreState>()(
6365
immer((set) => ({
6466
treeData: defaultTreeData,
6567
selectedNode: null,
68+
expandedKeys: [],
6669
setSelectedNode: (selectedNode: WebsiteTreeNode | null) => {
6770
set({
6871
selectedNode,
@@ -73,6 +76,11 @@ export const useTreeStore = create<TreeStoreState>()(
7376
treeData,
7477
});
7578
},
79+
setExpandedKeys: (expandedKeys: string[]) => {
80+
set({
81+
expandedKeys,
82+
});
83+
},
7684
addTreeNode: (treeNode: WebsiteTreeNode) => {
7785
set((state) => {
7886
state.treeData.push(treeNode);
@@ -181,7 +189,10 @@ export const useTreeStore = create<TreeStoreState>()(
181189
})),
182190
{
183191
name: 'webbox-tree',
184-
partialize: (state) => ({ treeData: state.treeData }),
192+
partialize: (state) => ({
193+
treeData: state.treeData,
194+
expandedKeys: state.expandedKeys,
195+
}),
185196
}
186197
)
187198
);

0 commit comments

Comments
 (0)