refac
This commit is contained in:
@@ -1173,21 +1173,21 @@
|
||||
return;
|
||||
}
|
||||
|
||||
const lastSlash = filePath.lastIndexOf('/');
|
||||
const dir = lastSlash > 0 ? filePath.substring(0, lastSlash + 1) : '/';
|
||||
invalidateTreeCache(dir);
|
||||
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 refreshBrowser();
|
||||
}
|
||||
} else {
|
||||
if (currentPath.startsWith(dir) || dir.startsWith(currentPath)) {
|
||||
await refreshBrowser();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
if (!handledDisplayFile && terminal) {
|
||||
loading = true;
|
||||
|
||||
@@ -33,12 +33,12 @@
|
||||
toolServers,
|
||||
terminalServers,
|
||||
user as _user,
|
||||
showControls,
|
||||
showSettings,
|
||||
showFileNavDir,
|
||||
selectedTerminalId,
|
||||
TTSWorker,
|
||||
temporaryChatEnabled
|
||||
showControls,
|
||||
showSettings,
|
||||
showFileNavDir,
|
||||
selectedTerminalId,
|
||||
TTSWorker,
|
||||
temporaryChatEnabled
|
||||
} from '$lib/stores';
|
||||
|
||||
import {
|
||||
@@ -876,10 +876,7 @@
|
||||
|
||||
return (
|
||||
(settingsValue?.terminalServers ?? []).find(
|
||||
(t: any) =>
|
||||
t.url === selectedId &&
|
||||
t.enabled &&
|
||||
t.config?.chat_uploads === 'filesystem'
|
||||
(t: any) => t.url === selectedId && t.enabled && t.config?.chat_uploads === 'filesystem'
|
||||
) ?? null
|
||||
);
|
||||
};
|
||||
@@ -925,11 +922,13 @@
|
||||
if (filesystemUploadTerminal) {
|
||||
try {
|
||||
const cwd =
|
||||
(await getCwd(
|
||||
filesystemUploadTerminal.url,
|
||||
filesystemUploadTerminal.key,
|
||||
chatId || undefined
|
||||
))?.cwd || '/';
|
||||
(
|
||||
await getCwd(
|
||||
filesystemUploadTerminal.url,
|
||||
filesystemUploadTerminal.key,
|
||||
chatId || undefined
|
||||
)
|
||||
)?.cwd || '/';
|
||||
const uploadedFile = await uploadToTerminal(
|
||||
filesystemUploadTerminal.url,
|
||||
filesystemUploadTerminal.key,
|
||||
@@ -939,16 +938,16 @@
|
||||
);
|
||||
|
||||
if (uploadedFile) {
|
||||
fileItem.type = 'terminal_file';
|
||||
fileItem.type = 'filesystem';
|
||||
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;
|
||||
showFileNavDir.set(uploadedFile.path);
|
||||
} 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);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
import { WEBUI_API_BASE_URL } from '$lib/constants';
|
||||
|
||||
import { formatFileSize } from '$lib/utils';
|
||||
import { settings } from '$lib/stores';
|
||||
import { settings, showFileNavPath } from '$lib/stores';
|
||||
|
||||
import FileItemModal from './FileItemModal.svelte';
|
||||
import GarbageBin from '../icons/GarbageBin.svelte';
|
||||
@@ -57,7 +57,11 @@
|
||||
: 'gap-1 rounded-2xl p-1.5'} text-left"
|
||||
type="button"
|
||||
on:click={async () => {
|
||||
if (item?.file?.data?.content || item?.type === 'file' || item?.content || modal) {
|
||||
const filesystemPath = item?.type === 'filesystem' ? (item.path ?? item.url ?? item.id) : null;
|
||||
|
||||
if (filesystemPath) {
|
||||
showFileNavPath.set(filesystemPath);
|
||||
} else if (item?.file?.data?.content || item?.type === 'file' || item?.content || modal) {
|
||||
showModal = !showModal;
|
||||
} else {
|
||||
if (url) {
|
||||
@@ -111,7 +115,7 @@
|
||||
? $i18n.t('Note')
|
||||
: type === 'chat'
|
||||
? $i18n.t('Chat')
|
||||
: type === 'file'
|
||||
: type === 'file' || type === 'filesystem'
|
||||
? $i18n.t('File')
|
||||
: $i18n.t('Document')}
|
||||
placement="top"
|
||||
@@ -145,7 +149,7 @@
|
||||
? 'text-gray-800 dark:text-gray-100'
|
||||
: 'text-gray-500'}"
|
||||
>
|
||||
{#if type === 'file'}
|
||||
{#if type === 'file' || type === 'filesystem'}
|
||||
{$i18n.t('File')}
|
||||
{:else if type === 'note'}
|
||||
{$i18n.t('Note')}
|
||||
|
||||
Reference in New Issue
Block a user