From fb84cd681f883b0a9f298b9f27afc57c078f0dce Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 24 May 2025 06:29:44 +0200 Subject: [PATCH] auto-git: [change] renderer.js --- renderer.js | 94 ++++++++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/renderer.js b/renderer.js index 094088f..fe1a439 100644 --- a/renderer.js +++ b/renderer.js @@ -198,11 +198,58 @@ folders.forEach(folderObj => { }); } + const folderTitleDrop = document.getElementById('folderTitleDrop'); + const folderTitleArrow = document.getElementById('folderTitleArrow'); + const folderHierarchyDropdown = document.getElementById('folderHierarchyDropdown'); + let isDropdownOpen = false; + + folderTitleDrop.addEventListener('click', async () => { + if (isDropdownOpen) { + closeDropdown(); + return; + } + const selected = await window.electronAPI.getSelected(); + if (!selected || !selected.path) return; + + // Show loading text + folderHierarchyDropdown.textContent = 'Lade Verzeichnis…'; + folderHierarchyDropdown.classList.remove('hidden'); + folderTitleArrow.classList.add('open'); + isDropdownOpen = true; + + // Lade Tree + const tree = await window.electronAPI.getFolderTree(selected.path); + folderHierarchyDropdown.textContent = renderFolderTreeAscii(tree, '.', ''); + }); + function closeDropdown() { folderHierarchyDropdown.classList.add('hidden'); folderTitleArrow.classList.remove('open'); isDropdownOpen = false; } + + // ASCII-Baum: wie bei ChatGPT! + function renderFolderTreeAscii(tree, prefix = '', indent = '') { + if (!Array.isArray(tree)) return ''; + let result = ''; + const lastIdx = tree.length - 1; + tree.forEach((node, i) => { + const isLast = i === lastIdx; + const pointer = isLast ? '└── ' : '├── '; + if (node.type === 'dir') { + result += `${indent}${pointer}${node.name}/\n`; + const newIndent = indent + (isLast ? ' ' : '│ '); + result += renderFolderTreeAscii(node.children, '', newIndent); + } else { + result += `${indent}${pointer}${node.name}\n`; + } + }); + return result; + } + + window.addEventListener('repo-updated', () => { + closeDropdown(); + }); async function renderContent(folderObj) { closeDropdown(); @@ -418,54 +465,7 @@ folders.forEach(folderObj => { }); - const folderTitleDrop = document.getElementById('folderTitleDrop'); - const folderTitleArrow = document.getElementById('folderTitleArrow'); - const folderHierarchyDropdown = document.getElementById('folderHierarchyDropdown'); - let isDropdownOpen = false; - folderTitleDrop.addEventListener('click', async () => { - if (isDropdownOpen) { - closeDropdown(); - return; - } - const selected = await window.electronAPI.getSelected(); - if (!selected || !selected.path) return; - - // Show loading text - folderHierarchyDropdown.textContent = 'Lade Verzeichnis…'; - folderHierarchyDropdown.classList.remove('hidden'); - folderTitleArrow.classList.add('open'); - isDropdownOpen = true; - - // Lade Tree - const tree = await window.electronAPI.getFolderTree(selected.path); - folderHierarchyDropdown.textContent = renderFolderTreeAscii(tree, '.', ''); - }); - - // ASCII-Baum: wie bei ChatGPT! - function renderFolderTreeAscii(tree, prefix = '', indent = '') { - if (!Array.isArray(tree)) return ''; - let result = ''; - const lastIdx = tree.length - 1; - tree.forEach((node, i) => { - const isLast = i === lastIdx; - const pointer = isLast ? '└── ' : '├── '; - if (node.type === 'dir') { - result += `${indent}${pointer}${node.name}/\n`; - const newIndent = indent + (isLast ? ' ' : '│ '); - result += renderFolderTreeAscii(node.children, '', newIndent); - } else { - result += `${indent}${pointer}${node.name}\n`; - } - }); - return result; - } - - - - window.addEventListener('repo-updated', () => { - closeDropdown(); - }); });