feat(gemini-ops): 添加侧边栏展开状态检测功能

This commit is contained in:
WJZ_P
2026-03-17 00:10:03 +08:00
parent d56c51baa3
commit 33147c3610

View File

@@ -36,6 +36,10 @@ const SELECTORS = {
'button.temp-chat-button', // class 名兜底 'button.temp-chat-button', // class 名兜底
'button[mattooltip="临时对话"]', // Angular Material tooltip 属性 'button[mattooltip="临时对话"]', // Angular Material tooltip 属性
], ],
sidebarContainer: [
'[data-test-id="overflow-container"]', // 测试专属属性
'div.overflow-container', // class 兜底
],
}; };
/** /**
@@ -387,6 +391,31 @@ export function createOps(page) {
}; };
} }
/**
* 判断侧边栏是否处于展开状态(内部工具函数,不对外暴露)
*
* 通过 overflow-container 元素的实际渲染宽度判断:
* - width >= 100px → 展开
* - width < 100px → 折叠
*
* @param {ReturnType<typeof createOperator>} op
* @returns {Promise<{ok: boolean, expanded: boolean, width: number, error?: string}>}
*/
function isSidebarExpanded(op) {
return op.query((sels) => {
let el = null;
for (const sel of sels) {
try { el = document.querySelector(sel); } catch { /* skip */ }
if (el) break;
}
if (!el) {
return { ok: false, expanded: false, width: 0, error: 'sidebar_container_not_found' };
}
const width = el.getBoundingClientRect().width;
return { ok: true, expanded: width >= 100, width };
}, SELECTORS.sidebarContainer);
}
function sleep(ms) { function sleep(ms) {
return new Promise(r => setTimeout(r, ms)); return new Promise(r => setTimeout(r, ms));
} }