mirror of
https://github.com/Tencent/BrowserSkill.git
synced 2026-09-10 13:01:23 +08:00
* better-sidebar 集成:observation 视图迁入 better-sidebar 载体,按会话作用域展示 bsk 会话 * 会话关停与归档清理:支持会话 dispose 与归档自动清理 * 悬浮窗修复:悬浮 overlay 拖拽/缩放/PiP 弹出等问题修复 * 修复 Document PiP 空白窗口:载体卸载(关 tab、切会话、插件 HMR)时主动 close() PiP 窗口,避免残留空白窗口
27 lines
864 B
TypeScript
27 lines
864 B
TypeScript
/**
|
|
* Carrier switch for the observation view: while the better-sidebar
|
|
* integration fiber is alive (the dsh-better-sidebar plugin provides its
|
|
* `betterSidebar` service), the tracking view lives in a sidebar tab and the
|
|
* floating overlay card/capsule hides itself. The flag is a tiny external
|
|
* store so the overlay can read it through useSyncExternalStore and flip
|
|
* without a remount when the sidebar plugin (un)loads.
|
|
*/
|
|
|
|
let active = false;
|
|
const listeners = new Set<() => void>();
|
|
|
|
export function getSidebarMode(): boolean {
|
|
return active;
|
|
}
|
|
|
|
export function subscribeSidebarMode(listener: () => void): () => void {
|
|
listeners.add(listener);
|
|
return () => listeners.delete(listener);
|
|
}
|
|
|
|
export function setSidebarMode(next: boolean): void {
|
|
if (active === next) return;
|
|
active = next;
|
|
for (const listener of [...listeners]) listener();
|
|
}
|