From 5c5685d560f3790111e766565b53a464ee58cb8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C5=ABdolfs=20O=C5=A1i=C5=86=C5=A1?= Date: Thu, 27 Mar 2025 14:22:45 +0100 Subject: [PATCH] Sort projects by name on the home screen --- crates/radicle-types/src/repo.rs | 4 ++++ crates/radicle-types/src/traits/repo.rs | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/crates/radicle-types/src/repo.rs b/crates/radicle-types/src/repo.rs index f35681012..cf4d2daf5 100644 --- a/crates/radicle-types/src/repo.rs +++ b/crates/radicle-types/src/repo.rs @@ -94,6 +94,10 @@ impl ProjectPayload { pub fn new(data: ProjectPayloadData, meta: ProjectPayloadMeta) -> Self { Self { data, meta } } + + pub fn name(&self) -> &str { + &self.data.name + } } impl TryFrom for ProjectPayloadData { diff --git a/crates/radicle-types/src/traits/repo.rs b/crates/radicle-types/src/traits/repo.rs index fe280ce2c..7e96c5cab 100644 --- a/crates/radicle-types/src/traits/repo.rs +++ b/crates/radicle-types/src/traits/repo.rs @@ -57,7 +57,13 @@ pub trait Repo: Profile { entries.push(repo_info) } - entries.sort_by(|a, b| b.last_commit_timestamp.cmp(&a.last_commit_timestamp)); + entries.sort_by_key(|repo_info| { + repo_info + .payloads + .project + .as_ref() + .map(|p| p.name().to_lowercase()) + }); Ok::<_, Error>(entries) }