From adeac2e7cd93ea449de0ce30247adbd13cd7120d Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Wed, 11 Jun 2025 22:17:11 +0100 Subject: feat: date dividers --- src/components/message_history_buffer.rs | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'src/components/message_history_buffer.rs') 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::>(); - 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! {
- - + +
} -- cgit