From fdfbf5ecc4f64ae8c4758e5542f20b5b098614b0 Mon Sep 17 00:00:00 2001 From: rajchales-monito Date: Thu, 23 Jul 2026 23:38:33 +0200 Subject: [PATCH] Allow image-only visitor messages --- public/admin.js | 27 +++++++++++++++++---------- public/widget.js | 6 +++--- server.js | 8 ++++---- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/public/admin.js b/public/admin.js index e224f59..94c263c 100644 --- a/public/admin.js +++ b/public/admin.js @@ -69,21 +69,28 @@ $("#settingsForm").addEventListener("submit", async (event) => { $("#replyForm").addEventListener("submit", async (event) => { event.preventDefault(); if (!state.activeId) return; + const textarea = event.currentTarget.querySelector("textarea[name='message']"); + const originalMessage = textarea.value; const form = new FormData(event.currentTarget); const payload = { message: form.get("message") || "", attachments: await Promise.all(state.replyFiles.slice(0, 3).map(fileToPayload)) }; if (!payload.message.trim() && !payload.attachments.length) return; - await api(`/api/admin/conversations/${state.activeId}/messages`, { - method: "POST", - body: payload - }); - event.currentTarget.querySelector("textarea[name='message']").value = ""; - event.currentTarget.reset(); - state.replyFiles = []; - renderReplyAttachments(); - await openConversation(state.activeId); + textarea.value = ""; + try { + await api(`/api/admin/conversations/${state.activeId}/messages`, { + method: "POST", + body: payload + }); + event.currentTarget.reset(); + state.replyFiles = []; + renderReplyAttachments(); + await openConversation(state.activeId); + } catch (error) { + textarea.value = originalMessage; + throw error; + } }); $("#replyForm textarea").addEventListener("keydown", (event) => { @@ -299,7 +306,7 @@ function renderActive() { $("#messages").innerHTML = messages.map((message) => `
${escapeHtml(message.senderName || message.senderType)} ยท ${escapeHtml(message.createdAt)}
-

${escapeHtml(message.body)}

+ ${message.body ? `

${escapeHtml(message.body)}

` : ""} ${renderAttachments(message.attachments)}
`).join(""); diff --git a/public/widget.js b/public/widget.js index d32a2bf..61d5e8d 100644 --- a/public/widget.js +++ b/public/widget.js @@ -37,7 +37,7 @@
- +