Add a new :chats window that lists both DMs and Rooms (#184)

Fixes #172
This commit is contained in:
FormindVER 2024-02-27 18:36:09 -08:00 committed by Ulyssa
parent 88af9bfec3
commit b7ae01499b
No known key found for this signature in database
GPG key ID: F2873CA2997B83C5
7 changed files with 211 additions and 19 deletions

View file

@ -227,6 +227,7 @@ pub type UserOverrides = HashMap<OwnedUserId, UserDisplayTunables>;
fn merge_sorts(a: SortOverrides, b: SortOverrides) -> SortOverrides {
SortOverrides {
chats: b.chats.or(a.chats),
dms: b.dms.or(a.dms),
rooms: b.rooms.or(a.rooms),
spaces: b.spaces.or(a.spaces),
@ -308,6 +309,7 @@ pub struct ImagePreviewProtocolValues {
#[derive(Clone)]
pub struct SortValues {
pub chats: Vec<SortColumn<SortFieldRoom>>,
pub dms: Vec<SortColumn<SortFieldRoom>>,
pub rooms: Vec<SortColumn<SortFieldRoom>>,
pub spaces: Vec<SortColumn<SortFieldRoom>>,
@ -316,6 +318,7 @@ pub struct SortValues {
#[derive(Clone, Default, Deserialize)]
pub struct SortOverrides {
pub chats: Option<Vec<SortColumn<SortFieldRoom>>>,
pub dms: Option<Vec<SortColumn<SortFieldRoom>>>,
pub rooms: Option<Vec<SortColumn<SortFieldRoom>>>,
pub spaces: Option<Vec<SortColumn<SortFieldRoom>>>,
@ -325,11 +328,12 @@ pub struct SortOverrides {
impl SortOverrides {
pub fn values(self) -> SortValues {
let rooms = self.rooms.unwrap_or_else(|| Vec::from(DEFAULT_ROOM_SORT));
let chats = self.chats.unwrap_or_else(|| rooms.clone());
let dms = self.dms.unwrap_or_else(|| rooms.clone());
let spaces = self.spaces.unwrap_or_else(|| rooms.clone());
let members = self.members.unwrap_or_else(|| Vec::from(DEFAULT_MEMBERS_SORT));
SortValues { rooms, members, dms, spaces }
SortValues { rooms, members, chats, dms, spaces }
}
}