@@ -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