feat(editor): handle tabs after connection disconnect
This commit is contained in:
1 parent
3cb1faf1c6
commit
28cc1b9768
31 files changed
+1137
-60
No files matched your search
@@ -0,0 +1,11 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { deletedConnectionTabKeepMode } from "@/lib/tabs/deletedConnectionTabs";
|
||||
|
||||
describe("deletedConnectionTabKeepMode", () => {
|
||||
it("maps each delete-time tab handling mode to its keep scope", () => {
|
||||
expect(deletedConnectionTabKeepMode("close-tabs")).toBe("none");
|
||||
expect(deletedConnectionTabKeepMode("keep-sql-tabs")).toBe("sql");
|
||||
expect(deletedConnectionTabKeepMode("keep-pinned-sql-tabs")).toBe("pinned-sql");
|
||||
expect(deletedConnectionTabKeepMode("keep-all-tabs")).toBe("all");
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,21 @@
|
||||
import type { DeleteConnectionTabHandlingMode } from "@/stores/settingsStore";
|
||||
|
||||
/**
|
||||
* 删除连接时对已打开页签的保留范围。
|
||||
*
|
||||
* 与「断开连接」不同,删除后连接配置已从磁盘移除、无法再重连,因此被保留下来的
|
||||
* SQL 页签只是草稿工作区;它们会记录原连接名,等新建同名连接时再重新绑定。
|
||||
*
|
||||
* - `none`:关闭全部页签
|
||||
* - `sql`:保留全部 SQL 页签(清空结果),其余关闭
|
||||
* - `pinned-sql`:只保留固定的 SQL 页签(清空结果),其余关闭
|
||||
* - `all`:不关闭任何页签,保留 SQL 文本与当前结果,只回滚事务
|
||||
*/
|
||||
export type DeletedConnectionTabKeepMode = "none" | "sql" | "pinned-sql" | "all";
|
||||
|
||||
export function deletedConnectionTabKeepMode(mode: DeleteConnectionTabHandlingMode): DeletedConnectionTabKeepMode {
|
||||
if (mode === "keep-sql-tabs") return "sql";
|
||||
if (mode === "keep-pinned-sql-tabs") return "pinned-sql";
|
||||
if (mode === "keep-all-tabs") return "all";
|
||||
return "none";
|
||||
}
|
||||
Reference in new issue
Block a user