use std::collections::HashSet; use contact_request_manager::AddContact; use jid::BareJID; use leptos::prelude::*; use reactive_stores::Store; use roster_list_item::RosterListItem; use crate::{components::icon::IconComponent, icon::Icon, roster::{Roster, RosterStoreFields}}; mod contact_request_manager; mod roster_list_item; #[component] pub fn RosterList() -> impl IntoView { let requests: ReadSignal> = use_context().expect("no pending subscriptions in context"); let roster: Store = use_context().expect("no roster in context"); let (open_add_contact, set_open_add_contact) = signal(false); // TODO: filter new messages signal view! {

Roster

{move || { if !requests.read().is_empty() { view! {
}.into_any() } else { view! {}.into_any() } }}
{move || { if *open_add_contact.read() { view! {
}.into_any() } else { view! {}.into_any() } }}
} }