diff --git a/README.md b/README.md index 86f8005..ad5cc9a 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ interface BehaviorNodeTypeModel { ```shell npm install # 安装依赖 npm start # 运行测试 -npm run build # 编译exe可执行文件 +npm run dist # 编译exe可执行文件 ``` ## 技术栈 @@ -53,12 +53,9 @@ npm run build # 编译exe可执行文件 + js/ts版本 计划中。 ## TODO -+ 复制粘贴功能(跨工作区) + 历史记录(撤销/恢复) + 资源面板支持树型结构 -+ 快捷键功能 + 右键菜单 -+ 联调功能 ## About 目前编辑器还处于非常简陋的阶段,有问题可以联系作者(QQ1013299930),本项目将长期维护,望前端大佬们多提点~ \ No newline at end of file diff --git a/render-process/Properties.tsx b/render-process/Properties.tsx index 0b3c86c..9c40bca 100644 --- a/render-process/Properties.tsx +++ b/render-process/Properties.tsx @@ -131,7 +131,7 @@ class FileDataNode implements DataNode { interface PropertiesState { root: FileDataNode; searchKey: string; - defaultExpandedKeys:string[]; + defaultExpandedKeys: string[]; expandedKeys: string[]; autoExpandParent: boolean; rightClickNode: { @@ -155,7 +155,7 @@ export default class Properties extends Component { searchKey: "", rightClickNode: null, expandedKeys: [], - defaultExpandedKeys:[], + defaultExpandedKeys: [], autoExpandParent: true, }; @@ -175,15 +175,25 @@ export default class Properties extends Component { this.forceUpdate(); }); + ipcRenderer.on(MainEventType.OPEN_DIR, (event: any, workdir: any, workspace: string) => { + console.log("prop on open workspace", workspace); + this.updateRoot(); + this.forceUpdate(); + }); + + this.updateRoot(); + } + + updateRoot() { var workdir = this.props.workdir; if (!workdir || workdir === "") { return; } const root = this.getRootNode(workdir); root.expandSelf(); - this.setState({ - root: root , - expandedKeys : [root.key], + this.setState({ + root: root, + expandedKeys: [root.key], defaultExpandedKeys: [root.key] }); } @@ -222,7 +232,7 @@ export default class Properties extends Component { const expandedKeys = this.state.root .getList() .map((item) => { - if(!item.isLeaf) + if (!item.isLeaf) return null; const title = item.title as string; if (title.includes(value) && item.parent) { @@ -231,7 +241,7 @@ export default class Properties extends Component { return null; }) .filter((item, i, self) => item && self.indexOf(item) === i); - if (value && value.length>0) { + if (value && value.length > 0) { this.setState({ searchKey: value, expandedKeys: expandedKeys, @@ -255,7 +265,7 @@ export default class Properties extends Component { return nodeKey.includes(searchKey); } - titleRender(node:DataNode):React.ReactNode{ + titleRender(node: DataNode): React.ReactNode { const titleStr = node.title as string; const searchKey = this.state.searchKey; const index = titleStr.indexOf(searchKey); @@ -265,30 +275,30 @@ export default class Properties extends Component { //return ({titleStr}) return index > -1 ? ( - {beforeStr} - {searchKey} - {afterStr} + {beforeStr} + {searchKey} + {afterStr} - ) : ( - {titleStr} - ); + ) : ( + {titleStr} + ); } - handleOnLoadData(loadNode:EventDataNode) { + handleOnLoadData(loadNode: EventDataNode) { return new Promise((resolve) => { - const root = this.state.root; + const root = this.state.root; - const node = root.findChild(loadNode.key as string); - if (node) { - node.expandSelf(); - this.setState({ root: root }); - this.forceUpdate(); - } + const node = root.findChild(loadNode.key as string); + if (node) { + node.expandSelf(); + this.setState({ root: root }); + this.forceUpdate(); + } - resolve(); - return; + resolve(); + return; }); - } + } render() { console.log("render Properties"); @@ -322,8 +332,8 @@ export default class Properties extends Component { onExpand={(keys, info) => { console.log("onExpand", info); this.setState({ - expandedKeys:keys, - autoExpandParent:false + expandedKeys: keys, + autoExpandParent: false }) // if (info.expanded && !info.node.expanded) { // //let newRoot = _.cloneDeep(root); @@ -339,7 +349,7 @@ export default class Properties extends Component { > ) : ( - `Work Dir (${workdir}) Empty` - ); + `Work Dir (${workdir}) Empty` + ); } }