/** 采集浮窗只负责展示与折叠,登录、采集和页面跳转交由内容脚本处理。 */
export function renderCollectorPanel(
root: ShadowRoot,
authenticated: boolean,
minimized: boolean,
onToggle: (minimized: boolean) => void,
onAction: (kind: string) => void,
) {
root.innerHTML = `
${authenticated
? '
'
: '
'}
`;
const panel = root.querySelector('.collector')!;
const minimize = root.querySelector('.minimize')!;
const launcher = root.querySelector('.launcher')!;
const toggle = (next: boolean) => {
panel.classList.toggle('is-minimized', next);
launcher.setAttribute('aria-expanded', String(!next));
onToggle(next);
(next ? launcher : minimize).focus();
};
minimize.addEventListener('click', () => toggle(true));
launcher.addEventListener('click', () => toggle(false));
root.querySelectorAll('[data-action]').forEach((button) =>
button.addEventListener('click', () => onAction(button.dataset.action ?? '')),
);
}