file browser improvements and hardening.

This commit is contained in:
KingKDot
2026-07-14 09:50:09 -05:00
parent 172703c33b
commit 9178bd0e63
17 changed files with 700 additions and 105 deletions
@@ -1,4 +1,4 @@
import { escapeHtml, formatBytes } from "./filebrowser-utils.js";
import { escapeHtml, formatBytes, getHighlightLanguage } from "./filebrowser-utils.js";
const KNOWN_HASHES_SHA256 = {
"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855": "Empty file (0 bytes)",
@@ -39,7 +39,23 @@ export function createFileHexHashManager({
function resetPreviewTextHead() {
previewTextHeadHost?.classList.add("hidden");
if (previewTextHead) previewTextHead.textContent = "";
if (previewTextHead) {
previewTextHead.textContent = "";
previewTextHead.className = "";
delete previewTextHead.dataset.highlighted;
}
}
function renderPreviewTextHead(text, fileName) {
if (!previewTextHead) return;
const requestedLanguage = getHighlightLanguage(fileName);
const language = window.hljs?.getLanguage(requestedLanguage) ? requestedLanguage : "plaintext";
previewTextHead.className = language === "plaintext" ? "hljs" : `language-${language}`;
previewTextHead.textContent = text;
delete previewTextHead.dataset.highlighted;
if (window.hljs && language !== "plaintext") {
window.hljs.highlightElement(previewTextHead);
}
}
function resetPreviewHash() {
@@ -157,7 +173,7 @@ export function createFileHexHashManager({
return;
}
const text = decodeTextHead(data);
if (previewTextHead) previewTextHead.textContent = text;
renderPreviewTextHead(text, req.fileName);
previewTextHeadHost?.classList.remove("hidden");
}