support don't export tree
This commit is contained in:
1 parent
815155a5ee
commit
e6483f7743
8 files changed
+38
-27
No files matched your search
@@ -383,8 +383,9 @@ export const Editor: FC<EditorProps> = ({ onUpdate: updateState, data: editor, .
|
||||
};
|
||||
|
||||
const updateTree = (editTree: EditTree) => {
|
||||
if (editor.desc !== editTree.data.desc) {
|
||||
if (editor.desc !== editTree.data.desc || editor.export !== editTree.data.export) {
|
||||
editor.desc = editTree.data.desc || "";
|
||||
editor.export = editTree.data.export !== false;
|
||||
onChange();
|
||||
}
|
||||
};
|
||||
@@ -405,13 +406,7 @@ export const Editor: FC<EditorProps> = ({ onUpdate: updateState, data: editor, .
|
||||
});
|
||||
setItemState(editor.selectedId, "selected", true);
|
||||
} else {
|
||||
workspace.onEditingTree({
|
||||
data: {
|
||||
name: editor.name,
|
||||
desc: editor.desc,
|
||||
root: null!,
|
||||
},
|
||||
});
|
||||
workspace.onEditingTree(editor);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -598,6 +593,7 @@ export const Editor: FC<EditorProps> = ({ onUpdate: updateState, data: editor, .
|
||||
const treeModel = {
|
||||
name: Path.basenameWithoutExt(path),
|
||||
root,
|
||||
export: editor.export,
|
||||
desc: editor.desc,
|
||||
} as TreeModel;
|
||||
fs.writeFileSync(path, JSON.stringify(treeModel, null, 2));
|
||||
|
||||
@@ -38,16 +38,15 @@ const TreeInspector: FC = () => {
|
||||
form.resetFields();
|
||||
form.setFieldValue("name", data.name);
|
||||
form.setFieldValue("desc", data.desc);
|
||||
form.setFieldValue("export", data.export !== false);
|
||||
}, [workspace.editingTree]);
|
||||
|
||||
const finish = (values: any) => {
|
||||
const data = {} as TreeModel;
|
||||
data.name = values.name;
|
||||
data.desc = values.desc || undefined;
|
||||
workspace.editing?.dispatch("updateTree", {
|
||||
data: {
|
||||
name: values.name,
|
||||
desc: values.desc || undefined,
|
||||
export: values.export,
|
||||
},
|
||||
} as EditTree);
|
||||
};
|
||||
@@ -68,6 +67,9 @@ const TreeInspector: FC = () => {
|
||||
<Form.Item name="desc" label={t("tree.desc")}>
|
||||
<TextArea autoSize onBlur={form.submit} />
|
||||
</Form.Item>
|
||||
<Form.Item name="export" label={t("tree.export")} valuePropName="checked">
|
||||
<Switch onChange={() => form.submit()} />
|
||||
</Form.Item>
|
||||
</Form>
|
||||
</div>
|
||||
</>
|
||||
|
||||
@@ -11,6 +11,7 @@ import React from "react";
|
||||
import { create } from "zustand";
|
||||
import { useSetting } from "./setting-context";
|
||||
import { ipcRenderer } from "electron";
|
||||
import { Editor } from "../components/editor";
|
||||
|
||||
let buildDir: string | undefined;
|
||||
|
||||
@@ -42,6 +43,7 @@ export class EditorStore {
|
||||
path: string;
|
||||
data: TreeGraphData;
|
||||
desc: string;
|
||||
export: boolean;
|
||||
name: string;
|
||||
|
||||
autoId: number = 1;
|
||||
@@ -66,6 +68,7 @@ export class EditorStore {
|
||||
const file = readJson(path) as TreeModel;
|
||||
this.data = b3util.createTreeData(file.root);
|
||||
this.desc = file.desc ?? "";
|
||||
this.export = file.export !== false;
|
||||
this.name = file.name || path.slice(0, -5);
|
||||
this.autoId = b3util.refreshTreeDataId(this.data);
|
||||
this.historyStack.push(b3util.createNode(this.data));
|
||||
@@ -153,7 +156,7 @@ export type WorkspaceStore = {
|
||||
|
||||
// edit tree
|
||||
editingTree?: EditTree | null;
|
||||
onEditingTree: (tree: EditTree | null) => void;
|
||||
onEditingTree: (editor: EditorStore) => void;
|
||||
|
||||
// node setting
|
||||
nodeDefs: Map<string, NodeDef>;
|
||||
@@ -275,8 +278,12 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
|
||||
let hasError = false;
|
||||
workspace.allFiles.forEach((file) => {
|
||||
const buildpath = buildDir + "/" + workspace.relative(file.path);
|
||||
console.log("build:", buildpath);
|
||||
const treeModel = b3util.createBuildData(file.path);
|
||||
if (treeModel && treeModel.export === false) {
|
||||
console.log("skip:", buildpath);
|
||||
return;
|
||||
}
|
||||
console.log("build:", buildpath);
|
||||
if (!b3util.checkNodeData(treeModel?.root)) {
|
||||
hasError = true;
|
||||
}
|
||||
@@ -396,15 +403,7 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
|
||||
if (editor.editNode) {
|
||||
workspace.onEditingNode(editor.editNode);
|
||||
} else {
|
||||
set({
|
||||
editingTree: {
|
||||
data: {
|
||||
name: editor.name,
|
||||
desc: editor.desc,
|
||||
root: null!,
|
||||
},
|
||||
},
|
||||
});
|
||||
workspace.onEditingTree(editor);
|
||||
}
|
||||
} else {
|
||||
set({ editingNode: null, editingTree: null });
|
||||
@@ -556,12 +555,23 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
|
||||
},
|
||||
|
||||
// tree edit
|
||||
onEditingTree: (tree) => {
|
||||
onEditingTree: (editor) => {
|
||||
const workspace = get();
|
||||
if (workspace.editing) {
|
||||
workspace.editing.editNode = null;
|
||||
}
|
||||
set({ editingTree: tree, editingNodeDef: null, editingNode: null });
|
||||
set({
|
||||
editingTree: {
|
||||
data: {
|
||||
name: editor.name,
|
||||
desc: editor.desc,
|
||||
export: editor.export,
|
||||
root: null!,
|
||||
},
|
||||
},
|
||||
editingNodeDef: null,
|
||||
editingNode: null,
|
||||
});
|
||||
},
|
||||
|
||||
// node def
|
||||
|
||||
@@ -43,6 +43,7 @@ export interface NodeModel {
|
||||
export interface TreeModel {
|
||||
name: string;
|
||||
desc?: string;
|
||||
export?: boolean;
|
||||
root: NodeModel;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user