Skip to content

Commit 8ddd550

Browse files
committed
Add a check for leading or trailing spaces in the parent directory on the "Add New File" page.
1 parent f34a0b9 commit 8ddd550

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

web_src/js/features/repo-editor.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ export function initRepoEditor() {
7676
filenameInput.addEventListener('input', function () {
7777
const parts = filenameInput.value.split('/');
7878
if (parts.length > 1) {
79+
let containSpace = false;
7980
for (let i = 0; i < parts.length; ++i) {
8081
const value = parts[i];
8182
if (i < parts.length - 1) {
@@ -87,6 +88,24 @@ export function initRepoEditor() {
8788
filenameInput.value = value;
8889
}
8990
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';
90109
}
91110
}
92111
joinTreePath();

0 commit comments

Comments
 (0)