From 1429dee8a68ed3f98227cb9295bd5cca345ee302 Mon Sep 17 00:00:00 2001 From: lkddi Date: Sat, 25 Apr 2026 03:45:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=81=E7=A7=BB=E5=B1=8F=E8=94=A0=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E4=BA=8B=E4=BB=B6=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/js/chat-room.js | 4 +++ resources/js/chat-room/preferences-status.js | 30 +++++++++++++++++++ .../chat/partials/layout/input-bar.blade.php | 5 ++-- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/resources/js/chat-room.js b/resources/js/chat-room.js index b27ae98..7909871 100644 --- a/resources/js/chat-room.js +++ b/resources/js/chat-room.js @@ -9,6 +9,7 @@ export { BLOCKABLE_SYSTEM_SENDERS, BLOCKED_SYSTEM_SENDERS_STORAGE_KEY, CHAT_SOUND_MUTED_STORAGE_KEY, + bindBlockMenuControls, bindSoundMuteControl, isSoundMuted, loadBlockedSystemSenders, @@ -38,6 +39,7 @@ import { BLOCKABLE_SYSTEM_SENDERS, BLOCKED_SYSTEM_SENDERS_STORAGE_KEY, CHAT_SOUND_MUTED_STORAGE_KEY, + bindBlockMenuControls, bindSoundMuteControl, isSoundMuted, loadBlockedSystemSenders, @@ -74,6 +76,7 @@ if (typeof window !== "undefined") { BLOCKABLE_SYSTEM_SENDERS, BLOCKED_SYSTEM_SENDERS_STORAGE_KEY, CHAT_SOUND_MUTED_STORAGE_KEY, + bindBlockMenuControls, bindSoundMuteControl, isSoundMuted, loadBlockedSystemSenders, @@ -99,4 +102,5 @@ if (typeof window !== "undefined") { bindChatImageUploadControl(); bindChatRightPanelControls(); bindMobileDrawerControls(); + bindBlockMenuControls(); } diff --git a/resources/js/chat-room/preferences-status.js b/resources/js/chat-room/preferences-status.js index c672622..b80cc36 100644 --- a/resources/js/chat-room/preferences-status.js +++ b/resources/js/chat-room/preferences-status.js @@ -4,6 +4,7 @@ export const BLOCKABLE_SYSTEM_SENDERS = ["钓鱼播报", "星海小博士", "百 export const BLOCKED_SYSTEM_SENDERS_STORAGE_KEY = "chat_blocked_system_senders"; export const CHAT_SOUND_MUTED_STORAGE_KEY = "chat_sound_muted"; let soundMuteEventsBound = false; +let blockMenuEventsBound = false; /** * 规整聊天室偏好对象,过滤非法配置并补齐默认值。 @@ -167,6 +168,35 @@ export function bindSoundMuteControl(onChange) { }); } +/** + * 绑定系统播报屏蔽菜单打开与菜单内点击拦截事件。 + * + * @returns {void} + */ +export function bindBlockMenuControls() { + if (blockMenuEventsBound || typeof document === "undefined") { + return; + } + + blockMenuEventsBound = true; + document.addEventListener("click", (event) => { + if (!(event.target instanceof Element)) { + return; + } + + const trigger = event.target.closest("[data-chat-block-menu-toggle]"); + if (trigger) { + event.preventDefault(); + window.toggleBlockMenu?.(event); + return; + } + + if (event.target.closest("[data-chat-block-menu]")) { + event.stopPropagation(); + } + }); +} + /** * 当前登录账号没有服务端偏好时,判断是否需要迁移旧本地偏好。 * diff --git a/resources/views/chat/partials/layout/input-bar.blade.php b/resources/views/chat/partials/layout/input-bar.blade.php index ac56258..fdee3ee 100644 --- a/resources/views/chat/partials/layout/input-bar.blade.php +++ b/resources/views/chat/partials/layout/input-bar.blade.php @@ -118,12 +118,11 @@ $welcomeMessages = [
- -