Clarify chat response progress
CI / test (push) Failing after 30s

This commit is contained in:
m
2026-08-29 14:31:03 +03:00
parent 992c84240b
commit 2dc5587fd1
3 changed files with 9 additions and 1 deletions
+1
View File
@@ -85,6 +85,7 @@ textarea { resize: vertical; min-height: 84px; max-height: 240px; padding: 14px;
.composer-hint { display: flex; justify-content: space-between; gap: 12px; padding: 0 12px 8px; color: #68776d; font: 9px/1 var(--mono); }
.composer-hint output { color: var(--muted); white-space: nowrap; }
.composer button { height: 48px; align-self: end; display: inline-flex; align-items: center; justify-content: space-between; gap: 8px; padding-inline: 15px; }
.composer button[aria-busy="true"] { color: #4b432d; background: #ad9353; }
.composer button span:last-child { opacity: .65; font: 16px/1 var(--mono); }
.composer button:disabled { cursor: wait; filter: saturate(.3); }
.media-tools { width: min(100%, 920px); margin: 0 auto; padding: 0 18px 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--muted); font: 10px/1 var(--mono); text-transform: uppercase; letter-spacing: .06em; }
+7
View File
@@ -6,6 +6,7 @@ const messages = document.querySelector("#messages");
const chatForm = document.querySelector("#chat-form");
const messageInput = document.querySelector("#message");
const sendButton = document.querySelector("#send");
const sendLabel = document.querySelector("#send-label");
const messageCount = document.querySelector("#message-count");
const logoutButton = document.querySelector("#logout");
const activeFocus = document.querySelector("#active-focus");
@@ -303,6 +304,9 @@ async function sendChatMessage(text, options = {}) {
if (!clean) return;
if (!options.silentUser) appendMessage("user", clean);
sendButton.disabled = true;
sendButton.setAttribute("aria-busy", "true");
if (sendLabel) sendLabel.textContent = "Домовой обрабатывает";
messages.setAttribute("aria-busy", "true");
try {
const result = await api("/api/chat/messages", {method: "POST", body: JSON.stringify({conversation_id: conversationID, message: clean})});
conversationID = result.conversation_id;
@@ -323,6 +327,9 @@ async function sendChatMessage(text, options = {}) {
}
} finally {
sendButton.disabled = false;
sendButton.removeAttribute("aria-busy");
if (sendLabel) sendLabel.textContent = "Отправить";
messages.removeAttribute("aria-busy");
messageInput.focus();
}
}
+1 -1
View File
@@ -61,7 +61,7 @@
<textarea id="message" rows="1" maxlength="16384" aria-label="Сообщение Домовому" placeholder="Напишите Домовому обычное сообщение..." required></textarea>
<div class="composer-hint"><span>Enter — отправить · Shift+Enter — новая строка</span><output id="message-count" aria-live="polite">0 / 16384</output></div>
</div>
<button id="send" type="submit"><span>Отправить</span><span aria-hidden="true">↵</span></button>
<button id="send" type="submit"><span id="send-label">Отправить</span><span aria-hidden="true">↵</span></button>
</form>
<div class="media-tools" aria-label="Мультимодальные сообщения">
<label>Аудио <input id="audio-input" type="file" accept="audio/*"></label>