use dioxus::prelude::*;
use crate::components::avatar::Avatar;
use crate::state::room_state::ReadReceipt;
#[component]
pub fn ReadReceiptList(receipts: Vec<ReadReceipt>) -> Element {
if receipts.is_empty() {
return rsx! {};
}
let display_count = receipts.len().min(3);
let overflow = receipts.len().saturating_sub(3);
rsx! {
div {
class: "read-receipts",
for receipt in receipts.iter().take(display_count) {
Avatar {
name: receipt.display_name.clone().unwrap_or_else(|| receipt.user_id.to_string()),
url: receipt.avatar_url.clone(),
size: 16,
}
}
if overflow > 0 {
span {
class: "read-receipts__overflow",
"+{overflow}"
}
}
}
}
}