@@ -1351,15 +1351,48 @@ async function loadFileInHTML(fileEl, fileSha) {
13511351 let resp = await git . getFile ( treeLoc , fileName ) ;
13521352
13531353
1354+ const currSelectedFileName = fileWrapper . querySelector ( '.selected .name' ) . textContent . replaceAll ( '\n' , '' ) ;
1355+
13541356 // if switched file or directory while loading, return
1355- if ( selectedFile . name !== fileName ||
1356- selectedFile . dir !== fileDir ) {
1357+ if ( treeLoc . join ( ) !== fileDir ||
1358+ currSelectedFileName !== fileName ) {
13571359
13581360 return ;
13591361
13601362 }
13611363
13621364
1365+ // if file dosen't exist
1366+ if ( resp . message && resp . message === 'Not Found' ) {
1367+
1368+ // stop loading
1369+ stopLoading ( ) ;
1370+
1371+ // remove file from HTML
1372+ if ( fileEl ) fileEl . remove ( ) ;
1373+
1374+ // if previous file selection exists
1375+ if ( selectedFile . sha ) {
1376+
1377+ const prevSelFileEl = fileWrapper . querySelector ( '.item[sha="' + selectedFile . sha + '"]' ) ;
1378+
1379+ // if previous file selection exists in HTML
1380+ if ( prevSelFileEl ) {
1381+
1382+ // load previous selected file
1383+ loadFileInHTML ( prevSelFileEl , selectedFile . sha ) ;
1384+
1385+ }
1386+
1387+ }
1388+
1389+ showMessage ( 'Hmm... that file dosen\'t exist.' , 5000 ) ;
1390+
1391+ return ;
1392+
1393+ }
1394+
1395+
13631396 // if file is over 1MB
13641397 if ( resp . size >= 1000000 && resp . content === '' ) {
13651398
@@ -2988,45 +3021,6 @@ async function protectUnsavedCode() {
29883021 // scroll to pos in code
29893022 cd . scrollTo ( scrollPos [ 0 ] , scrollPos [ 1 ] ) ;
29903023
2991- } else {
2992-
2993- // if the selected file was deleted,
2994- // protect unsaved code by clearing codeit
2995-
2996- // clear codeit contents
2997- cd . textContent = '\r\n' ;
2998-
2999- // change codeit lang
3000- cd . lang = '' ;
3001-
3002- // clear codeit history
3003- cd . history . records = [ { html : cd . innerHTML , pos : cd . getSelection ( ) } ] ;
3004- cd . history . pos = 0 ;
3005-
3006- // update line numbers
3007- updateLineNumbersHTML ( ) ;
3008-
3009- // if on mobile, show sidebar
3010- if ( isMobile ) {
3011-
3012- // don't transition
3013- body . classList . add ( 'notransition' ) ;
3014-
3015- // show sidebar
3016- toggleSidebar ( true ) ;
3017- saveSidebarStateLS ( ) ;
3018-
3019- onNextFrame ( ( ) => {
3020-
3021- body . classList . remove ( 'notransition' ) ;
3022-
3023- } ) ;
3024-
3025- }
3026-
3027- // change selected file to empty file
3028- changeSelectedFile ( '' , '' , '' , '' , '' , [ 0 , 0 ] , [ 0 , 0 ] , false ) ;
3029-
30303024 }
30313025
30323026 } else {
0 commit comments