// 聊天室欢迎语快捷菜单事件绑定，替代 Blade 内联 onclick。

let welcomeMenuEventsBound = false;

/**
 * 切换欢迎语下拉浮层的显示/隐藏。
 */
function toggleWelcomeMenu(event) {
    event.stopPropagation();
    const menu = document.getElementById("welcome-menu");
    const adminMenu = document.getElementById("admin-menu");
    const blockMenu = document.getElementById("block-menu");
    const featureMenu = document.getElementById("feature-menu");
    const dailyStatusEditor = document.getElementById("daily-status-editor-overlay");

    if (!menu) return;

    [adminMenu, blockMenu, featureMenu, dailyStatusEditor].forEach((el) => {
        if (el) el.style.display = "none";
    });

    menu.style.display = menu.style.display === "none" ? "block" : "none";
}

// 挂载到 window 供 Blade 脚本及其他模块使用。
window.toggleWelcomeMenu = toggleWelcomeMenu;

/**
 * 绑定欢迎语菜单按钮、菜单内点击拦截与模板发送事件。
 */
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();
            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") || "";
        // sendWelcomeTpl 仍由 Blade 维护（依赖 sendMessage），这里通过 window 调用。
        if (template && typeof window.sendWelcomeTpl === "function") {
            window.sendWelcomeTpl(template);
        }
    });
}

export { toggleWelcomeMenu };
