Skip to content

Commit d2facc1

Browse files
author
Incharajayaram
committed
Fix: Add robust error handling for localStorage operations
1 parent b64690e commit d2facc1

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

src/pages/EditorComponent.js

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -133,24 +133,34 @@ function EditorComponent() {
133133
DEFAULT_LANGUAGE: selectedLanguage.DEFAULT_LANGUAGE,
134134
NAME: selectedLanguage.NAME,
135135
});
136-
const savedCode = localStorage.getItem(`code-${selectedLanguage.DEFAULT_LANGUAGE}`);
137-
if (savedCode !== null) {
138-
setCode(savedCode);
139-
} else {
140-
setCode(selectedLanguage.HELLO_WORLD);
141-
}
142-
}, [currentLanguage]);
136+
let savedCode = null;
137+
try {
138+
savedCode = localStorage.getItem(`code-${selectedLanguage.DEFAULT_LANGUAGE}`);
139+
} catch (e) {
140+
enqueueSnackbar("Failed to load saved code. Local storage might be unavailable.", { variant: "error" });
141+
console.error("Local storage load error:", e);
142+
}
143+
144+
if (savedCode !== null) {
145+
setCode(savedCode);
146+
} else {
147+
setCode(selectedLanguage.HELLO_WORLD);
148+
} }, [currentLanguage]);
143149

144150
useEffect(() => {
145151
if (isImportingRef.current) return;
146152

147153
const handler = setTimeout(() => {
148-
if (code) {
149-
localStorage.setItem(`code-${currentLanguage}`, code);
150-
} else {
151-
localStorage.removeItem(`code-${currentLanguage}`);
152-
}
153-
}, 500); // 500ms debounce
154+
try {
155+
if (code) {
156+
localStorage.setItem(`code-${currentLanguage}`, code);
157+
} else {
158+
localStorage.removeItem(`code-${currentLanguage}`);
159+
}
160+
} catch (e) {
161+
enqueueSnackbar("Failed to save code automatically. Local storage might be full or unavailable.", { variant: "error" });
162+
console.error("Local storage save error:", e);
163+
} }, 500); // 500ms debounce
154164

155165
return () => {
156166
clearTimeout(handler);

0 commit comments

Comments
 (0)