Fix missing bounds checks, unsafe JSON.parse, and cleanup issues
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -73,11 +73,17 @@ export const useCytoscapeStore = defineStore('cytoscapeStore', {
|
||||
* @param {string} direction - Layout direction ('TB' or 'LR').
|
||||
*/
|
||||
loadPositionsFromStorage(direction: string) {
|
||||
if (localStorage.getItem(SAVE_KEY_NAME) &&
|
||||
JSON.parse(
|
||||
localStorage.getItem(SAVE_KEY_NAME))[this.currentGraphId]) {
|
||||
this.nodePositions[this.currentGraphId][direction] = JSON.parse(
|
||||
localStorage.getItem(SAVE_KEY_NAME))[this.currentGraphId][direction];
|
||||
try {
|
||||
const raw = localStorage.getItem(SAVE_KEY_NAME);
|
||||
if (raw) {
|
||||
const parsed = JSON.parse(raw);
|
||||
if (parsed[this.currentGraphId]) {
|
||||
this.nodePositions[this.currentGraphId][direction] =
|
||||
parsed[this.currentGraphId][direction];
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
// Corrupted localStorage data; ignore and use defaults
|
||||
}
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -174,8 +174,10 @@ export const useFilesStore = defineStore("filesStore", {
|
||||
// msg: 'not in UTF-8' | 'insufficient columns' | 'the csv file is empty' | 'the filename does not ends with .csv'
|
||||
// type: 'encoding' | 'insufficient_columns' | 'empty' | 'name_suffix'
|
||||
const detail = error.response.data.detail;
|
||||
|
||||
uploadFailedFirst(detail[0].type, detail[0].msg, detail[0].loc[2]);
|
||||
if (Array.isArray(detail) && detail.length > 0) {
|
||||
const loc = detail[0].loc;
|
||||
uploadFailedFirst(detail[0].type, detail[0].msg, Array.isArray(loc) && loc.length > 2 ? loc[2] : undefined);
|
||||
}
|
||||
} else {
|
||||
Swal.close(); // Close the loading progress bar
|
||||
apiError(error, "Failed to upload the files.");
|
||||
|
||||
@@ -192,7 +192,7 @@ export const useMapPathStore = defineStore('mapPathStore', {
|
||||
if (listIndex >= curButton.length) { // Bounds check to prevent out-of-range access
|
||||
return; // nodeIndex is the path index in the list after selecting one of the five buttons
|
||||
}
|
||||
if (nodeIndex >= curButton[listIndex]) { // Bounds check to prevent out-of-range access
|
||||
if (nodeIndex >= curButton[listIndex].length) { // Bounds check to prevent out-of-range access
|
||||
return; // The node index within this path in the list
|
||||
}
|
||||
// If `curPath` and `curButton[listIndex]` fully match
|
||||
|
||||
Reference in New Issue
Block a user