diff options
author | 2025-06-12 01:55:24 +0100 | |
---|---|---|
committer | 2025-06-12 01:55:24 +0100 | |
commit | d2ef3a71834b367f8f7da5cbc4be4ce43f7ba684 (patch) | |
tree | cb2d502cc867cf8c490a98c5a19c93092558da23 /src | |
parent | 5d0b9742f7ed1cfadd0fcec6b4c1471a341f7d5c (diff) | |
download | macaw-web-d2ef3a71834b367f8f7da5cbc4be4ce43f7ba684.tar.gz macaw-web-d2ef3a71834b367f8f7da5cbc4be4ce43f7ba684.tar.bz2 macaw-web-d2ef3a71834b367f8f7da5cbc4be4ce43f7ba684.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/components/roster_list/contact_request_manager.rs | 35 |
1 files changed, 28 insertions, 7 deletions
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! { - <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> |