diff --git a/src/base/orgs/View/Projects.svelte b/src/base/orgs/View/Projects.svelte
index bf85d67fe..6619b0ff6 100644
--- a/src/base/orgs/View/Projects.svelte
+++ b/src/base/orgs/View/Projects.svelte
@@ -59,7 +59,7 @@
- {#await seed.getProjects()}
+ {#await seed.getProjects(profile?.id)}
{:then projects}
{#each projects as project}
diff --git a/src/base/registrations/registrar.ts b/src/base/registrations/registrar.ts
index b3391c92b..6fbbb6026 100644
--- a/src/base/registrations/registrar.ts
+++ b/src/base/registrations/registrar.ts
@@ -17,6 +17,7 @@ export interface Registration {
export interface EnsProfile {
name: string;
+ id?: string;
owner?: string;
address?: string;
seed?: Seed | InvalidSeed;
@@ -73,6 +74,7 @@ export async function getRegistration(name: string, config: Config, resolver?: E
resolver.getAddress(),
resolver.getText('avatar'),
resolver.getText('url'),
+ resolver.getText('eth.radicle.id'),
resolver.getText('eth.radicle.seed.id'),
resolver.getText('eth.radicle.seed.host'),
resolver.getText('eth.radicle.seed.git'),
@@ -82,11 +84,12 @@ export async function getRegistration(name: string, config: Config, resolver?: E
resolver.getText('com.github'),
]);
- const [address, avatar, url, seedId, seedHost, seedGit, seedApi, anchorsAccount, twitter, github] =
+ const [address, avatar, url, id, seedId, seedHost, seedGit, seedApi, anchorsAccount, twitter, github] =
meta.map(r => r.status == "fulfilled" && r.value ? r.value : undefined);
const profile: EnsProfile = {
name,
+ id,
url,
avatar,
anchorsAccount,
diff --git a/src/base/seeds/Seed.ts b/src/base/seeds/Seed.ts
index 264f65a64..e2780787c 100644
--- a/src/base/seeds/Seed.ts
+++ b/src/base/seeds/Seed.ts
@@ -68,8 +68,11 @@ export class Seed {
return proj.getInfo(urn, this.api);
}
- async getProjects(): Promise
{
- const result = await proj.getProjects(this.api);
+ async getProjects(id?: string): Promise {
+ const result = id
+ ? await proj.getDelegateProjects(id, this.api)
+ : await proj.getProjects(this.api);
+
return result.map((project: any) => ({ ...project, id: project.urn }));
}
diff --git a/src/profile.ts b/src/profile.ts
index ae0fb5a1e..1d967ddf0 100644
--- a/src/profile.ts
+++ b/src/profile.ts
@@ -37,6 +37,11 @@ export class Profile {
return this.profile.ens?.address ?? this.profile.address;
}
+ // Get radicle link id.
+ get id(): string | undefined {
+ return this.profile.ens?.id;
+ }
+
// Get the address type
get type(): AddressType {
return this.profile.type;
diff --git a/src/project.ts b/src/project.ts
index 6ce58df2e..850652453 100644
--- a/src/project.ts
+++ b/src/project.ts
@@ -117,6 +117,10 @@ export async function getProjects(host: api.Host): Promise {
return api.get("projects", {}, host);
}
+export async function getDelegateProjects(delegate: string, host: api.Host): Promise {
+ return api.get(`delegates/${delegate}/projects`, {}, host);
+}
+
export async function getBranchesByPeer(urn: string, peer: string, host: api.Host): Promise {
return api.get(`projects/${urn}/remotes/${peer}`, {}, host);
}