summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/chat.rs4
-rw-r--r--src/client.rs4
-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
-rw-r--r--src/contact.rs4
-rw-r--r--src/context.rs3
-rw-r--r--src/files.rs4
-rw-r--r--src/icon.rs4
-rw-r--r--src/lib.rs4
-rw-r--r--src/main.rs4
-rw-r--r--src/message.rs4
-rw-r--r--src/message_subscriptions.rs4
-rw-r--r--src/open_chats.rs4
-rw-r--r--src/roster.rs4
-rw-r--r--src/state_store.rs4
-rw-r--r--src/user.rs4
-rw-r--r--src/user_presences.rs4
-rw-r--r--src/views/login_page.rs4
-rw-r--r--src/views/macaw.rs4
-rw-r--r--src/views/macaw/open_chats_panel.rs4
-rw-r--r--src/views/macaw/settings.rs4
-rw-r--r--src/views/mod.rs4
37 files changed, 179 insertions, 7 deletions
diff --git a/src/chat.rs b/src/chat.rs
index 1c92425..e40119f 100644
--- a/src/chat.rs
+++ b/src/chat.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::ops::{Deref, DerefMut};
use filamento::{chat::Chat, user::User};
diff --git a/src/client.rs b/src/client.rs
index 423beaf..02ee537 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::{
ops::{Deref, DerefMut},
sync::Arc,
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);
}
})
}
diff --git a/src/contact.rs b/src/contact.rs
index 017b00c..b7f57fa 100644
--- a/src/contact.rs
+++ b/src/contact.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::ops::{Deref, DerefMut};
use filamento::{roster::Contact, user::User};
diff --git a/src/context.rs b/src/context.rs
index e69de29..da660dc 100644
--- a/src/context.rs
+++ b/src/context.rs
@@ -0,0 +1,3 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
diff --git a/src/files.rs b/src/files.rs
index 21fdcde..760549f 100644
--- a/src/files.rs
+++ b/src/files.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use base64::{Engine, prelude::BASE64_STANDARD};
use filamento::files::{FileStore, FilesMem, FilesOPFS, opfs::OPFSError};
diff --git a/src/icon.rs b/src/icon.rs
index be66cec..231ad2e 100644
--- a/src/icon.rs
+++ b/src/icon.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
#[derive(Copy, Clone)]
pub enum Icon {
AddContact24,
diff --git a/src/lib.rs b/src/lib.rs
index 7abe68d..fcd632e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
pub use views::App;
mod chat;
diff --git a/src/main.rs b/src/main.rs
index fd4a1de..3db4c25 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use leptos::prelude::*;
use macaw_web::App;
diff --git a/src/message.rs b/src/message.rs
index e2e4034..20e37b9 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::ops::{Deref, DerefMut};
use filamento::{chat::Message, user::User};
diff --git a/src/message_subscriptions.rs b/src/message_subscriptions.rs
index aac1725..eebbef3 100644
--- a/src/message_subscriptions.rs
+++ b/src/message_subscriptions.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::collections::HashMap;
use jid::BareJID;
diff --git a/src/open_chats.rs b/src/open_chats.rs
index 8b2f2cb..bf2eb73 100644
--- a/src/open_chats.rs
+++ b/src/open_chats.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use filamento::chat::ChatStoreFields;
use indexmap::IndexMap;
use jid::BareJID;
diff --git a/src/roster.rs b/src/roster.rs
index d49a152..13aed19 100644
--- a/src/roster.rs
+++ b/src/roster.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::collections::HashMap;
use jid::BareJID;
diff --git a/src/state_store.rs b/src/state_store.rs
index e0ba979..1e67f34 100644
--- a/src/state_store.rs
+++ b/src/state_store.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::{
collections::HashMap,
ops::{Deref, DerefMut},
diff --git a/src/user.rs b/src/user.rs
index b65e4c9..e277efd 100644
--- a/src/user.rs
+++ b/src/user.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::ops::{Deref, DerefMut};
use filamento::user::{User, UserStoreFields};
diff --git a/src/user_presences.rs b/src/user_presences.rs
index e864dbf..87f9bdc 100644
--- a/src/user_presences.rs
+++ b/src/user_presences.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::collections::HashMap;
use chrono::Utc;
diff --git a/src/views/login_page.rs b/src/views/login_page.rs
index 3506aee..d1bb29a 100644
--- a/src/views/login_page.rs
+++ b/src/views/login_page.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use std::{str::FromStr, sync::Arc};
use filamento::{
diff --git a/src/views/macaw.rs b/src/views/macaw.rs
index 0ef8255..e91e08a 100644
--- a/src/views/macaw.rs
+++ b/src/views/macaw.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 filamento::{
diff --git a/src/views/macaw/open_chats_panel.rs b/src/views/macaw/open_chats_panel.rs
index 43ce59e..375e8f3 100644
--- a/src/views/macaw/open_chats_panel.rs
+++ b/src/views/macaw/open_chats_panel.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use leptos::prelude::*;
use open_chat::OpenChatView;
use reactive_stores::{ArcStore, Store};
diff --git a/src/views/macaw/settings.rs b/src/views/macaw/settings.rs
index 1a23b82..7bdc2b9 100644
--- a/src/views/macaw/settings.rs
+++ b/src/views/macaw/settings.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use leptos::prelude::*;
use profile_settings::ProfileSettings;
diff --git a/src/views/mod.rs b/src/views/mod.rs
index fa988cd..69ba606 100644
--- a/src/views/mod.rs
+++ b/src/views/mod.rs
@@ -1,3 +1,7 @@
+// SPDX-FileCopyrightText: 2025 cel <cel@bunny.garden>
+//
+// SPDX-License-Identifier: AGPL-3.0-or-later
+
use filamento::UpdateMessage;
use leptos::prelude::*;
use login_page::LoginPage;