summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/components/roster_list/contact_request_manager.rs35
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>