Skip to content

Commit 3c53843

Browse files
fix(ui): update directory-picker logic to compute full file paths (#295)
1 parent 327958e commit 3c53843

File tree

1 file changed

+32
-6
lines changed

1 file changed

+32
-6
lines changed

src/server/templates/components/result.jinja

Lines changed: 32 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,48 @@
11
<script>
2-
function getFileName(line) {
3-
// Skips "|", "└", "├" found in file tree
4-
const index = line.search(/[a-zA-Z0-9]/);
5-
return line.substring(index).trim();
2+
function getFileName(element) {
3+
const indentSize = 4;
4+
let path = "";
5+
let prevIndentLevel = null;
6+
7+
while (element) {
8+
const line = element.textContent;
9+
const index = line.search(/[a-zA-Z0-9_.-]/);
10+
const indentLevel = index / indentSize;
11+
12+
// Stop when we reach or go above the top-level directory
13+
if (indentLevel <= 1) {
14+
break;
15+
}
16+
17+
// Only include directories that are one level above the previous
18+
if (prevIndentLevel === null || indentLevel === prevIndentLevel - 1) {
19+
const fileName = line.substring(index).trim();
20+
path = fileName + path;
21+
prevIndentLevel = indentLevel;
22+
}
23+
24+
element = element.previousElementSibling;
25+
}
26+
27+
return path;
628
}
729
830
function toggleFile(element) {
931
const patternInput = document.getElementById("pattern");
1032
const patternFiles = patternInput.value ? patternInput.value.split(",").map(item => item.trim()) : [];
1133
12-
if (element.textContent.includes("Directory structure:")) {
34+
const directoryContainer = document.getElementById("directory-structure-container");
35+
const treeLineElements = Array.from(directoryContainer.children).filter(child => child.tagName === "PRE");
36+
37+
// Skip the first two tree lines (header and repository name)
38+
if (treeLineElements[0] === element || treeLineElements[1] === element) {
1339
return;
1440
}
1541
1642
element.classList.toggle('line-through');
1743
element.classList.toggle('text-gray-500');
1844
19-
const fileName = getFileName(element.textContent);
45+
const fileName = getFileName(element);
2046
const fileIndex = patternFiles.indexOf(fileName);
2147
2248
if (fileIndex !== -1) {

0 commit comments

Comments
 (0)