fix: inline rename uses .tree-item-text span instead of direct text node
This commit is contained in:
+8
-11
@@ -843,13 +843,14 @@ const FileOperations = {
|
||||
return;
|
||||
}
|
||||
|
||||
const textNode = Array.from(item.childNodes).find((node) => node.nodeType === Node.TEXT_NODE && node.textContent.trim());
|
||||
if (!textNode) {
|
||||
// Find the text span (.tree-item-text) — tree items use spans, not direct text nodes
|
||||
const textSpan = item.querySelector('.tree-item-text');
|
||||
if (!textSpan) {
|
||||
showToast('Impossible de renommer cet élément', 'error');
|
||||
return;
|
||||
}
|
||||
|
||||
const originalText = textNode.textContent;
|
||||
const originalText = textSpan.textContent;
|
||||
const trimmedOriginal = originalText.trim();
|
||||
const currentName = path.split('/').pop() || trimmedOriginal;
|
||||
const baseName = type === 'file' ? currentName.replace(/(\.[^./\\]+)$/i, '') : currentName;
|
||||
@@ -860,17 +861,13 @@ const FileOperations = {
|
||||
input.className = 'sidebar-item-input';
|
||||
input.value = baseName;
|
||||
|
||||
textNode.textContent = ' ';
|
||||
const badge = item.querySelector('.badge-small');
|
||||
if (badge) {
|
||||
item.insertBefore(input, badge);
|
||||
} else {
|
||||
item.appendChild(input);
|
||||
}
|
||||
// Hide the text span, show input
|
||||
textSpan.style.display = 'none';
|
||||
textSpan.insertAdjacentElement('afterend', input);
|
||||
|
||||
const restore = () => {
|
||||
input.remove();
|
||||
textNode.textContent = originalText;
|
||||
textSpan.style.display = '';
|
||||
};
|
||||
|
||||
const validateName = (name) => {
|
||||
|
||||
Reference in New Issue
Block a user