From f523ec812c8f1ccc5980741c012cf5dc769717cf Mon Sep 17 00:00:00 2001 From: Arkitu <85173315+Arkitu@users.noreply.github.com> Date: Sun, 4 May 2025 11:59:10 +0200 Subject: [PATCH] chat works --- src/apps/chat.rs | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/src/apps/chat.rs b/src/apps/chat.rs index a9572e8..53e1b2b 100644 --- a/src/apps/chat.rs +++ b/src/apps/chat.rs @@ -47,6 +47,7 @@ impl App for ChatApp { let mut load = None; let mut username = None; let mut msg_content = None; + let mut poll = false; for arg in args.split('&').chain(content.split('&')) { match arg.split_once('=') { Some(("load", n)) => { @@ -79,6 +80,7 @@ impl App for ChatApp { } msg_content = Some(msg); } + Some(("poll", "true")) => poll = true, _ => {} } } @@ -100,15 +102,19 @@ impl App for ChatApp { hx-trigger=\"load\" \ >\ \ - ", + hx-target=\"this\" \ + hx-swap=\"innerHTML\"\ + >\ + \ + + ", username.unwrap(), MEMORY_SIZE, MAX_MESSAGE_SIZE @@ -121,7 +127,19 @@ impl App for ChatApp { author: username.unwrap(), content: msg_content.unwrap(), }); - return (HttpResCode::NoContent, "", &[]); + self.res_buf.clear(); + unwrap(write!( + &mut self.res_buf, + "\ + ", + MAX_MESSAGE_SIZE + )) + .await; + return (HttpResCode::Ok, "html", &self.res_buf); } else if path.starts_with("/chat/message/") && path.len() > 14 { let msg_id: u16 = match path[14..].parse() { Ok(n) => n, @@ -137,14 +155,13 @@ impl App for ChatApp { self.res_buf.clear(); unwrap(write!(&mut self.res_buf, "