迁移聊天表单提交事件

This commit is contained in:
2026-04-25 10:41:20 +08:00
parent ef434f0703
commit 21a727a693
3 changed files with 34 additions and 1 deletions
+4
View File
@@ -6,6 +6,7 @@ export { bindGlobalDialogControls } from "./chat-room/dialog.js";
export { bindDailySignInControls } from "./chat-room/daily-sign-in.js";
export { applyFontSize, bindChatFontSizeControl, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize } from "./chat-room/font-size.js";
export { bindChatImageUploadControl } from "./chat-room/image-upload.js";
export { bindChatComposerControls } from "./chat-room/composer.js";
export { bindFriendPanelControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel, quickFriendAction } from "./chat-room/friend-panel.js";
export { closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox } from "./chat-room/lightbox.js";
export {
@@ -76,6 +77,7 @@ import { bindGlobalDialogControls } from "./chat-room/dialog.js";
import { bindDailySignInControls } from "./chat-room/daily-sign-in.js";
import { applyFontSize, bindChatFontSizeControl, CHAT_FONT_SIZE_STORAGE_KEY, restoreChatFontSize } from "./chat-room/font-size.js";
import { bindChatImageUploadControl } from "./chat-room/image-upload.js";
import { bindChatComposerControls } from "./chat-room/composer.js";
import { bindFriendPanelControls, closeFriendPanel, friendSearch, loadFriends, openFriendPanel, quickFriendAction } from "./chat-room/friend-panel.js";
import { closeChatImageLightbox, initChatImageLightboxEvents, openChatImageLightbox } from "./chat-room/lightbox.js";
import {
@@ -151,6 +153,7 @@ if (typeof window !== "undefined") {
applyFontSize,
bindChatFontSizeControl,
bindChatImageUploadControl,
bindChatComposerControls,
bindFriendPanelControls,
closeFriendPanel,
friendSearch,
@@ -253,6 +256,7 @@ if (typeof window !== "undefined") {
bindDailySignInControls();
bindChatFontSizeControl();
bindChatImageUploadControl();
bindChatComposerControls();
bindFriendPanelControls();
bindToolbarControls();
bindAdminMenuControls();
+29
View File
@@ -0,0 +1,29 @@
// 聊天输入区事件绑定,逐步替代底部输入栏内联提交事件。
let chatComposerEventsBound = false;
/**
* 绑定聊天表单提交事件。
* 发送主流程仍由 Blade 主脚本的 sendMessage 维护,这里只统一 submit 入口。
*
* @returns {void}
*/
export function bindChatComposerControls() {
if (chatComposerEventsBound || typeof document === "undefined") {
return;
}
chatComposerEventsBound = true;
document.addEventListener("submit", (event) => {
const form = event.target;
if (!(form instanceof HTMLFormElement) || !form.matches("[data-chat-form]")) {
return;
}
event.preventDefault();
if (typeof window.sendMessage === "function") {
void window.sendMessage(event);
}
});
}
@@ -19,7 +19,7 @@
@endphp
<div class="input-bar">
<form id="chat-form" onsubmit="sendMessage(event)" enctype="multipart/form-data">
<form id="chat-form" data-chat-form enctype="multipart/form-data">
{{-- 第一行:工具选项 --}}
<div class="input-row">
<label>