Dismiss contact request notification if request is cancelled
This commit is contained in:
parent
3bca1c29e2
commit
fe89de8b11
5 changed files with 100 additions and 45 deletions
|
@ -55,7 +55,8 @@ pub struct UserStore {
|
|||
}
|
||||
|
||||
pub enum Event {
|
||||
NotifyIncomingRequest(Arc<User>),
|
||||
ContactRequested(Arc<User>),
|
||||
ContactRequestCancelled(Arc<User>),
|
||||
}
|
||||
|
||||
impl Entity for UserStore {
|
||||
|
@ -225,12 +226,18 @@ impl UserStore {
|
|||
}
|
||||
|
||||
// Remove incoming contact requests
|
||||
this.incoming_contact_requests
|
||||
.retain(|user| !removed_incoming_requests.contains(&user.id));
|
||||
this.incoming_contact_requests.retain(|user| {
|
||||
if removed_incoming_requests.contains(&user.id) {
|
||||
cx.emit(Event::ContactRequestCancelled(user.clone()));
|
||||
false
|
||||
} else {
|
||||
true
|
||||
}
|
||||
});
|
||||
// Update existing incoming requests and insert new ones
|
||||
for (user, should_notify) in incoming_requests {
|
||||
if should_notify {
|
||||
cx.emit(Event::NotifyIncomingRequest(user.clone()));
|
||||
cx.emit(Event::ContactRequested(user.clone()));
|
||||
}
|
||||
|
||||
match this
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue