fix(12-03): clear discussion composer after suppressed swap

This commit is contained in:
Arthur Belleville 2026-05-16 10:29:38 +02:00
parent 426d89c43b
commit 1034efcec4
No known key found for this signature in database
2 changed files with 7 additions and 2 deletions

View file

@ -491,7 +491,7 @@ func TestDiscussionStaticScriptClearsComposerAfterSuccessfulPost(t *testing.T) {
t.Fatalf("read discussion-sse.js: %v", err)
}
script := string(js)
for _, want := range []string{"htmx:afterRequest", "requestConfig.elt", "discussion-message-body", ".reset()"} {
for _, want := range []string{"htmx:afterRequest", "requestConfig.elt", "isSuccessfulDiscussionPost", "xhr.status", "discussion-message-body", ".reset()"} {
if !strings.Contains(script, want) {
t.Fatalf("discussion script missing %q for composer reset; script: %.1200s", want, script)
}

View file

@ -11,6 +11,11 @@
return detail && detail.requestConfig && detail.requestConfig.elt;
}
function isSuccessfulDiscussionPost(detail) {
var status = detail && detail.xhr && detail.xhr.status;
return status >= 200 && status < 300;
}
function messageIdFromHTML(html) {
if (!html) return "";
var template = document.createElement("template");
@ -79,7 +84,7 @@
});
document.body.addEventListener("htmx:afterRequest", function (event) {
var form = requestElement(event.detail);
if (!isDiscussionMessageForm(form) || !event.detail.successful) return;
if (!isDiscussionMessageForm(form) || !isSuccessfulDiscussionPost(event.detail)) return;
form.reset();
var textarea = form.querySelector("#discussion-message-body");