diff options
Diffstat (limited to '')
| -rw-r--r-- | src/components/avatar.rs | 4 | ||||
| -rw-r--r-- | src/components/chat_header.rs | 4 | ||||
| -rw-r--r-- | src/components/chats_list.rs | 4 | ||||
| -rw-r--r-- | src/components/chats_list/chats_list_item.rs | 4 | ||||
| -rw-r--r-- | src/components/icon.rs | 4 | ||||
| -rw-r--r-- | src/components/message.rs | 4 | ||||
| -rw-r--r-- | src/components/message_composer.rs | 4 | ||||
| -rw-r--r-- | src/components/message_history_buffer.rs | 4 | ||||
| -rw-r--r-- | src/components/mod.rs | 4 | ||||
| -rw-r--r-- | src/components/modal.rs | 4 | ||||
| -rw-r--r-- | src/components/new_chat.rs | 4 | ||||
| -rw-r--r-- | src/components/overlay.rs | 4 | ||||
| -rw-r--r-- | src/components/personal_status.rs | 4 | ||||
| -rw-r--r-- | src/components/roster_list.rs | 4 | ||||
| -rw-r--r-- | src/components/roster_list/contact_request_manager.rs | 39 | ||||
| -rw-r--r-- | src/components/roster_list/roster_list_item.rs | 4 | ||||
| -rw-r--r-- | src/components/sidebar.rs | 8 |
17 files changed, 100 insertions, 7 deletions
diff --git a/src/components/avatar.rs b/src/components/avatar.rs index 7ab7544..11d2097 100644 --- a/src/components/avatar.rs +++ b/src/components/avatar.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use filamento::{presence::PresenceType, user::User}; use leptos::prelude::*; use reactive_stores::Store; diff --git a/src/components/chat_header.rs b/src/components/chat_header.rs index 47367dc..3fb5df8 100644 --- a/src/components/chat_header.rs +++ b/src/components/chat_header.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use filamento::user::UserStoreFields; use leptos::prelude::*; use reactive_stores::ArcStore; diff --git a/src/components/chats_list.rs b/src/components/chats_list.rs index 027de64..73ffdff 100644 --- a/src/components/chats_list.rs +++ b/src/components/chats_list.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use chats_list_item::ChatsListItem; use indexmap::IndexMap; use jid::BareJID; diff --git a/src/components/chats_list/chats_list_item.rs b/src/components/chats_list/chats_list_item.rs index e61bf45..3e18dbe 100644 --- a/src/components/chats_list/chats_list_item.rs +++ b/src/components/chats_list/chats_list_item.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use std::ops::Deref; use chrono::Local; diff --git a/src/components/icon.rs b/src/components/icon.rs index 307d367..73b0f5d 100644 --- a/src/components/icon.rs +++ b/src/components/icon.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use filamento::{chat::Delivery, presence::Show}; use leptos::prelude::*; diff --git a/src/components/message.rs b/src/components/message.rs index 1ddb603..83a4bad 100644 --- a/src/components/message.rs +++ b/src/components/message.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use filamento::chat::MessageStoreFields; use leptos::prelude::*; use reactive_stores::{ArcStore, Store}; diff --git a/src/components/message_composer.rs b/src/components/message_composer.rs index 6b34298..fd4e59b 100644 --- a/src/components/message_composer.rs +++ b/src/components/message_composer.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use filamento::chat::Body; use jid::BareJID; use js_sys::{wasm_bindgen::UnwrapThrowExt, Object, Reflect, JSON}; diff --git a/src/components/message_history_buffer.rs b/src/components/message_history_buffer.rs index 9dc0473..c733700 100644 --- a/src/components/message_history_buffer.rs +++ b/src/components/message_history_buffer.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use chrono::{NaiveDateTime, TimeDelta}; use filamento::{ chat::{Chat, ChatStoreFields, MessageStoreFields}, diff --git a/src/components/mod.rs b/src/components/mod.rs index 0e2ffce..d2fb6b5 100644 --- a/src/components/mod.rs +++ b/src/components/mod.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + mod avatar; pub mod chat_header; mod chats_list; diff --git a/src/components/modal.rs b/src/components/modal.rs index f0fd68a..e23fa5d 100644 --- a/src/components/modal.rs +++ b/src/components/modal.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use leptos::ev::MouseEvent; use leptos::prelude::*; diff --git a/src/components/new_chat.rs b/src/components/new_chat.rs index 3e7a261..925ec57 100644 --- a/src/components/new_chat.rs +++ b/src/components/new_chat.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use std::str::FromStr; use filamento::{ diff --git a/src/components/overlay.rs b/src/components/overlay.rs index 396e885..d10f33a 100644 --- a/src/components/overlay.rs +++ b/src/components/overlay.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use leptos::prelude::*; use tracing::debug; diff --git a/src/components/personal_status.rs b/src/components/personal_status.rs index 59ffa47..b74b366 100644 --- a/src/components/personal_status.rs +++ b/src/components/personal_status.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use filamento::{ presence::{Offline, Online, PresenceType, Show}, user::{User, UserStoreFields}, diff --git a/src/components/roster_list.rs b/src/components/roster_list.rs index 21a9666..b018d45 100644 --- a/src/components/roster_list.rs +++ b/src/components/roster_list.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use std::collections::HashSet; use contact_request_manager::AddContact; diff --git a/src/components/roster_list/contact_request_manager.rs b/src/components/roster_list/contact_request_manager.rs index cfb5f28..4c28142 100644 --- a/src/components/roster_list/contact_request_manager.rs +++ b/src/components/roster_list/contact_request_manager.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use std::{collections::HashSet, str::FromStr}; use filamento::{ @@ -51,6 +55,7 @@ pub fn AddContact() -> impl IntoView { let client2 = client.clone(); let client3 = client.clone(); let client4 = client.clone(); + let client5 = client.clone(); let add_contact = Action::new_local(move |_| { let client = client.clone(); @@ -124,7 +129,18 @@ pub fn AddContact() -> impl IntoView { let jid = jid.clone(); async move { // TODO: error - client.accept_buddy_request(jid).await; + client.accept_buddy_request(jid.clone()).await; + set_requests.write().remove(&jid); + } + }); + + let accept_subscription_request = Action::new_local(move |jid: &BareJID| { + let client = client5.clone(); + let jid = jid.clone(); + async move { + // TODO: error + client.accept_subscription_request(jid.clone()).await; + set_requests.write().remove(&jid); } }); @@ -186,26 +202,35 @@ pub fn AddContact() -> impl IntoView { { let request2 = request.clone(); let request3 = request.clone(); + let request4 = request.clone(); let jid_string = move || request.to_string(); view! { - <div class="jid-with-button"> + <div class="jid-with-buttons"> <div class="jid">{jid_string}</div> - <div> + <div class="buttons"> <div class="button" on:click=move |_| { - accept_friend_request.dispatch(request2.clone()); + reject_friend_request.dispatch(request3.clone()); } > - Accept + Reject </div> <div class="button" on:click=move |_| { - reject_friend_request.dispatch(request3.clone()); + accept_subscription_request.dispatch(request4.clone()); } > - Reject + Sub-only + </div> + <div + class="button" + on:click=move |_| { + accept_friend_request.dispatch(request2.clone()); + } + > + Accept Buddy </div> </div> </div> diff --git a/src/components/roster_list/roster_list_item.rs b/src/components/roster_list/roster_list_item.rs index c90455c..a6fd714 100644 --- a/src/components/roster_list/roster_list_item.rs +++ b/src/components/roster_list/roster_list_item.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use std::ops::Deref; use filamento::{ diff --git a/src/components/sidebar.rs b/src/components/sidebar.rs index 5248a55..9f555b5 100644 --- a/src/components/sidebar.rs +++ b/src/components/sidebar.rs @@ -1,3 +1,7 @@ +// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden> +// +// SPDX-License-Identifier: AGPL-3.0-or-later + use std::collections::{HashMap, HashSet}; use jid::BareJID; @@ -114,6 +118,8 @@ pub fn Sidebar() -> impl IntoView { .update(|state| { if !toggle_open(state, SidebarOpen::Roster) { set_just_closed.set(true); + } else { + set_just_closed.set(false); } }) } @@ -146,6 +152,8 @@ pub fn Sidebar() -> impl IntoView { .update(|state| { if !toggle_open(state, SidebarOpen::Chats) { set_just_closed.set(true); + } else { + set_just_closed.set(false); } }) } |
