Files
chatroom/resources/js/chat-room.js
T

266 lines
10 KiB
JavaScript
Raw Normal View History

// 聊天室 Vite 入口,集中导出从 Blade 内联脚本迁移出的纯前端工具。
2026-04-25 04:00:38 +08:00
// 统一转发各子模块导出,方便测试或后续模块继续复用同一组工具。
export { escapeHtml, escapeHtmlWithLineBreaks } from "./chat-room/html.js";
2026-04-25 03:54:23 +08:00
export { bindGlobalDialogControls } from "./chat-room/dialog.js";
2026-04-25 10:13:23 +08:00
export { bindDailySignInControls } from "./chat-room/daily-sign-in.js";
2026-04-25 03:40:30 +08:00
export { applyFontSize, bindChatFontSizeControl, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize } from "./chat-room/font-size.js";
2026-04-25 03:41:45 +08:00
export { bindChatImageUploadControl } from "./chat-room/image-upload.js";
2026-04-25 03:58:26 +08:00
export { bindFriendPanelControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel } from "./chat-room/friend-panel.js";
2026-04-25 03:36:30 +08:00
export { closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox } from "./chat-room/lightbox.js";
2026-04-25 08:21:30 +08:00
export {
bindMobileDrawerControls,
closeMobileDrawer,
loadMobileRoomList,
openMobileDrawer,
renderMobileRoomList,
renderMobileUserList,
scheduleRenderMobileUserList,
switchMobileTab,
} from "./chat-room/mobile-drawer.js";
2026-04-25 08:10:23 +08:00
export { bindMarriageStatusControls } from "./chat-room/marriage-status.js";
2026-04-25 10:16:14 +08:00
export { bindToolbarControls, runFeatureShortcut, runToolbarAction } from "./chat-room/toolbar.js";
2026-04-25 03:49:13 +08:00
export { bindWelcomeMenuControls } from "./chat-room/welcome-menu.js";
export { bindAdminMenuControls } from "./chat-room/admin-menu.js";
2026-04-25 04:05:32 +08:00
export {
bindBaccaratLossCoverAdminControls,
closeAdminBaccaratLossCoverModal,
closeCurrentBaccaratLossCoverEvent,
loadAdminCurrentLossCoverEvent,
openAdminBaccaratLossCoverModal,
submitBaccaratLossCoverEvent,
} from "./chat-room/baccarat-loss-cover-admin.js";
2026-04-25 08:16:50 +08:00
export {
bankAction,
bankLoadInfo,
bankShowMsg,
bindBankControls,
closeBankModal,
fetchBankRanking,
openBankModal,
switchBankTab,
toggleBankRankSort,
} from "./chat-room/bank-modal.js";
export { bindFishingControls } from "./chat-room/fishing.js";
2026-04-25 08:04:22 +08:00
export { bindProfileControls } from "./chat-room/profile-controls.js";
2026-04-25 08:05:33 +08:00
export { bindShopControls } from "./chat-room/shop-controls.js";
2026-04-25 08:07:28 +08:00
export { bindVipControls } from "./chat-room/vip-controls.js";
export {
BLOCKABLE_SYSTEM_SENDERS,
BLOCKED_SYSTEM_SENDERS_STORAGE_KEY,
CHAT_SOUND_MUTED_STORAGE_KEY,
2026-04-25 03:45:30 +08:00
bindBlockMenuControls,
2026-04-25 03:39:31 +08:00
bindSoundMuteControl,
2026-04-25 03:38:27 +08:00
isSoundMuted,
loadBlockedSystemSenders,
normalizeChatPreferences,
normalizeDailyStatus,
parseDailyStatusExpiry,
2026-04-25 03:38:27 +08:00
persistBlockedSystemSenders,
setSoundMuted,
shouldMigrateLocalChatPreferences,
} from "./chat-room/preferences-status.js";
2026-04-25 03:42:54 +08:00
export { bindChatRightPanelControls } from "./chat-room/right-panel.js";
export {
normalizeRoomStatus,
renderRoomStatusRow,
renderRoomsOnlineStatus,
renderRoomsOnlineStatusToContainer,
resolveRoomUrl,
} from "./chat-room/rooms.js";
export { createMessageQueue } from "./chat-room/message-queue.js";
import { escapeHtml, escapeHtmlWithLineBreaks } from "./chat-room/html.js";
2026-04-25 03:54:23 +08:00
import { bindGlobalDialogControls } from "./chat-room/dialog.js";
2026-04-25 10:13:23 +08:00
import { bindDailySignInControls } from "./chat-room/daily-sign-in.js";
2026-04-25 03:40:30 +08:00
import { applyFontSize, bindChatFontSizeControl, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize } from "./chat-room/font-size.js";
2026-04-25 03:41:45 +08:00
import { bindChatImageUploadControl } from "./chat-room/image-upload.js";
2026-04-25 03:58:26 +08:00
import { bindFriendPanelControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel } from "./chat-room/friend-panel.js";
2026-04-25 03:36:30 +08:00
import { closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox } from "./chat-room/lightbox.js";
2026-04-25 08:21:30 +08:00
import {
bindMobileDrawerControls,
closeMobileDrawer,
loadMobileRoomList,
openMobileDrawer,
renderMobileRoomList,
renderMobileUserList,
scheduleRenderMobileUserList,
switchMobileTab,
} from "./chat-room/mobile-drawer.js";
2026-04-25 08:10:23 +08:00
import { bindMarriageStatusControls } from "./chat-room/marriage-status.js";
2026-04-25 10:16:14 +08:00
import { bindToolbarControls, runFeatureShortcut, runToolbarAction } from "./chat-room/toolbar.js";
2026-04-25 03:49:13 +08:00
import { bindWelcomeMenuControls } from "./chat-room/welcome-menu.js";
import { bindAdminMenuControls } from "./chat-room/admin-menu.js";
2026-04-25 04:05:32 +08:00
import {
bindBaccaratLossCoverAdminControls,
closeAdminBaccaratLossCoverModal,
closeCurrentBaccaratLossCoverEvent,
loadAdminCurrentLossCoverEvent,
openAdminBaccaratLossCoverModal,
submitBaccaratLossCoverEvent,
} from "./chat-room/baccarat-loss-cover-admin.js";
2026-04-25 08:16:50 +08:00
import {
bankAction,
bankLoadInfo,
bankShowMsg,
bindBankControls,
closeBankModal,
fetchBankRanking,
openBankModal,
switchBankTab,
toggleBankRankSort,
} from "./chat-room/bank-modal.js";
import { bindFishingControls } from "./chat-room/fishing.js";
2026-04-25 08:04:22 +08:00
import { bindProfileControls } from "./chat-room/profile-controls.js";
2026-04-25 08:05:33 +08:00
import { bindShopControls } from "./chat-room/shop-controls.js";
2026-04-25 08:07:28 +08:00
import { bindVipControls } from "./chat-room/vip-controls.js";
import {
BLOCKABLE_SYSTEM_SENDERS,
BLOCKED_SYSTEM_SENDERS_STORAGE_KEY,
CHAT_SOUND_MUTED_STORAGE_KEY,
2026-04-25 03:45:30 +08:00
bindBlockMenuControls,
2026-04-25 03:39:31 +08:00
bindSoundMuteControl,
2026-04-25 03:38:27 +08:00
isSoundMuted,
loadBlockedSystemSenders,
normalizeChatPreferences,
normalizeDailyStatus,
parseDailyStatusExpiry,
2026-04-25 03:38:27 +08:00
persistBlockedSystemSenders,
setSoundMuted,
shouldMigrateLocalChatPreferences,
} from "./chat-room/preferences-status.js";
2026-04-25 03:42:54 +08:00
import { bindChatRightPanelControls } from "./chat-room/right-panel.js";
import {
normalizeRoomStatus,
renderRoomStatusRow,
renderRoomsOnlineStatus,
renderRoomsOnlineStatusToContainer,
resolveRoomUrl,
} from "./chat-room/rooms.js";
import { createMessageQueue } from "./chat-room/message-queue.js";
if (typeof window !== "undefined") {
2026-04-25 08:16:50 +08:00
// 保留聚合入口,给新迁移模块、测试和仍在 Blade 内的存量脚本统一读取工具。
window.ChatRoomTools = {
escapeHtml,
escapeHtmlWithLineBreaks,
2026-04-25 03:54:23 +08:00
bindGlobalDialogControls,
2026-04-25 10:13:23 +08:00
bindDailySignInControls,
applyFontSize,
2026-04-25 03:40:30 +08:00
bindChatFontSizeControl,
2026-04-25 03:41:45 +08:00
bindChatImageUploadControl,
2026-04-25 03:58:26 +08:00
bindFriendPanelControls,
closeFriendPanel,
friendSearch,
loadFriends,
openFriendPanel,
2026-04-25 03:44:04 +08:00
bindMobileDrawerControls,
2026-04-25 08:21:30 +08:00
closeMobileDrawer,
loadMobileRoomList,
openMobileDrawer,
renderMobileRoomList,
renderMobileUserList,
scheduleRenderMobileUserList,
switchMobileTab,
2026-04-25 03:59:53 +08:00
bindToolbarControls,
2026-04-25 10:16:14 +08:00
runFeatureShortcut,
runToolbarAction,
2026-04-25 03:49:13 +08:00
bindWelcomeMenuControls,
bindAdminMenuControls,
2026-04-25 04:05:32 +08:00
bindBaccaratLossCoverAdminControls,
closeAdminBaccaratLossCoverModal,
closeCurrentBaccaratLossCoverEvent,
loadAdminCurrentLossCoverEvent,
openAdminBaccaratLossCoverModal,
submitBaccaratLossCoverEvent,
2026-04-25 08:16:50 +08:00
bankAction,
bankLoadInfo,
bankShowMsg,
2026-04-25 08:08:39 +08:00
bindBankControls,
2026-04-25 08:16:50 +08:00
closeBankModal,
fetchBankRanking,
openBankModal,
switchBankTab,
toggleBankRankSort,
bindFishingControls,
2026-04-25 08:10:23 +08:00
bindMarriageStatusControls,
2026-04-25 08:04:22 +08:00
bindProfileControls,
2026-04-25 08:05:33 +08:00
bindShopControls,
2026-04-25 08:07:28 +08:00
bindVipControls,
CHAT_FONT_SIZE_STORAGE_KEY,
restoreChatFontSize,
closeChatImageLightbox,
2026-04-25 03:36:30 +08:00
initChatImageLightboxEvents,
openChatImageLightbox,
BLOCKABLE_SYSTEM_SENDERS,
BLOCKED_SYSTEM_SENDERS_STORAGE_KEY,
CHAT_SOUND_MUTED_STORAGE_KEY,
2026-04-25 03:45:30 +08:00
bindBlockMenuControls,
2026-04-25 03:39:31 +08:00
bindSoundMuteControl,
2026-04-25 03:38:27 +08:00
isSoundMuted,
loadBlockedSystemSenders,
normalizeChatPreferences,
normalizeDailyStatus,
parseDailyStatusExpiry,
2026-04-25 03:38:27 +08:00
persistBlockedSystemSenders,
setSoundMuted,
shouldMigrateLocalChatPreferences,
2026-04-25 03:42:54 +08:00
bindChatRightPanelControls,
normalizeRoomStatus,
renderRoomStatusRow,
renderRoomsOnlineStatus,
renderRoomsOnlineStatusToContainer,
resolveRoomUrl,
createMessageQueue,
};
2026-04-25 08:16:50 +08:00
// 直接挂载只服务暂未迁移的 Blade 调用点;新代码优先通过模块导入或 ChatRoomTools 复用。
window.closeChatImageLightbox = closeChatImageLightbox;
window.openChatImageLightbox = openChatImageLightbox;
2026-04-25 03:58:26 +08:00
window.closeFriendPanel = closeFriendPanel;
window.friendSearch = friendSearch;
window.openFriendPanel = openFriendPanel;
2026-04-25 08:21:30 +08:00
window.closeMobileDrawer = closeMobileDrawer;
window.loadMobileRoomList = loadMobileRoomList;
window.openMobileDrawer = openMobileDrawer;
window.renderMobileRoomList = renderMobileRoomList;
window.renderMobileUserList = renderMobileUserList;
window.scheduleRenderMobileUserList = scheduleRenderMobileUserList;
window.switchMobileTab = switchMobileTab;
2026-04-25 10:16:14 +08:00
window.runFeatureShortcut = runFeatureShortcut;
window.runToolbarAction = runToolbarAction;
2026-04-25 04:05:32 +08:00
window.closeAdminBaccaratLossCoverModal = closeAdminBaccaratLossCoverModal;
window.closeCurrentBaccaratLossCoverEvent = closeCurrentBaccaratLossCoverEvent;
window.openAdminBaccaratLossCoverModal = openAdminBaccaratLossCoverModal;
window.submitBaccaratLossCoverEvent = submitBaccaratLossCoverEvent;
2026-04-25 08:16:50 +08:00
window.bankAction = bankAction;
window.bankLoadInfo = bankLoadInfo;
window.bankShowMsg = bankShowMsg;
window.closeBankModal = closeBankModal;
window.fetchBankRanking = fetchBankRanking;
window.openBankModal = openBankModal;
window.switchBankTab = switchBankTab;
window.toggleBankRankSort = toggleBankRankSort;
window.applyFontSize = applyFontSize;
2026-04-25 04:00:38 +08:00
// 页面加载后立即注册事件委托,具体业务逻辑仍由各子模块负责。
2026-04-25 03:54:23 +08:00
bindGlobalDialogControls();
2026-04-25 10:13:23 +08:00
bindDailySignInControls();
2026-04-25 03:40:30 +08:00
bindChatFontSizeControl();
2026-04-25 03:41:45 +08:00
bindChatImageUploadControl();
2026-04-25 03:58:26 +08:00
bindFriendPanelControls();
2026-04-25 03:59:53 +08:00
bindToolbarControls();
bindAdminMenuControls();
2026-04-25 04:05:32 +08:00
bindBaccaratLossCoverAdminControls();
2026-04-25 08:08:39 +08:00
bindBankControls();
bindFishingControls();
2026-04-25 08:10:23 +08:00
bindMarriageStatusControls();
2026-04-25 08:04:22 +08:00
bindProfileControls();
2026-04-25 08:05:33 +08:00
bindShopControls();
2026-04-25 08:07:28 +08:00
bindVipControls();
2026-04-25 03:42:54 +08:00
bindChatRightPanelControls();
2026-04-25 03:44:04 +08:00
bindMobileDrawerControls();
2026-04-25 03:49:13 +08:00
bindWelcomeMenuControls();
2026-04-25 03:45:30 +08:00
bindBlockMenuControls();
}