@@ -560,6 +560,8 @@ async function renderSidebarHTML() {
560560 }
561561
562562
563+ protectModFileInSidebar ( file . sha , file . name ) ;
564+
563565 // add modified flag to file
564566 let modified = '' ;
565567 if ( modifiedFiles [ file . sha ] &&
@@ -1316,35 +1318,17 @@ async function loadFileInHTML(fileEl, fileSha) {
13161318
13171319 }
13181320
1319-
1320- // if file is not modified
1321- if ( ! modifiedFiles [ fileSha ] ) {
13221321
1323- const fileName = fileEl . querySelector ( '.name' ) . textContent . replaceAll ( '\n' , '' ) ;
1322+ const fileName = fileEl . querySelector ( '.name' ) . textContent . replaceAll ( '\n' , '' ) ;
13241323
1325- // check if old modified file
1326- // with same name and directory exists
1327- const oldModFile = Object . values ( modifiedFiles ) . filter ( modFile => ( modFile . dir === treeLoc . join ( ) && modFile . name === fileName && ! modFile . eclipsed ) ) [ 0 ] ;
1324+ protectModFileInSidebar ( fileSha , fileName ) ;
1325+
1326+ // if file is modified
1327+ if ( modifiedFiles [ fileSha ] && ! modifiedFiles [ fileSha ] . eclipsed &&
1328+ ! fileEl . classList . contains ( 'modified' ) ) {
13281329
1329- if ( oldModFile ) {
1330-
1331- const oldFileSha = oldModFile . sha ;
1332-
1333- // update old modified file with new sha
1334- oldModFile . sha = fileSha ;
1335-
1336- // save new modified file in local storage
1337- modifiedFiles [ fileSha ] = oldModFile ;
1338-
1339- // delete old modified file
1340- delete modifiedFiles [ oldFileSha ] ;
1341-
1342- updateModFilesLS ( ) ;
1343-
1344- // show modified file in HTML
1345- fileEl . classList . add ( 'modified' ) ;
1346-
1347- }
1330+ // update file in HTML
1331+ fileEl . classList . add ( 'modified' ) ;
13481332
13491333 }
13501334
@@ -1357,8 +1341,6 @@ async function loadFileInHTML(fileEl, fileSha) {
13571341 startLoading ( ) ;
13581342 }
13591343
1360- const fileName = fileEl . querySelector ( '.name' ) . textContent . replaceAll ( '\n' , '' ) ;
1361-
13621344 // get file from git
13631345 let resp = await git . getFile ( treeLoc , fileName ) ;
13641346
@@ -2965,6 +2947,36 @@ function protectUnsavedCode() {
29652947
29662948}
29672949
2950+ function protectModFileInSidebar ( fileSha , fileName ) {
2951+
2952+ // if file is not modified
2953+ if ( ! modifiedFiles [ fileSha ] ) {
2954+
2955+ // check if old modified file
2956+ // with same name and directory exists
2957+ const oldModFile = Object . values ( modifiedFiles ) . filter ( modFile => ( modFile . dir === treeLoc . join ( ) && modFile . name === fileName && ! modFile . eclipsed ) ) [ 0 ] ;
2958+
2959+ if ( oldModFile ) {
2960+
2961+ const oldFileSha = oldModFile . sha ;
2962+
2963+ // update old modified file with new sha
2964+ oldModFile . sha = fileSha ;
2965+
2966+ // save new modified file in local storage
2967+ modifiedFiles [ fileSha ] = oldModFile ;
2968+
2969+ // delete old modified file
2970+ delete modifiedFiles [ oldFileSha ] ;
2971+
2972+ updateModFilesLS ( ) ;
2973+
2974+ }
2975+
2976+ }
2977+
2978+ }
2979+
29682980function setupEditor ( ) {
29692981
29702982 // if code in storage
0 commit comments