// 聊天室欢迎语快捷菜单事件绑定，替代 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") || "";
        // 模板内容只从 data 属性读取，实际发送仍交给旧的 sendWelcomeTpl。
        if (template && typeof window.sendWelcomeTpl === "function") {
            window.sendWelcomeTpl(template);
        }
    });
}
