mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-06-21 22:14:02 +08:00
✨ feat(tabs): 支持标签展示配置并提示保存 SQL 文件
- 新增标签展示元素配置,支持单行、双行布局和元素排序 - 在设置面板提供标签展示入口并持久化用户配置 - 标签右键菜单增加标签设置入口并优化悬浮信息展示 - 关闭外部 SQL 文件标签前检测未保存草稿并支持保存后关闭
This commit is contained in:
44
frontend/src/utils/sqlFileTabDrafts.ts
Normal file
44
frontend/src/utils/sqlFileTabDrafts.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
const drafts = new Map<string, string>();
|
||||
|
||||
const toTabId = (value: unknown): string => String(value ?? '').trim();
|
||||
|
||||
export const setQueryTabDraft = (tabId: string, content: string): void => {
|
||||
const id = toTabId(tabId);
|
||||
if (!id) return;
|
||||
drafts.set(id, String(content ?? ''));
|
||||
};
|
||||
|
||||
export const getQueryTabDraft = (tabId: string, fallback = ''): string => {
|
||||
const id = toTabId(tabId);
|
||||
if (!id || !drafts.has(id)) {
|
||||
return fallback;
|
||||
}
|
||||
return drafts.get(id) ?? fallback;
|
||||
};
|
||||
|
||||
export const clearQueryTabDraft = (tabId: string): void => {
|
||||
const id = toTabId(tabId);
|
||||
if (!id) return;
|
||||
drafts.delete(id);
|
||||
};
|
||||
|
||||
export const hasQueryTabDraft = (tabId: string): boolean => {
|
||||
const id = toTabId(tabId);
|
||||
return Boolean(id && drafts.has(id));
|
||||
};
|
||||
|
||||
export const setSQLFileTabDraft = (tabId: string, content: string): void => {
|
||||
setQueryTabDraft(tabId, content);
|
||||
};
|
||||
|
||||
export const getSQLFileTabDraft = (tabId: string, fallback = ''): string => {
|
||||
return getQueryTabDraft(tabId, fallback);
|
||||
};
|
||||
|
||||
export const clearSQLFileTabDraft = (tabId: string): void => {
|
||||
clearQueryTabDraft(tabId);
|
||||
};
|
||||
|
||||
export const hasSQLFileTabDraft = (tabId: string): boolean => {
|
||||
return hasQueryTabDraft(tabId);
|
||||
};
|
||||
Reference in New Issue
Block a user