// 聊天室欢迎语快捷菜单事件绑定,替代 Blade 内联 onclick。 let welcomeMenuEventsBound = false; /** * 绑定欢迎语菜单按钮、菜单内点击拦截与模板发送事件。 * * @returns {void} */ export function bindWelcomeMenuControls() { if (welcomeMenuEventsBound || typeof document === "undefined") { return; } welcomeMenuEventsBound = true; document.addEventListener("click", (event) => { if (!(event.target instanceof Element)) { return; } const toggleButton = event.target.closest("[data-chat-welcome-menu-toggle]"); if (toggleButton) { event.preventDefault(); window.toggleWelcomeMenu?.(event); return; } const menu = event.target.closest("[data-chat-welcome-menu]"); if (!menu) { return; } event.stopPropagation(); const item = event.target.closest("[data-chat-welcome-template]"); if (!item || !menu.contains(item)) { return; } const template = item.getAttribute("data-chat-welcome-template") || ""; if (template && typeof window.sendWelcomeTpl === "function") { window.sendWelcomeTpl(template); } }); }