feat: sort inbox by time after added new messages
This commit is contained in:
@@ -75,7 +75,7 @@ impl ChatRegistry {
|
||||
|
||||
fn new(_cx: &mut Context<Self>) -> Self {
|
||||
Self {
|
||||
rooms: Vec::with_capacity(5),
|
||||
rooms: vec![],
|
||||
is_loading: true,
|
||||
}
|
||||
}
|
||||
@@ -186,6 +186,12 @@ impl ChatRegistry {
|
||||
});
|
||||
cx.notify();
|
||||
});
|
||||
|
||||
// Re sort rooms by last seen
|
||||
self.rooms
|
||||
.sort_by_key(|room| Reverse(room.read(cx).last_seen()));
|
||||
|
||||
cx.notify();
|
||||
} else {
|
||||
let room = cx.new(|cx| Room::parse(&event, cx));
|
||||
self.rooms.insert(0, room);
|
||||
|
||||
@@ -124,6 +124,10 @@ impl Room {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn last_seen(&self) -> &LastSeen {
|
||||
&self.last_seen
|
||||
}
|
||||
|
||||
/// Get all public keys from current room
|
||||
pub fn pubkeys(&self) -> Vec<PublicKey> {
|
||||
let mut pubkeys: Vec<_> = self.members.iter().map(|m| m.public_key()).collect();
|
||||
|
||||
Reference in New Issue
Block a user