restore previous inspector when switch edit file

This commit is contained in:
codetypes committed 2024-05-23 11:01:25 +08:00
1 parent f9dbbae293
commit 815155a5ee
2 files changed
+30 -19

No files matched your search

-7
View File
@@ -390,12 +390,6 @@ export const Editor: FC<EditorProps> = ({ onUpdate: updateState, data: editor, .
}; };
const selectNode = (id: string | null) => { const selectNode = (id: string | null) => {
if (id && id === editor.selectedId) {
setItemState(editor.selectedId, "selected", true);
setItemState(editor.selectedId, "hover", false);
return;
}
if (editor.selectedId) { if (editor.selectedId) {
setItemState(editor.selectedId, "selected", false); setItemState(editor.selectedId, "selected", false);
setItemState(editor.selectedId, "hover", false); setItemState(editor.selectedId, "hover", false);
@@ -405,7 +399,6 @@ export const Editor: FC<EditorProps> = ({ onUpdate: updateState, data: editor, .
if (editor.selectedId) { if (editor.selectedId) {
const data = findDataById(editor.selectedId); const data = findDataById(editor.selectedId);
workspace.onEditingTree(null);
workspace.onEditingNode({ workspace.onEditingNode({
data: b3util.createNode(data, false), data: b3util.createNode(data, false),
editable: !isSubtreeNode(data), editable: !isSubtreeNode(data),
+30 -12
View File
@@ -56,6 +56,8 @@ export class EditorStore {
graphMatrix?: Matrix; graphMatrix?: Matrix;
graph!: TreeGraph; graph!: TreeGraph;
editNode: EditNode | null = null;
dispatch!: (event: EditEvent, data?: unknown) => void; dispatch!: (event: EditEvent, data?: unknown) => void;
constructor(path: string) { constructor(path: string) {
@@ -389,17 +391,21 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
edit: (path) => { edit: (path) => {
const workspace = get(); const workspace = get();
const editor = workspace.editors.find((v) => v.path === path); const editor = workspace.editors.find((v) => v.path === path);
set({ editing: editor, editingNode: null }); set({ editing: editor, editingNode: null, editingTree: null });
if (editor) { if (editor) {
set({ if (editor.editNode) {
editingTree: { workspace.onEditingNode(editor.editNode);
data: { } else {
name: editor.name, set({
desc: editor.desc, editingTree: {
root: null!, data: {
name: editor.name,
desc: editor.desc,
root: null!,
},
}, },
}, });
}); }
} else { } else {
set({ editingNode: null, editingTree: null }); set({ editingNode: null, editingTree: null });
} }
@@ -534,16 +540,28 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
// node edit // node edit
onEditingNode: (node) => { onEditingNode: (node) => {
set({ editingNode: node, editingNodeDef: null }); const workspace = get();
if (workspace.editing) {
workspace.editing.editNode = node;
}
set({ editingNode: node, editingNodeDef: null, editingTree: null });
}, },
onEditingNodeDef: (nodeDef) => { onEditingNodeDef: (nodeDef) => {
set({ editingNodeDef: nodeDef }); const workspace = get();
if (workspace.editing) {
workspace.editing.editNode = null;
}
set({ editingNodeDef: nodeDef, editingNode: null, editingTree: null });
}, },
// tree edit // tree edit
onEditingTree: (tree) => { onEditingTree: (tree) => {
set({ editingTree: tree, editingNodeDef: null }); const workspace = get();
if (workspace.editing) {
workspace.editing.editNode = null;
}
set({ editingTree: tree, editingNodeDef: null, editingNode: null });
}, },
// node def // node def