Fix cytoscapeStore: preserve positions, guard access, remove redundant write

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-09 14:10:27 +08:00
parent 8e6ba876e3
commit 5f597961c6

View File

@@ -64,7 +64,6 @@ export const useCytoscapeStore = defineStore('cytoscapeStore', {
} else {
this.nodePositions[this.currentGraphId][direction]
.push({ id: nodeId, position: position });
localStorage.setItem(SAVE_KEY_NAME, JSON.stringify(this.nodePositions));
}
this.savePositionsToStorage();
},
@@ -73,6 +72,7 @@ export const useCytoscapeStore = defineStore('cytoscapeStore', {
* @param {string} direction - Layout direction ('TB' or 'LR').
*/
loadPositionsFromStorage(direction: string) {
if (!this.nodePositions[this.currentGraphId]) return;
try {
const raw = localStorage.getItem(SAVE_KEY_NAME);
if (raw) {
@@ -94,12 +94,9 @@ export const useCytoscapeStore = defineStore('cytoscapeStore', {
},
setCurrentGraphId(currentGraphId: string) {
this.currentGraphId = currentGraphId;
this.nodePositions = {
[this.currentGraphId]: {
'TB': [],
'LR': [],
if (!this.nodePositions[currentGraphId]) {
this.nodePositions[currentGraphId] = { TB: [], LR: [] };
}
};
},
},
});