Fix: Chat scrollt nach Font-Loading nochmal nach unten
scrollDown() wartet jetzt auf document.fonts.ready und scrollt erneut. chat-page.js wartet nach loadHistory() zusätzlich per requestAnimationFrame auf den Repaint nach Font-Swap.
This commit is contained in:
1 parent
3cb468f4e8
commit
76341dc42b
14 files changed
+349
-121
No files matched your search
@@ -12,7 +12,8 @@ function openFileExplorer(opts = {}) {
|
||||
onSelect: opts.onSelect || null,
|
||||
currentPath: '',
|
||||
history: [],
|
||||
selectedFile: null
|
||||
selectedFile: null,
|
||||
initialFile: opts.initialFile || null // z.B. "src/foo.cs" – Datei direkt öffnen
|
||||
};
|
||||
|
||||
const overlay = document.createElement('div');
|
||||
@@ -55,7 +56,14 @@ function openFileExplorer(opts = {}) {
|
||||
_feState._keyHandler = (e) => { if (e.key === 'Escape') closeFileExplorer(); };
|
||||
document.addEventListener('keydown', _feState._keyHandler);
|
||||
|
||||
feLoadDir('');
|
||||
// Zum Verzeichnis der initialFile navigieren, oder Root
|
||||
if (_feState.initialFile) {
|
||||
const filePath = _feState.initialFile;
|
||||
const dir = filePath.includes('/') ? filePath.substring(0, filePath.lastIndexOf('/')) : '';
|
||||
feLoadDir(dir);
|
||||
} else {
|
||||
feLoadDir('');
|
||||
}
|
||||
}
|
||||
|
||||
function closeFileExplorer() {
|
||||
@@ -140,6 +148,22 @@ async function feLoadDir(path) {
|
||||
}
|
||||
|
||||
backBtn.disabled = path === '';
|
||||
|
||||
// Wenn initialFile gesetzt, Datei automatisch selektieren
|
||||
if (_feState && _feState.initialFile) {
|
||||
const targetPath = _feState.initialFile;
|
||||
_feState.initialFile = null; // Nur einmal triggern
|
||||
// data-path Selektor sicher aufbauen
|
||||
const allFiles = sidebar.querySelectorAll('.fe-file');
|
||||
let targetItem = null;
|
||||
allFiles.forEach(el => { if (el.dataset.path === targetPath) targetItem = el; });
|
||||
if (targetItem) {
|
||||
const entry = entries.find(e => e.path === targetPath);
|
||||
if (entry) {
|
||||
feSelectFile(entry, targetItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
sidebar.innerHTML = '<div class="fe-error">Netzwerk-Fehler</div>';
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user