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);
|
||||
// Check if localStorage has previously saved visit data.
|
||||
// If saved node positions exist, restore them for rendering.
|
||||
if (
|
||||
localStorage.getItem(SAVE_KEY_NAME) &&
|
||||
JSON.parse(localStorage.getItem(SAVE_KEY_NAME))
|
||||
) {
|
||||
const allGraphsRemembered = JSON.parse(
|
||||
localStorage.getItem(SAVE_KEY_NAME),
|
||||
);
|
||||
const currentGraphNodesRemembered = allGraphsRemembered[
|
||||
cytoscapeStore.currentGraphId
|
||||
]
|
||||
? allGraphsRemembered[cytoscapeStore.currentGraphId][rank]
|
||||
: null; // May be undefined
|
||||
if (currentGraphNodesRemembered) {
|
||||
currentGraphNodesRemembered.forEach((nodeRemembered) => {
|
||||
const nodeToDecide = cy.getElementById(nodeRemembered.id);
|
||||
if (nodeToDecide) {
|
||||
nodeToDecide.position(nodeRemembered.position);
|
||||
}
|
||||
});
|
||||
try {
|
||||
const raw = localStorage.getItem(SAVE_KEY_NAME);
|
||||
if (raw) {
|
||||
const allGraphsRemembered = JSON.parse(raw);
|
||||
const currentGraphNodesRemembered = allGraphsRemembered[
|
||||
cytoscapeStore.currentGraphId
|
||||
]
|
||||
? allGraphsRemembered[cytoscapeStore.currentGraphId][rank]
|
||||
: null; // May be undefined
|
||||
if (currentGraphNodesRemembered) {
|
||||
currentGraphNodesRemembered.forEach((nodeRemembered) => {
|
||||
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
|
||||
const allNodes = cy.nodes();
|
||||
|
||||
Reference in New Issue
Block a user