chat_ui_components/components/
message_item.rs1use dioxus::prelude::*;
2use chat_core::history::types::ChatMessage;
3
4#[component]
5pub fn MessageItem(msg: ChatMessage, is_local: bool) -> Element {
6 let time = {
7 let secs = (msg.timestamp / 1000.0) as i64;
8 let mins = (secs / 60) % 60;
9 let hours = (secs / 3600) % 24;
10 format!("{:02}:{:02}:{:02}", hours, mins, secs % 60)
11 };
12
13 let sender = if is_local { "You" } else { &msg.nickname };
14 let msg_class = if is_local { "chat-message local" } else { "chat-message" };
15
16 rsx! {
17 div {
18 class: msg_class,
19 span {
20 class: "msg-time",
21 "[{time}] "
22 }
23 span {
24 class: "msg-sender",
25 "{sender}: "
26 }
27 span {
28 class: "msg-content",
29 "{msg.content}"
30 }
31 }
32 }
33}