summaryrefslogtreecommitdiffstats
path: root/src/components/message_history_buffer.rs
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@bunny.garden>2025-06-11 22:17:11 +0100
committerLibravatar cel 🌸 <cel@bunny.garden>2025-06-11 22:17:11 +0100
commitadeac2e7cd93ea449de0ce30247adbd13cd7120d (patch)
tree4b12fa401cdfd84780f39e46c9517e705641009c /src/components/message_history_buffer.rs
parent2cac8c729c8ee175f01f677f285382349a7f9f62 (diff)
downloadmacaw-web-adeac2e7cd93ea449de0ce30247adbd13cd7120d.tar.gz
macaw-web-adeac2e7cd93ea449de0ce30247adbd13cd7120d.tar.bz2
macaw-web-adeac2e7cd93ea449de0ce30247adbd13cd7120d.zip
feat: date dividers
Diffstat (limited to 'src/components/message_history_buffer.rs')
-rw-r--r--src/components/message_history_buffer.rs29
1 files changed, 20 insertions, 9 deletions
diff --git a/src/components/message_history_buffer.rs b/src/components/message_history_buffer.rs
index cf4c328..9dc0473 100644
--- a/src/components/message_history_buffer.rs
+++ b/src/components/message_history_buffer.rs
@@ -111,23 +111,25 @@ pub fn MessageHistoryBuffer(chat: MacawChat) -> impl IntoView {
.into_iter()
.map(|(id, message)| {
let message_timestamp = message.message.get().timestamp().read().naive_local();
- // TODO: mark new day
- // if message_timestamp.date() > last_timestamp.date() {
- // messages_view = messages_view.push(date(message_timestamp.date()));
- // }
- let major = if last_user.as_ref() != Some(&message.message.get().read().from)
+ let mut major = if last_user.as_ref() != Some(&message.message.get().read().from)
|| message_timestamp - last_timestamp > TimeDelta::minutes(3)
{
true
} else {
false
};
+ let new_day = if message_timestamp.date() > last_timestamp.date() {
+ major = true;
+ true
+ } else {
+ false
+ };
last_user = Some(message.get().from().get());
last_timestamp = message_timestamp;
- (id, (message, major, false))
+ (id, (message, major, false, new_day))
})
.collect::<Vec<_>>();
- if let Some((_id, (_, _, last))) = messages.last_mut() {
+ if let Some((_id, (_, _, last, _))) = messages.last_mut() {
*last = true
}
messages.into_iter().rev()
@@ -135,8 +137,17 @@ pub fn MessageHistoryBuffer(chat: MacawChat) -> impl IntoView {
view! {
<div class="messages-buffer">
- <For each=each key=|message| (message.0, message.1.1, message.1.2) let(message)>
- <Message message=message.1.0.into() major=message.1.1 r#final=message.1.2 />
+ <For
+ each=each
+ key=|message| (message.0, message.1.1, message.1.2, message.1.3)
+ let(message)
+ >
+ <Message
+ message=message.1.0.into()
+ major=message.1.1
+ r#final=message.1.2
+ new_day=message.1.3
+ />
</For>
</div>
}