@@ -2259,18 +2259,37 @@ function createNewRepoInHTML() {
22592259
22602260 // if another repo in the current directory
22612261 // has the same name, add a differentiating number
2262- fileWrapper . querySelectorAll ( '.item.repo' ) . forEach ( repoElem => {
2263-
2264- if ( repoElem !== repoEl
2265- && ( repoName === repoElem . querySelector ( '.name' ) . textContent ) ) {
2266-
2267- // add a differentiating number
2268- // to repo name
2269- repoName = repoName + '-1' ;
2270-
2271- }
2272-
2273- } ) ;
2262+
2263+ let nameIndex = 1 ;
2264+
2265+ while ( repoNameExists ( repoName ) ) {
2266+
2267+ // add a differentiating number
2268+ // to repo name
2269+ repoName = repoName + '-' + nameIndex ;
2270+
2271+ nameIndex ++ ;
2272+
2273+ }
2274+
2275+ function repoNameExists ( name ) {
2276+
2277+ fileWrapper . querySelectorAll ( '.item.repo' ) . forEach ( repoElem => {
2278+
2279+ const currRepoName = repoElem . querySelector ( '.name' ) . textContent ;
2280+
2281+ if ( repoEl !== repoElem &&
2282+ name === currRepoName ) {
2283+
2284+ return true ;
2285+
2286+ }
2287+
2288+ } ) ;
2289+
2290+ return false ;
2291+
2292+ }
22742293
22752294 repoEl . querySelector ( '.name' ) . textContent = repoName ;
22762295
@@ -2403,21 +2422,40 @@ function createNewFileInHTML() {
24032422
24042423 // if another file in the current directory
24052424 // has the same name, add a differentiating number
2406- fileWrapper . querySelectorAll ( '.item.file' ) . forEach ( fileElem => {
2407-
2408- if ( fileElem !== fileEl
2409- && ( fileName === fileElem . querySelector ( '.name' ) . textContent ) ) {
2410-
2411- // split extension from file name
2412- fileName = splitFileName ( fileName ) ;
2413-
2414- // add a differentiating number
2415- // and reconstruct file name
2416- fileName = fileName [ 0 ] + '-1' + ( fileName [ 1 ] !== 'none' ? ( '.' + fileName [ 1 ] ) : '' ) ;
2425+
2426+ let nameIndex = 1 ;
2427+
2428+ while ( fileNameExists ( fileName ) ) {
2429+
2430+ // split extension from file name
2431+ fileName = splitFileName ( fileName ) ;
24172432
2418- }
2433+ // add a differentiating number
2434+ // and reconstruct file name
2435+ fileName = fileName [ 0 ] + '-' + nameIndex + ( fileName [ 1 ] !== 'none' ? ( '.' + fileName [ 1 ] ) : '' ) ;
24192436
2420- } ) ;
2437+ nameIndex ++ ;
2438+
2439+ }
2440+
2441+ function fileNameExists ( name ) {
2442+
2443+ fileWrapper . querySelectorAll ( '.item.file' ) . forEach ( fileElem => {
2444+
2445+ const currFileName = fileElem . querySelector ( '.name' ) . textContent ;
2446+
2447+ if ( fileEl !== fileElem &&
2448+ name === currFileName ) {
2449+
2450+ return true ;
2451+
2452+ }
2453+
2454+ } ) ;
2455+
2456+ return false ;
2457+
2458+ }
24212459
24222460
24232461 let commitMessage = 'Create ' + fileName ;
0 commit comments