diff options
Diffstat (limited to 'src/components/chats_list')
| -rw-r--r-- | src/components/chats_list/chats_list_item.rs | 48 | 
1 files changed, 35 insertions, 13 deletions
diff --git a/src/components/chats_list/chats_list_item.rs b/src/components/chats_list/chats_list_item.rs index ae01288..e61bf45 100644 --- a/src/components/chats_list/chats_list_item.rs +++ b/src/components/chats_list/chats_list_item.rs @@ -1,12 +1,21 @@  use std::ops::Deref;  use chrono::Local; -use filamento::{chat::{Chat, ChatStoreFields, Message, MessageStoreFields}, user::User}; +use filamento::{ +    chat::{Chat, ChatStoreFields, Message, MessageStoreFields}, +    user::User, +};  use leptos::prelude::*;  use reactive_stores::{ArcStore, Store};  use tracing::debug; -use crate::{chat::MacawChat, components::{avatar::AvatarWithPresence, sidebar::Open}, message::MacawMessage, open_chats::{OpenChatsPanel, OpenChatsPanelStoreFields}, user::get_name}; +use crate::{ +    chat::MacawChat, +    components::{avatar::AvatarWithPresence, sidebar::Open}, +    message::MacawMessage, +    open_chats::{OpenChatsPanel, OpenChatsPanelStoreFields}, +    user::get_name, +};  #[component]  pub fn ChatsListItem(chat: MacawChat, message: MacawMessage) -> impl IntoView { @@ -44,23 +53,36 @@ pub fn ChatsListItem(chat: MacawChat, message: MacawMessage) -> impl IntoView {      let date = move || message.get().timestamp().read().naive_local();      let now = move || Local::now().naive_local(); -    let timeinfo = move || if date().date() == now().date() { -        // TODO: localisation/config -        date().time().format("%H:%M").to_string() -    } else { -        date().date().format("%d/%m").to_string() +    let timeinfo = move || { +        if date().date() == now().date() { +            // TODO: localisation/config +            date().time().format("%H:%M").to_string() +        } else { +            date().date().format("%d/%m").to_string() +        }      };      view! { -        <div class="chats-list-item" class:open=move || open() class:focused=move || focused() on:click=open_chat> +        <div +            class="chats-list-item" +            class:open=move || open() +            class:focused=move || focused() +            on:click=open_chat +        >              {move || { -                view! { -                    <AvatarWithPresence user=chat.user /> -                } +                view! { <AvatarWithPresence user=chat.user /> }              }}              <div class="item-info"> -                <div class="main-info"><p class="name">{name}</p><p class="timestamp">{timeinfo}</p></div> -                <div class="sub-info"><p class="message-preview">{latest_message_body}</p><p><!-- "TODO: delivery or unread state" --></p></div> +                <div class="main-info"> +                    <p class="name">{name}</p> +                    <p class="timestamp">{timeinfo}</p> +                </div> +                <div class="sub-info"> +                    <p class="message-preview">{latest_message_body}</p> +                    <p> +                        <!-- "TODO: delivery or unread state" --> +                    </p> +                </div>              </div>          </div>      }  | 
