Wrap localStorage JSON.parse in try-catch in cytoscapeMap
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -328,26 +328,26 @@ export default function cytoscapeMap(
|
|||||||
cytoscapeStore.loadPositionsFromStorage(rank);
|
cytoscapeStore.loadPositionsFromStorage(rank);
|
||||||
// Check if localStorage has previously saved visit data.
|
// Check if localStorage has previously saved visit data.
|
||||||
// If saved node positions exist, restore them for rendering.
|
// If saved node positions exist, restore them for rendering.
|
||||||
if (
|
try {
|
||||||
localStorage.getItem(SAVE_KEY_NAME) &&
|
const raw = localStorage.getItem(SAVE_KEY_NAME);
|
||||||
JSON.parse(localStorage.getItem(SAVE_KEY_NAME))
|
if (raw) {
|
||||||
) {
|
const allGraphsRemembered = JSON.parse(raw);
|
||||||
const allGraphsRemembered = JSON.parse(
|
const currentGraphNodesRemembered = allGraphsRemembered[
|
||||||
localStorage.getItem(SAVE_KEY_NAME),
|
cytoscapeStore.currentGraphId
|
||||||
);
|
]
|
||||||
const currentGraphNodesRemembered = allGraphsRemembered[
|
? allGraphsRemembered[cytoscapeStore.currentGraphId][rank]
|
||||||
cytoscapeStore.currentGraphId
|
: null; // May be undefined
|
||||||
]
|
if (currentGraphNodesRemembered) {
|
||||||
? allGraphsRemembered[cytoscapeStore.currentGraphId][rank]
|
currentGraphNodesRemembered.forEach((nodeRemembered) => {
|
||||||
: null; // May be undefined
|
const nodeToDecide = cy.getElementById(nodeRemembered.id);
|
||||||
if (currentGraphNodesRemembered) {
|
if (nodeToDecide) {
|
||||||
currentGraphNodesRemembered.forEach((nodeRemembered) => {
|
nodeToDecide.position(nodeRemembered.position);
|
||||||
const nodeToDecide = cy.getElementById(nodeRemembered.id);
|
}
|
||||||
if (nodeToDecide) {
|
});
|
||||||
nodeToDecide.position(nodeRemembered.position);
|
}
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
} catch {
|
||||||
|
// Corrupted localStorage data; ignore and use defaults
|
||||||
}
|
}
|
||||||
// Save the current positions of all nodes when the view is first entered
|
// Save the current positions of all nodes when the view is first entered
|
||||||
const allNodes = cy.nodes();
|
const allNodes = cy.nodes();
|
||||||
|
|||||||
Reference in New Issue
Block a user