summaryrefslogtreecommitdiffstats
path: root/src/components
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/components/avatar.rs4
-rw-r--r--src/components/chat_header.rs4
-rw-r--r--src/components/chats_list.rs4
-rw-r--r--src/components/chats_list/chats_list_item.rs4
-rw-r--r--src/components/icon.rs4
-rw-r--r--src/components/message.rs4
-rw-r--r--src/components/message_composer.rs4
-rw-r--r--src/components/message_history_buffer.rs4
-rw-r--r--src/components/mod.rs4
-rw-r--r--src/components/modal.rs4
-rw-r--r--src/components/new_chat.rs4
-rw-r--r--src/components/overlay.rs4
-rw-r--r--src/components/personal_status.rs4
-rw-r--r--src/components/roster_list.rs4
-rw-r--r--src/components/roster_list/contact_request_manager.rs39
-rw-r--r--src/components/roster_list/roster_list_item.rs4
-rw-r--r--src/components/sidebar.rs8
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);
}
})
}