@@ -76,6 +76,7 @@ export function initRepoEditor() {
76
76
filenameInput . addEventListener ( 'input' , function ( ) {
77
77
const parts = filenameInput . value . split ( '/' ) ;
78
78
if ( parts . length > 1 ) {
79
+ let containSpace = false ;
79
80
for ( let i = 0 ; i < parts . length ; ++ i ) {
80
81
const value = parts [ i ] ;
81
82
if ( i < parts . length - 1 ) {
@@ -87,6 +88,24 @@ export function initRepoEditor() {
87
88
filenameInput . value = value ;
88
89
}
89
90
this . setSelectionRange ( 0 , 0 ) ;
91
+ containSpace |= value . trim ( ) !== value ;
92
+ }
93
+ let warningDiv = document . querySelector ( '.ui.warning.message.flash-message.flash-warning' ) ;
94
+ containSpace |= Array . from ( links ) . some ( ( link ) => {
95
+ const value = link . querySelector ( 'a' ) . textContent ;
96
+ return value . trim ( ) !== value ;
97
+ } ) ;
98
+ if ( containSpace ) {
99
+ if ( ! warningDiv ) {
100
+ warningDiv = document . createElement ( 'div' ) ;
101
+ warningDiv . classList . add ( 'ui' , 'warning' , 'message' , 'flash-message' , 'flash-warning' ) ;
102
+ warningDiv . innerHTML = '<p>Parent directory contains leading or trailing whitespace.</p>' ;
103
+ const inputContainer = document . querySelector ( '.repo-editor-header' ) ;
104
+ inputContainer . insertAdjacentElement ( 'beforebegin' , warningDiv ) ;
105
+ }
106
+ warningDiv . style . display = 'block' ;
107
+ } else if ( warningDiv ) {
108
+ warningDiv . style . display = 'none' ;
90
109
}
91
110
}
92
111
joinTreePath ( ) ;
0 commit comments