From d2ef3a71834b367f8f7da5cbc4be4ce43f7ba684 Mon Sep 17 00:00:00 2001 From: cel 🌸 Date: Thu, 12 Jun 2025 01:55:24 +0100 Subject: feat: better contact management menu styling --- assets/style.scss | 19 ++++++++++++ .../roster_list/contact_request_manager.rs | 35 +++++++++++++++++----- 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/assets/style.scss b/assets/style.scss index 016c568..c075ced 100644 --- a/assets/style.scss +++ b/assets/style.scss @@ -130,6 +130,7 @@ main { button, .button { + text-align: center; font-size: 1rem; background: #FACC34; color: #000000; @@ -896,6 +897,24 @@ hr { justify-content: space-between; } +.jid-with-buttons { + display: flex; + flex-direction: column; + align-items: stretch; + gap: 4px; + margin-bottom: 8px; +} + +.jid-with-buttons .buttons { + display: flex; + align-items: center; + gap: 4px; +} + +.jid-with-buttons .buttons>* { + flex: 1 1 auto; +} + .jid-with-button .jid { flex: 1 1 auto; } diff --git a/src/components/roster_list/contact_request_manager.rs b/src/components/roster_list/contact_request_manager.rs index cfb5f28..12a3611 100644 --- a/src/components/roster_list/contact_request_manager.rs +++ b/src/components/roster_list/contact_request_manager.rs @@ -51,6 +51,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 +125,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 +198,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! { -
+
{jid_string}
-
+
- Accept + Reject
- Reject + Sub-only +
+
+ Accept Buddy
-- cgit