restore previous inspector when switch edit file
This commit is contained in:
1 parent
f9dbbae293
commit
815155a5ee
2 files changed
+22
-11
No files matched your search
@@ -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),
|
||||||
|
|||||||
@@ -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,8 +391,11 @@ 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) {
|
||||||
|
if (editor.editNode) {
|
||||||
|
workspace.onEditingNode(editor.editNode);
|
||||||
|
} else {
|
||||||
set({
|
set({
|
||||||
editingTree: {
|
editingTree: {
|
||||||
data: {
|
data: {
|
||||||
@@ -400,6 +405,7 @@ export const useWorkspace = create<WorkspaceStore>((set, get) => ({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
}
|
||||||
} 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
|
||||||
|
|||||||
Reference in new issue
Block a user