From 19fdd17f995b4719c2f409cfa7dd2e52827fc2fc Mon Sep 17 00:00:00 2001 From: Sebastian Martinez Date: Mon, 27 Jan 2025 13:17:50 +0100 Subject: [PATCH] Fix repo listing not displaying all repos `Show::All` which is the default value should return all values obtained from `storage.repositories()`. This commit adds a `Show::Contributor` enum variant to only get repos that the user has forked, initialized or contributed in some way. --- crates/radicle-types/bindings/repo/RepoCount.ts | 1 + crates/radicle-types/src/repo.rs | 1 + crates/radicle-types/src/traits/repo.rs | 8 ++++++-- src/components/HomeSidebar.svelte | 16 ++++++++++++++++ src/lib/router/definitions.ts | 4 +++- 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/crates/radicle-types/bindings/repo/RepoCount.ts b/crates/radicle-types/bindings/repo/RepoCount.ts index 0ddafd59d..d0c94e35e 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 4be65ef13..59ac1cc9a 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 752f30439..e45e8c909 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 7097a1d24..d5025e473 100644 --- a/src/components/HomeSidebar.svelte +++ b/src/components/HomeSidebar.svelte @@ -151,6 +151,22 @@ +
+ router.push({ + resource: "home", + activeTab: "contributor", + })}> +
+ +
Contributor
+
+
{repoCount.contributor}
+
+ +