1- import React , { memo , useCallback , useMemo , useState } from "react" ;
1+ import React , { memo , useCallback , useMemo , useReducer , useState } from "react" ;
22
33import styled from "@emotion/styled" ;
44import { TreeView } from "@editor-ui/editor" ;
5- import { ListView } from "@editor-ui/listview" ;
65import { LayerRow } from "./editor-layer-hierarchy-item" ;
76import { useEditorState } from "core/states" ;
7+ import { useDispatch } from "core/dispatch" ;
88
99export function EditorLayerHierarchy ( ) {
1010 const [ state ] = useEditorState ( ) ;
11+ const dispatch = useDispatch ( ) ;
1112 const root = state . design ?. current ?. entry ;
1213 const layers = root ? flatten ( root ) : [ ] ;
13- const [ selected , setSelected ] = useState < string | null > ( null ) ;
1414
1515 const renderItem = useCallback (
1616 ( { id, name, depth } ) => {
@@ -21,19 +21,19 @@ export function EditorLayerHierarchy() {
2121 id = { id }
2222 expanded = { haschildren ( id ) == true ? true : undefined }
2323 key = { id }
24- selected = { selected == id }
24+ selected = { state ?. selectedNodes ?. includes ( id ) }
2525 onAddClick = { ( ) => { } }
2626 onMenuClick = { ( ) => { } }
2727 onDoubleClick = { ( ) => { } }
2828 onPress = { ( ) => {
29- setSelected ( id ) ;
29+ dispatch ( { type : "select-node" , node : id } ) ;
3030 } }
3131 onSelectMenuItem = { ( ) => { } }
3232 onContextMenu = { ( ) => { } }
3333 />
3434 ) ;
3535 } ,
36- [ selected ]
36+ [ state ?. selectedNodes ]
3737 ) ;
3838
3939 const haschildren = useCallback ( ( id : string ) => {
0 commit comments