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) }