Fix: 优化 SQL 库启动加载

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
This commit is contained in:
zipgandstaff authored and GitHub committed 2026-06-27 15:07:26 +08:00
1 parent c289dda97d
commit b85b14bfde
18 files changed
+397 -42

No files matched your search

@@ -109,6 +109,8 @@ async function downloadText(content: string, fileName: string) {
async function exportSingleFile(file: SavedSqlFile) {
try {
const loadedFile = await savedSqlStore.ensureFileContent(file.id);
if (!loadedFile) return;
const defaultFileName = sanitizeFileSystemSegment(ensureSqlExtension(file.name));
if (isTauriRuntime()) {
const { save } = await import("@tauri-apps/plugin-dialog");
@@ -118,9 +120,9 @@ async function exportSingleFile(file: SavedSqlFile) {
filters: [{ name: "SQL", extensions: ["sql"] }],
});
if (!path) return;
await writeTextFile(path, file.sql);
await writeTextFile(path, loadedFile.sql);
} else {
await downloadText(file.sql, defaultFileName);
await downloadText(loadedFile.sql, defaultFileName);
}
toast(t("sqlLibrary.exported"), 2000);
} catch (e: any) {
@@ -158,8 +160,10 @@ async function exportFolderContents(folder?: SavedSqlFolder) {
await writeFolder(child, childDir);
}
for (const file of savedSqlStore.filesInFolder(libraryFolder.id)) {
const loadedFile = await savedSqlStore.ensureFileContent(file.id);
if (!loadedFile) continue;
const filePath = await join(dir, sanitizeFileSystemSegment(ensureSqlExtension(file.name)));
await writeTextFile(filePath, file.sql);
await writeTextFile(filePath, loadedFile.sql);
}
};
@@ -177,8 +181,10 @@ async function exportFolderContents(folder?: SavedSqlFolder) {
const unfiledDir = await join(rootDir, sanitizeFileSystemSegment(t("sqlLibrary.unfiled")));
await mkdir(unfiledDir, { recursive: true });
for (const file of unfiled) {
const loadedFile = await savedSqlStore.ensureFileContent(file.id);
if (!loadedFile) continue;
const filePath = await join(unfiledDir, sanitizeFileSystemSegment(ensureSqlExtension(file.name)));
await writeTextFile(filePath, file.sql);
await writeTextFile(filePath, loadedFile.sql);
}
}
}
@@ -579,11 +585,13 @@ async function executeBatchDelete() {
toast(t("sqlLibrary.batchDeleteSuccess", { count: fileIds.length + folderIds.length }), 2000);
}
function openFile(file: SavedSqlFile) {
async function openFile(file: SavedSqlFile) {
if (suppressNextRowClick.value) return;
queryStore.openSavedSql(file);
connectionStore.activeConnectionId = file.connectionId;
void savedSqlStore.recordFileUsage(file.id);
const loadedFile = await savedSqlStore.ensureFileContent(file.id);
if (!loadedFile) return;
queryStore.openSavedSql(loadedFile);
connectionStore.activeConnectionId = loadedFile.connectionId;
void savedSqlStore.recordFileUsage(loadedFile.id);
}
function handleFileClick(file: SavedSqlFile, event: MouseEvent) {
@@ -836,10 +836,10 @@ function openMongoCollectionData(node: TreeNode) {
queryStore.updateSql(tab, node.label);
}
function openSavedSqlFile() {
async function openSavedSqlFile() {
const node = props.node;
if (node.type !== "saved-sql-file" || !node.savedSqlId) return;
const file = savedSqlStore.getFile(node.savedSqlId);
const file = await savedSqlStore.ensureFileContent(node.savedSqlId);
if (!file) return;
queryStore.openSavedSql(file);
connectionStore.activeConnectionId = file.connectionId;
@@ -3479,8 +3479,8 @@ function savedSqlHistoryScopeForNode(node: TreeNode): SavedSqlHistoryScope | nul
return null;
}
function openSavedSqlHistoryFile(fileId: string) {
const file = savedSqlStore.getFile(fileId);
async function openSavedSqlHistoryFile(fileId: string) {
const file = await savedSqlStore.ensureFileContent(fileId);
if (!file) return;
queryStore.openSavedSql(file);
connectionStore.activeConnectionId = file.connectionId;