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