diff --git a/crates/radicle-types/bindings/repo/RepoCount.ts b/crates/radicle-types/bindings/repo/RepoCount.ts index 0ddafd5..d0c94e3 100644 --- a/crates/radicle-types/bindings/repo/RepoCount.ts +++ b/crates/radicle-types/bindings/repo/RepoCount.ts @@ -2,6 +2,7 @@ export type RepoCount = { total: number; + contributor: number; delegate: number; private: number; seeding: number; diff --git a/crates/radicle-types/src/repo.rs b/crates/radicle-types/src/repo.rs index 4be65ef..59ac1cc 100644 --- a/crates/radicle-types/src/repo.rs +++ b/crates/radicle-types/src/repo.rs @@ -15,6 +15,7 @@ use crate::error; #[ts(export_to = "repo/")] pub struct RepoCount { pub total: usize, + pub contributor: usize, pub delegate: usize, pub private: usize, pub seeding: usize, diff --git a/crates/radicle-types/src/traits/repo.rs b/crates/radicle-types/src/traits/repo.rs index 752f304..e45e8c9 100644 --- a/crates/radicle-types/src/traits/repo.rs +++ b/crates/radicle-types/src/traits/repo.rs @@ -21,6 +21,7 @@ use crate::traits::Profile; pub enum Show { Delegate, All, + Contributor, Seeded, Private, } @@ -34,7 +35,7 @@ pub trait Repo: Profile { let mut entries = Vec::new(); for RepositoryInfo { rid, doc, refs, .. } in repos { - if refs.is_none() && show == Show::All { + if refs.is_none() && show == Show::Contributor { continue; } @@ -69,9 +70,11 @@ pub trait Repo: Profile { let mut total = 0; let mut delegate = 0; let mut private = 0; + let mut contributor = 0; let mut seeding = 0; for RepositoryInfo { rid, doc, refs, .. } in repos { + total += 1; if policies.is_seeding(&rid)? { seeding += 1; } @@ -85,12 +88,13 @@ pub trait Repo: Profile { } if refs.is_some() { - total += 1; + contributor += 1; } } Ok::<_, Error>(RepoCount { total, + contributor, seeding, private, delegate, diff --git a/src/components/HomeSidebar.svelte b/src/components/HomeSidebar.svelte index 7097a1d..d5025e4 100644 --- a/src/components/HomeSidebar.svelte +++ b/src/components/HomeSidebar.svelte @@ -151,6 +151,22 @@ +
+ router.push({ + resource: "home", + activeTab: "contributor", + })}> +
+ +
Contributor
+
+
{repoCount.contributor}
+
+ +