diff --git a/src/lib/components/chat/FileNav.svelte b/src/lib/components/chat/FileNav.svelte index 4082a4ef75..18206e60ec 100644 --- a/src/lib/components/chat/FileNav.svelte +++ b/src/lib/components/chat/FileNav.svelte @@ -1173,20 +1173,21 @@ return; } - const lastSlash = filePath.lastIndexOf('/'); - const dir = lastSlash > 0 ? filePath.substring(0, lastSlash + 1) : '/'; + const lastSlash = filePath.lastIndexOf('/'); + const dir = lastSlash > 0 ? filePath.substring(0, lastSlash + 1) : '/'; + invalidateTreeCache(dir); - if (selectedFile) { - if (selectedFile === filePath || currentPath.startsWith(dir)) { - const fileName = selectedFile.split('/').pop() ?? ''; - await openEntry({ name: fileName, type: 'file', size: 0 }); + if (selectedFile) { + if (selectedFile === filePath || currentPath.startsWith(dir)) { + const fileName = selectedFile.split('/').pop() ?? ''; + await openEntry({ name: fileName, type: 'file', size: 0 }); } - } else { - if (currentPath.startsWith(dir) || dir.startsWith(currentPath)) { - await loadDir(currentPath, { preserveTree: true }); + } else { + if (currentPath.startsWith(dir) || dir.startsWith(currentPath)) { + await refreshBrowser(); + } } - } - }); + }); if (!handledDisplayFile && terminal) { loading = true; diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index 36d9cd355d..9b39b25f3b 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -33,11 +33,12 @@ toolServers, terminalServers, user as _user, - showControls, - showSettings, - selectedTerminalId, - TTSWorker, - temporaryChatEnabled + showControls, + showSettings, + showFileNavDir, + selectedTerminalId, + TTSWorker, + temporaryChatEnabled } from '$lib/stores'; import { @@ -942,11 +943,12 @@ fileItem.status = 'uploaded'; fileItem.id = uploadedFile.path; fileItem.path = uploadedFile.path; - fileItem.url = uploadedFile.path; - fileItem.size = uploadedFile.size ?? file.size; - fileItem.file = uploadedFile; - files = files; - } else { + fileItem.url = uploadedFile.path; + fileItem.size = uploadedFile.size ?? file.size; + fileItem.file = uploadedFile; + files = files; + showFileNavDir.set(uploadedFile.path); + } else { fileItem.status = 'error'; fileItem.error = $i18n.t('Failed to upload file.'); toast.error(fileItem.error);