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